Move Along Curve
The Move Along Curve attaches each instance to a curve from the second input or the Curve parameter, at the nearest vertex, spread evenly or from an attribute, and remembers its offset in the curve frame. A built-in Orient Curve gives the curve a stable, twist-free frame, and with several curves each instance follows one primitive, the nearest curve, or curves dealt out evenly.
In Simple mode instances sit at their attach position plus Goal, and in Advect mode (Initialize, then Start) they advance each frame by Speed with optional random speed and wrapping at the ends. Align to Curve orients them along the tangent, and ramps or custom TOPs twist, scale and accelerate them along the path, with Do Falloff weighting speed or alignment per instance.
| Group | Group | If there are input groups, specifying a group name in this field will cause this POP to act only upon the group specified. |
| Curve to Attach To | Curve | Sets the Curve POP to move along when the second input is empty. Anything Convert can turn into line strips works. |
| Display Curve | Displaycurve | Enable drawing the curve guide. |
| [+]Display Color | Displaycolor | Sets the color of the curve guide. |
| [+]Solver Mode | Solvermode | Determines how the points move. Simple holds them at Goal, recomputed from the input each frame. Advect moves them by Speed in a feedback loop, started with Initialize then Start. |
| Initialize | Initializepulse | Initializes the POP from its input and parameters. The points start at their attach positions. |
| Start | Startpulse | Start the simulation from the initialized state. |
| Play | Play | Pause or play the feedback loop. |
| Step | Steppulse | Advance the simulation by one frame while paused. |
| Lock to Curve | Locktocurve | Freeze the attachment for speed, so points do not re-attach when the input moves. Reattach to Curve recomputes it. |
| Reattach to Curve | Reattachtocurve | Recompute the attachment of every point. With Lock to Curve on, it is frozen again afterwards. |
| [+]Curve Select Mode | Curveselectmode | Determines which curve each point follows: one Primitive Index for all, the nearest curve, or distributed evenly. |
| Primitive Index | Primindex | Sets the line strip to use in Primitive Index mode. |
| [+]Attach Method | Attachmethod | Determines where each point starts on the curve: the nearest vertex, evenly distributed in index order, or from an attribute (0 start, 1 end). |
| Search Distance | Searchdistance | Sets how far from a point curves are searched, in Use Nearest mode. |
| Attach Attribute | Attachattr | Sets the float point attribute, from 0 to 1, giving the start position along the curve in Attribute method. |
| Snap Centroid to Curve Start | Snaptocentroid | Start every point at its curve start. Maintain Offset keeps the layout of the group. |
| Do Orient Snap | Doorientsnap | When on, the group also turns so Normal Axis follows the curve tangent and Up Axis the curve up. |
| [+]Normal Axis | Normalaxis | Sets the group axis aligned to the curve tangent when Do Orient Snap is on. |
| [+]Up Axis | Upaxis | Sets the group axis aligned to the up direction of the curve when Do Orient Snap is on. |
| Maintain Offset | Maintainoffset | Sets the fraction of the original offset from the curve that is kept, from 0 to 1. |
| Open Offset Ramp Editor | Openoffsetrampeditor | Open the editor of the offset ramp, the offset multiplier along the curve from 0 at the start to 1 at the end. |
| Reset Offset Ramp | Resetoffsetramp | Resets the offset ramp to a flat 1. |
| Custom Offset TOP | Customoffsettop | Reference to a TOP used instead of the offset ramp. U is the position on the curve and rows are the curves. |
| Maintain Orient Offset | Maintainorientoffset | Sets the share of the incoming rotation that is kept, from 0 for aligned to 1 for the incoming rotation. |
| Open Orient Offset Ramp Editor | Openorientoffsetrampeditor | Open the orient offset ramp editor. The ramp is a multiplier along the curve. |
| Reset Orient Offset Ramp | Resetorientoffsetramp | Resets the orient offset ramp to a flat 1. |
| Custom Orient TOP | Customorienttop | Reference to a TOP used instead of the orient offset ramp. U is the position on the curve and rows are curves. |
| Visualize Offset | Visualizeoffset | Draw a line from each point to its position on the curve. |
| Fetch Offsets Lines | Fetchoffsetslines | Add a Select POP that outputs the offset lines. |
| Reorient Input Curve | Reorientinputcurve | Give the curve a stable, twist-free frame (N, Up). When off, its own N and Up are used, or +Z and +Y if missing. |
| Invert Tangent | Inverttangent | Flip the curve tangent so the points face and move the other way. |
| [+]Seed Orientation | Seedorient | Determines the frame at each curve start: Curvature or Up Vector. |
| [+]Up Vector | Upvector | Sets the up direction when Seed Orientation is Up Vector. |
| Twist Curve Amount | Twistcurveamount | Rotate the curve frame around the curve, scaled along it by the twist ramp, TOP or attribute. Angles are given in degrees. |
| Open Twist Curve Ramp Editor | Opentwistcurverampeditor | Edit the twist curve ramp applied along each line strip. |
| Reset Twist Curve Ramp | Resettwistcurveramp | Resets the twist curve ramp to 0 at the start and 1 at the end. |
| Custom Twist Curve TOP | Customtwistcurvetop | Reference to a TOP used instead of the twist curve ramp. U is the position on the curve and rows are the curves. |
| Twist by Attribute | Twistbyattr | Scale the twist by a point attribute instead of the ramp. |
| [+]Twist Attribute | Twistattr | Sets the point attribute that scales the twist. |
| [+]Resample Method | Resamplemethod | Determines how the line strips are resampled: None, Divisions per Line Strip or Distance between Points. |
| Divisions | Resampledivs | The number of divisions per line strip. |
| Max Distance | Resamplemaxdist | Sets the maximum distance between points when resampling by Distance between Points. |
| Maximum Number of Vertices | Maxverts | Number of vertices allocated per line strip. |
| Max Tries for Binary Search | Maxtries | Max number of iterations for binary search when linearly resampling. |
| Do Falloff | Dofalloff | Weight the effect on each point by the Falloff Attribute. |
| Falloff Affects Speed | Affectspeed | When on, the falloff scales the speed in Solver mode or the goal offset in Simple mode. |
| Falloff Affects Rotation | Affectrot | When on, the falloff blends the alignment to the curve. |
| Falloff Attribute | Falloffattr | The point attribute, 0 to 1, that weights the effect. |
| [+]Goal Type | Goaltype | Determines how the position on the curve is measured: Goal U by vertex index from 0 to 1, or Arc Length for constant speed on uneven curves. |
| Goal | Goal | In Simple mode, sets the offset along the curve added to the attach position, from 0 to 1, wrapping with Wrap. Animate it to move the points. |
| Speed | Speed | Speed along the curve. At 1, the points travel one curve length per 10 seconds. |
| Random Speed | Randomspeed | Sets the random speed added to each point. |
| Seed | Seedspeed | Numerical value that initializes the randomization of the speed. |
| Reverse | Reverse | When on, the points move the other way along the curve and face backwards. |
| Align to Curve | Aligntocurve | When on, points turn so that +Z follows the curve tangent and +Y follows the curve up. |
| Wrap | Wrap | Loop past the ends of the curve. When off, the points stop at the end. |
| Output Goal Attributes | Outputgoalattrs | Keep GoalU, the 0 to 1 position along the curve, and CurveIndex on the output. |
| Twist Amount | Twistamount | Twist along the curve, scaled by the twist ramp. Angles are given in degrees. |
| Open Twist Ramp Editor | Opentwistrampeditor | Open the editor of the twist ramp. |
| Reset Twist Ramp | Resettwistramp | Resets the twist ramp. |
| Custom Twist TOP | Customtwisttop | Reference to a TOP used as the twist ramp, overriding the ramp editor. |
| Scale by Goal | Scalebygoal | Scale the points by the scale ramp or TOP at their position on the curve, remapped by Remap Scale. |
| Remap Scale | Remapscale | Sets the scale range that the ramp's 0 to 1 range maps to. |
| Open Scale Ramp Editor | Openscalerampeditor | Open the scale ramp editor. |
| Reset Scale Ramp | Resetscaleramp | Resets the scale ramp. |
| Custom Scale TOP | Customscaletop | Reference to a TOP used as the scale ramp, overriding the ramp editor. |
| Accelerate by Goal | Acceleratebygoal | Scale the speed by the acceleration ramp or TOP at the point's position on the curve. |
| Open Acceleration Ramp Editor | Openaccrampeditor | Open the acceleration ramp editor. The ramp is a speed multiplier along the curve. |
| Reset Acceleration Ramp | Resetaccramp | Resets the acceleration ramp to a flat value of 1. |
| Custom Acceleration TOP | Customacctop | Reference to a TOP used instead of the acceleration ramp. U is the position on the curve and each row is a curve. |
| Bypass | Bypass | Pass through the first input to the output unchanged. |
| Free Extra GPU Memory | Freeextragpumem | Free memory that has accumulated when output memory has grown and shrunk. |
| Render Primitives | Renderprimitives | Whether to render the full POPX geometry. When off, only point instances are drawn. |
| Convert to Point Primitives | Converttoptprim | Enable converting points to point primitives when Render Primitives is off. |
| SRT / RST | Srtrst | Sets the transform order, SRT or RST, used when the points are rendered as TouchDesigner instances. |
POP - POPX/POP GeometryPOP - Curve to Attach ToPOP - POPX/POP Geometry
