SpringPoints

Read with AI
All docs in one file (llms-full.txt)
SpringPoints #3D #Node
SpringPoints

Outputs a PointCloud in which each point follows the position of the input PointCloud as its target, via a spring. Stiffness is the strength that pulls back toward the target and Damping is the decay of velocity, so the smaller Damping is, the more the points overshoot and shake. On the frame Kick Trigger fires, a velocity with the magnitude of Kick Force is added once to every point (the direction is a pseudo-random unit vector determined from the index). So that dropped frames do not make it go wild, the time of one step is capped at 0.05 seconds.

  • Stiffness (default 60, negative values are treated as 0)
  • Damping (default 6, negative values are treated as 0) — the decay is exponential, exp(-Damping × dt)
  • Kick Force (default 3)
  • Velocity Stretch (default 0) — when greater than 0, points whose speed exceeds 0.05 turn to face their direction of travel, and their Z scale is stretched by a factor of 1 + speed × Stretch

When the input point count changes, the simulation state is reset: all points teleport to their target positions and their velocities return to 0. Moving Count upstream interrupts the spring motion.

Input ports

Port IDType
PointCloudPointCloudInput
Stiffnessfloat
Dampingfloat
Kick Triggertrigger
Kick Forcefloat
Velocity Stretchfloat

Output ports

Port IDType
PointCloudPointCloudOutput

Scriptable members

PathType
stiffnessInputfloat
dampingInputfloat
kickForceInputfloat
stretchInputfloat

Synapse Apps (scripting)

await synapse.modules.create({ type: "SpringPoints" })

Also referenced from