# Iso Surface SOP

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## Summary

The Iso Surface SOP uses implicit functions to create 3D visualizations of isometric surfaces found in Grade 12 Functions and Relations textbooks.

An implicit function is defined so that it = 0. For example with:

```x2 + y2 = r2
```

the implicit function is:

```f(x, y) = x2 + y2 - r2 = 0
```

## Parameters - Page

Implicit Function `func` - Enter the function for implicit surface building here.

Example 1: `(me.curPos.x**2) / (4*4) - (me.curPos.y**2) / (3*3) + me.curPos.z`

This formula creates a hyperbolic paraboloid, or saddle shape.

Example 2: `(me.curPos.x**2) / 0.1 + (me.curPos.y**2) / 2 + (me.curPos.z**2) / 6 - 1`

This formula creates an ellipsoid.

Try loading some of the sample functions in `\$TFS/touch/presets`.

Minimum Bound `min` - - Determines the minimum clipping plane boundary for display of iso surface.

• X `minx` -
• Y `miny` -
• Z `minz` -

Maximum Bound `max` - - Determines maximum clipping plane boundary for display of iso surfaces.

• X `maxx` -
• Y `maxy` -
• Z `maxz` -

Divisions `divs` - - The density, or resolution of the iso surface polygons in X, Y and Z.

• X `divsx` -
• Y `divsy` -
• Z `divsz` -

Compute Normals `normals` -

## Example

The action of the Iso Surface sop is conceptually simple - it takes a user specified expression in R3 (a mathematical term meaning, "having three dimensions, each taking a Real value), and creates a surface where the function goes from being positive to being negative. In the case of the default expression ( `\$X2 + \$Y2 + \$Z2` ), the expression is less than zero within a unit sphere, and greater than zero outside. As the sop cooks, it marches through the bounding volume specified (by default from -1 to +1 in X, Y and Z), and creates geometry where the expression equals zero.

This may seem like a difficult way to define a sphere, but there's much potential beyond this simple example using the rich array of mathematical functions (see the Expressions section). A simple illustration is with the `noise()` function. Try inputing the following expression.

TouchDesigner Build:

Add • Alembic • Align • Arm • Attribute Create • Attribute • Basis • Blend • Bone Group • Boolean • Box • Bridge • Cache • Cap • Capture Region • Capture • Carve • CHOP to • Circle • Clay • Clip • Convert • Copy • CPlusPlus • Creep • Curveclay • Curvesect • DAT to • Deform • Delete • Divide • Extrude • Facet • File In • Fillet • Fit • Font • Force • Fractal • Grid • Group • Hole • Import Select • In • Introduction To SOPs id • Inverse Curve • Iso Surface • Join • Joint • Kinect • Lattice • Limit • Line • Line Thick • LOD • LSystem • Magnet • Material • Merge • Metaball • Model • Noise • Null • Object Merge • Oculus Rift • OpenVR • Out • Particle • Point • Polyloft • Polypatch • Polyreduce • Polyspline • Polystitch • Primitive • Profile • Project • Rails • Raster • Ray • Rectangle • Refine • Resample • Revolve • Script • Select • Sequence Blend • Skin • Sort • Sphere • Spring • Sprite • Stitch • Subdivide • Superquad • Surfsect • Sweep • Switch • Text • Texture • Torus • Trace • Trail • Transform • Trim • Tristrip • Tube • Twist • Vertex • Wireframe • ZED

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.