←ALL OPERATORS
> modifiers

Move Along Curve

modifiers/move-along-curve·v1.5.1
IN:2  OUT:1

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.

PAGEMove Along Curve
GroupGroupIf 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 ToCurveSets the Curve POP to move along when the second input is empty. Anything Convert can turn into line strips works.
Display CurveDisplaycurveEnable drawing the curve guide.
InitializeInitializepulseInitializes the POP from its input and parameters. The points start at their attach positions.
StartStartpulseStart the simulation from the initialized state.
PlayPlayPause or play the feedback loop.
StepSteppulseAdvance the simulation by one frame while paused.
PAGEAttach
Lock to CurveLocktocurveFreeze the attachment for speed, so points do not re-attach when the input moves. Reattach to Curve recomputes it.
Reattach to CurveReattachtocurveRecompute the attachment of every point. With Lock to Curve on, it is frozen again afterwards.
Primitive IndexPrimindexSets the line strip to use in Primitive Index mode.
Search DistanceSearchdistanceSets how far from a point curves are searched, in Use Nearest mode.
Attach AttributeAttachattrSets the float point attribute, from 0 to 1, giving the start position along the curve in Attribute method.
Snap Centroid to Curve StartSnaptocentroidStart every point at its curve start. Maintain Offset keeps the layout of the group.
Do Orient SnapDoorientsnapWhen on, the group also turns so Normal Axis follows the curve tangent and Up Axis the curve up.
Maintain OffsetMaintainoffsetSets the fraction of the original offset from the curve that is kept, from 0 to 1.
Open Offset Ramp EditorOpenoffsetrampeditorOpen the editor of the offset ramp, the offset multiplier along the curve from 0 at the start to 1 at the end.
Reset Offset RampResetoffsetrampResets the offset ramp to a flat 1.
Custom Offset TOPCustomoffsettopReference to a TOP used instead of the offset ramp. U is the position on the curve and rows are the curves.
Maintain Orient OffsetMaintainorientoffsetSets the share of the incoming rotation that is kept, from 0 for aligned to 1 for the incoming rotation.
Open Orient Offset Ramp EditorOpenorientoffsetrampeditorOpen the orient offset ramp editor. The ramp is a multiplier along the curve.
Reset Orient Offset RampResetorientoffsetrampResets the orient offset ramp to a flat 1.
Custom Orient TOPCustomorienttopReference to a TOP used instead of the orient offset ramp. U is the position on the curve and rows are curves.
Visualize OffsetVisualizeoffsetDraw a line from each point to its position on the curve.
Fetch Offsets LinesFetchoffsetslinesAdd a Select POP that outputs the offset lines.
Reorient Input CurveReorientinputcurveGive 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 TangentInverttangentFlip the curve tangent so the points face and move the other way.
Twist Curve AmountTwistcurveamountRotate 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 EditorOpentwistcurverampeditorEdit the twist curve ramp applied along each line strip.
Reset Twist Curve RampResettwistcurverampResets the twist curve ramp to 0 at the start and 1 at the end.
Custom Twist Curve TOPCustomtwistcurvetopReference to a TOP used instead of the twist curve ramp. U is the position on the curve and rows are the curves.
Twist by AttributeTwistbyattrScale the twist by a point attribute instead of the ramp.
DivisionsResampledivsThe number of divisions per line strip.
Max DistanceResamplemaxdistSets the maximum distance between points when resampling by Distance between Points.
Maximum Number of VerticesMaxvertsNumber of vertices allocated per line strip.
Max Tries for Binary SearchMaxtriesMax number of iterations for binary search when linearly resampling.
PAGEAnimate
Do FalloffDofalloffWeight the effect on each point by the Falloff Attribute.
Falloff Affects SpeedAffectspeedWhen on, the falloff scales the speed in Solver mode or the goal offset in Simple mode.
Falloff Affects RotationAffectrotWhen on, the falloff blends the alignment to the curve.
Falloff AttributeFalloffattrThe point attribute, 0 to 1, that weights the effect.
GoalGoalIn 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.
SpeedSpeedSpeed along the curve. At 1, the points travel one curve length per 10 seconds.
Random SpeedRandomspeedSets the random speed added to each point.
SeedSeedspeedNumerical value that initializes the randomization of the speed.
ReverseReverseWhen on, the points move the other way along the curve and face backwards.
Align to CurveAligntocurveWhen on, points turn so that +Z follows the curve tangent and +Y follows the curve up.
WrapWrapLoop past the ends of the curve. When off, the points stop at the end.
Output Goal AttributesOutputgoalattrsKeep GoalU, the 0 to 1 position along the curve, and CurveIndex on the output.
Twist AmountTwistamountTwist along the curve, scaled by the twist ramp. Angles are given in degrees.
Open Twist Ramp EditorOpentwistrampeditorOpen the editor of the twist ramp.
Reset Twist RampResettwistrampResets the twist ramp.
Custom Twist TOPCustomtwisttopReference to a TOP used as the twist ramp, overriding the ramp editor.
Scale by GoalScalebygoalScale the points by the scale ramp or TOP at their position on the curve, remapped by Remap Scale.
Remap ScaleRemapscaleSets the scale range that the ramp's 0 to 1 range maps to.
Open Scale Ramp EditorOpenscalerampeditorOpen the scale ramp editor.
Reset Scale RampResetscalerampResets the scale ramp.
Custom Scale TOPCustomscaletopReference to a TOP used as the scale ramp, overriding the ramp editor.
Accelerate by GoalAcceleratebygoalScale the speed by the acceleration ramp or TOP at the point's position on the curve.
Open Acceleration Ramp EditorOpenaccrampeditorOpen the acceleration ramp editor. The ramp is a speed multiplier along the curve.
Reset Acceleration RampResetaccrampResets the acceleration ramp to a flat value of 1.
Custom Acceleration TOPCustomacctopReference to a TOP used instead of the acceleration ramp. U is the position on the curve and each row is a curve.
PAGECommon
BypassBypassPass through the first input to the output unchanged.
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
Render PrimitivesRenderprimitivesWhether to render the full POPX geometry. When off, only point instances are drawn.
Convert to Point PrimitivesConverttoptprimEnable converting points to point primitives when Render Primitives is off.
SRT / RSTSrtrstSets the transform order, SRT or RST, used when the points are rendered as TouchDesigner instances.
Input 0 POP - POPX/POP Geometry
Input 1 POP - Curve to Attach To
Output 0 POP - POPX/POP Geometry