Curvesect SOP

From TouchDesigner Documentation
Revision as of 18:55, 24 January 2019 by Markus Heckmann (talk | contribs) (cleaning)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


The Curvesect SOP finds the intersections or the points of minimum distance between two or more faces (polygons, Bziers, and NURBS curves) or between faces and a polygonal or spline surface.


Parameters - Page

Face Group leftgroup - A subset of faces (NURBS, Bzier, polygons) to act upon. Accepts patterns, as described in Pattern Matching.  

Cutter Group rightgroup - A subset of faces or spline surfaces to intersect with. Accepts patterns, as described in Pattern Matching.  

Find All Intersections xsect - Compute intersection points if the faces touch the cutter primitive. If the button is unchecked, only the point of minimum distance will be found. Currently, finding the minimum distance between a face and a surface is not available.  

Tolerance tolerance - Determines the precision of the intersection.  

Parameters - Cut Page

This option will cut the faces where they intersect or at the points of minimum distance.

Left Face Pieces left - - Choose what parts of the left faces to keep:

  • Keep All lkeepall - All the face segments generated by the intersection(s).
  • Keep Odd-numbered Ones lkeepodd - The odd face segments: 1, 3, 5...
  • Keep Even-numbered Ones lkeepeven - The even face segments: 0, 2, 4...
  • Keep None lkeepnone - Delete the entire face.

Right Face Pieces right - - Choose what parts of the right faces to keep:

  • Keep All rkeepall - All the face segments generated by the intersection(s).
  • Keep Odd-numbered Ones rkeepodd - The odd face segments: 1, 3, 5...
  • Keep Even-numbered Ones rkeepeven - The even face segments: 0, 2, 4...
  • Keep None rkeepnone - Delete the entire face.

Parameters - Extract Page

This option extracts intersection points or isoparms.

Affect affect - - Choose which input to operate on:

  • Left Input left - Extract from the left input faces.
  • Right Input right - Extract from the right input (face or surface).
  • Both Inputs both - Extract from both left and right inputs.

Extract Point extractpt - If the right input is a surface, choose between point and isoparm extraction; only points are extracted if the right input is a face.  

Keep Original keeporiginal -  




  1. Place two NURBS Circle SOPs, one of them slightly offset in X and Y (not Z).
  2. Pipe their outputs into a Curvesect SOP, make it the display SOP.
  3. Method: Cut. For the Left Face, select Keep Odd-numbered Ones.
  4. You can extract the inside (even) or outside (odd) portion of the curve where they intersect.


  1. Model a closed NURBS curve in the shape of a star (use a Model SOP).
  2. Place a NURBS Circle SOP.
  3. Pipe them into a Curvesect SOP, make it the display SOP.
  4. It produces five independent NURBS curves based on their intersection with the NURBS circle.
  5. You could append a Join SOP to reconnect the individual NURBS curves into a new continuous curve. It smoothly connects the remaining segments.

Creeping behaviour along a Path

  1. Place a new Font SOP and then a Circle SOP. Circle SOP - Type: NURBS, Radius 0.1, 0.1; Centre -3, 0.3, 0.2. Font SOP - Text: "Creep Along Me".
  2. Append a Curvesect SOP with the Font and Circle SOPs feeding into the first and second inputs respectively. Change the Tolerance to 1.0, and enable the Extract operation. Turn off Find All Intersections. Make it the display SOP.
  3. Enable the template flags on the Font and Circle SOPs (use S click).
  4. Home the view, and enable the Point display in the Viewport options.
  5. As you change the Circle's X value from -3.0 to 3.0, you will notice that a number of points will creep along the paths of the curves within the text. Using a Copy SOP to copy geometry to each of these points gives you a simple way of creating an irregular "flocking behaviour" along predetermined paths. This works, because as the circle moves above the curves in the text, the points in the curves that are closest to the circle move also.
  6. Use a Model SOP instead of a Font SOP to model several NURBS curves which are the paths to follow for more precise control over the motion.


Operator Inputs

  • Input 0 -
  • Input 1 -

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.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

A way of moving data from one TouchDesigner process to another. Images are moved via Touch Out / In TOPs, channels are moved via Touch Out / In CHOPs and Pipe Out / In CHOPs. Data moves via TCP/IP or UDP.

The location of an operator within the TouchDesigner environment, for example, /geo1/torus1, a node called torus1 in a component called geo1. The path / is called Root. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.