Move Along Mesh

Summary

The Move Along Mesh attaches instances to a mesh surface and animates them along the mesh based on its orientation. It works in two phases: first, attaches instances to the mesh based on proximity or random scattering; second, pushes instances along the mesh based on the orientation of the mesh.

The "up" vector of the chosen mesh acts as the "forward" vector for movement. This node works best in conjunction with the Orient Mesh node, which can easily generate these orientations for you along with options for swirling around the mesh, adding curl noise, and blurring the generated vectors for smoother motion.

If your instances start crowding each other you can try to enable Relaxation, but this can be tricky on surfaces with very high curvature.

Parameters

Page: Move Along Mesh

Group Group If there are input groups, specifying a group name in this field will cause this POPX to act only upon the group specified.
Mesh to Attach To Mesh Reference to a POP for the mesh to attach instances to when no second input is connected.
Display Mesh Displaymesh Visualizes the mesh in the viewport.
Display Color Displaycolor Color for mesh visualization when Display Mesh is enabled.
Display Color Displaycolorr
Display Color Displaycolorg
Display Color Displaycolorb
Initialize Initializepulse Resets the simulation state to initial conditions.
Start Startpulse Begins the simulation from the current state.
Play Play Toggles simulation playback on or off.
Step Steppulse Advances the simulation by one frame.

Page: Attach

Lock to Mesh Locktomesh Locks the initial attachment positions so they don't need to be recalculated every frame, improving performance.
Reattach to Mesh Reattachtomesh Recomputes attachment points for all instances.
Attach Mode Attachmode Determines how instances are attached to the mesh: Nearest Point or Scatter.
Nearest Point nearest
Scatter scatter
Seed Seed Random seed value for scatter-based attachment.
Search Radius Searchradius Maximum distance for finding nearest attachment points when using Nearest Point mode.
Maintain Offset Maintainoffset Blend amount for maintaining the original offset distance from the mesh surface.
Maintain Orient Offset Maintainorientoffset Blend amount between the original orientation and the mesh orientation.
Visualize Offset Visualizeoffset Displays lines showing the offset between instances and their attachment points.
Fetch Offsets Lines Fetchoffsetslines Creates a select POP with the selected offsets lines of the instances for visualization.

Page: Animate

Do Falloff Dofalloff Enables falloff-based modulation of movement effects.
Falloff Attribute Falloffattr Specifies which attribute to use for falloff values that modulate movement intensity.
Speed Speed Global speed multiplier for instance movement along the mesh.
Random Speed Randomspeed Amount of random variation applied to each instance's speed.
Seed Speedseed Random seed value for speed randomization.
Enable Life Time Enablelifetime Enables lifetime-based effects for instances, causing them to age and potentially be removed after a certain duration.
Life Life Base lifetime duration in seconds for each instance.
Life Variance Lifevariance Amount of random variation in lifetime duration between 0 (no variance) and 1 (maximum variance).
Seed Lifeseed Random seed value for lifetime variance.
Output Life Attributes Outputlifeattrs Outputs LifeTime and Age attributes for each instance when enabled.
Scale by Age Scalebyage Enables age-based scale modulation using a ramp curve.
Remap Scale Remapscale Remaps the output scale values from the ramp to this range.
Remap Scale Remapscalex
Remap Scale Remapscaley
Open Scale Ramp Openscaleramp Opens the internal scale ramp editor for creating custom scale curves over lifetime.
Reset Scale Ramp Resetscaleramp Resets the scale ramp to default values.
Scale TOP Scaletop Reference to an external TOP for scale control. When specified, overrides the internal ramp editor.
Enable Point Relax Enablepointrelax Enables relaxation forces that push instances apart to prevent crowding on the mesh surface.
Relax Iterations Relaxiterations Number of relaxation iterations to perform per frame. Higher values create stronger separation but may be slower.
Max Relax Radius Maxrelaxradius Maximum distance at which relaxation forces affect neighboring instances.
Max Neighbors Maxneighbors Maximum number of neighboring instances to consider for relaxation calculations.
Relax Strength Relaxstrength Intensity of the relaxation force. Higher values push instances apart more strongly.

Page: Common

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 Toggles rendering of POPX Geometry or shows it as point instances only.
SRT / RST Srtrst Sets the transform order when using POPX Geometry as built-in TouchDesigner instances.

Inputs

Input 0 POP POPX/POP Geometry
Input 1 POP Mesh to Attach To

Outputs

Output 0 POP POPX_out1