> modifiers

Move Along Mesh

modifiers/move-along-mesh·v1.3.0
IN:2  OUT:1

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.

PAGEMove Along Mesh
GroupGroupIf 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 ToMeshReference to a POP for the mesh to attach instances to when no second input is connected.
Display MeshDisplaymeshVisualizes the mesh in the viewport.
InitializeInitializepulseResets the simulation state to initial conditions.
StartStartpulseBegins the simulation from the current state.
PlayPlayToggles simulation playback on or off.
StepSteppulseAdvances the simulation by one frame.
PAGEAttach
Lock to MeshLocktomeshLocks the initial attachment positions so they don't need to be recalculated every frame, improving performance.
Reattach to MeshReattachtomeshRecomputes attachment points for all instances.
PAGEAnimate
SeedSeedRandom seed value for scatter-based attachment.
PAGEAttach
Search RadiusSearchradiusMaximum distance for finding nearest attachment points when using Nearest Point mode.
Maintain OffsetMaintainoffsetBlend amount for maintaining the original offset distance from the mesh surface.
Maintain Orient OffsetMaintainorientoffsetBlend amount between the original orientation and the mesh orientation.
Visualize OffsetVisualizeoffsetDisplays lines showing the offset between instances and their attachment points.
Fetch Offsets LinesFetchoffsetslinesCreates a select POP with the selected offsets lines of the instances for visualization.
PAGEAnimate
Do FalloffDofalloffEnables falloff-based modulation of movement effects.
Falloff AttributeFalloffattrSpecifies which attribute to use for falloff values that modulate movement intensity.
SpeedSpeedGlobal speed multiplier for instance movement along the mesh.
Random SpeedRandomspeedAmount of random variation applied to each instance's speed.
SeedSpeedseedRandom seed value for speed randomization.
PAGEAnimate
Enable Life TimeEnablelifetimeEnables lifetime-based effects for instances, causing them to age and potentially be removed after a certain duration.
LifeLifeBase lifetime duration in seconds for each instance.
Life VarianceLifevarianceAmount of random variation in lifetime duration between 0 (no variance) and 1 (maximum variance).
SeedLifeseedRandom seed value for lifetime variance.
PAGEAnimate
Output Life AttributesOutputlifeattrsOutputs LifeTime and Age attributes for each instance when enabled.
Scale by AgeScalebyageEnables age-based scale modulation using a ramp curve.
Open Scale Ramp EditorOpenscalerampeditorOpens the internal scale ramp editor for creating custom scale curves over lifetime.
Reset Scale RampResetscalerampResets the scale ramp to default values.
Custom Scale TOPCustomscaletopReference to an external TOP for scale control. When specified, overrides the internal ramp editor.
Enable Point RelaxEnablepointrelaxEnables relaxation forces that push instances apart to prevent crowding on the mesh surface.
Relax IterationsRelaxiterationsNumber of relaxation iterations to perform per frame. Higher values create stronger separation but may be slower.
Max Relax RadiusMaxrelaxradiusMaximum distance at which relaxation forces affect neighboring instances.
Num Hash BucketsNumhashbucketsNumber of hash buckets for spatial neighbor lookups.
Max NeighborsMaxneighborsMaximum number of neighboring instances to consider for relaxation calculations.
Relax StrengthRelaxstrengthIntensity of the relaxation force. Higher values push instances apart more strongly.
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 PrimitivesRenderprimitivesToggles rendering of POPX Geometry or shows it as point instances only.
Convert to Point PrimitivesConverttoptprimConverts points to primitive points when Render Primitives is toggled off.
SRT / RSTSrtrstSets the transform order when using POPX Geometry as built-in TouchDesigner instances.
Input 0 POP POPX/POP Geometry
Input 1 POP Mesh to Attach To
Output 0 POP POPX_out1