Modulate Path
Displaces every vertex of a Path by a scalar field along a chosen direction:
p' = p + direction(p) · values.x · gain
This is where Fields become geometry — attach a noise/wave/attractor field to a curve and the curve breathes.
Node
Interactive preview is available in the interactive reader.
Sockets
path (in)- Path. Required — the curve to deform.
values (in)- PointArray. Required — scalar stream (uses x-channel).
direction (in)- Vector3. Optional override used only in custom mode.
gain (in)- Float. Optional multiplier applied to values.
path (out)- Path — the displaced curve.
Parameters
Direction mode- Normal (2D) (perpendicular to tangent in XY — classic offset), Z axis, Radial (XY) (unit vector from origin), Custom vector (fixed direction from the Direction param/socket). Default: Normal (2D).
Direction- Custom direction vector used in custom mode. Default: [0, 0, 1].
Gain- Extra multiplier on the field. Default: 1.
Closed path- Forces the path to be treated as closed when computing normals (smooths the seam). Default: off — auto-detected if endpoints coincide.
Resampling
If values.length ≠ path.length, the field is linearly resampled across the path parameter u ∈ [0, 1]. This means a 64-point noise field can drive a 1000-point path smoothly — there's no need to pre-match counts.