3dSynth

Docs / Node Sculptor

Open in the interactive docs reader

Curve Modulator

Applies mathematical modulation patterns to curves. Displaces points along a curve using wave functions, noise patterns, and custom mathematical expressions to create textured, organic, or decorative effects.

Node

Interactive preview is available in the interactive reader.

Sockets

Curve (in)
Path — input curve to modulate (required).
Amplitude (in)
Float — optional override for modulation amplitude.
Frequency (in)
Float — optional override for modulation frequency.
Resolution (in)
Int — optional override for sample count.
Curve (out)
Path — the modulated curve.

How It Works

  1. Connect an input curve (spiral, circle, or any path).
  2. Choose a modulation type from the dropdown.
  3. Adjust amplitude and frequency to control the pattern.
  4. Fine-tune with fade, skip, and alternation controls.
  5. Use Custom mode with mathematical expressions for full control.

The modulator resamples the input curve to the configured resolution, computes displacement for each sample point, and outputs the displaced curve.

Modulation Types

Sine
Smooth sinusoidal wave — classic organic texture.
Triangle
Linear zigzag — sharper peaks than sine.
Square
On/off steps — creates notched or castellated edges.
Sawtooth
Linear ramp — asymmetric teeth pattern.
Noise
Deterministic random displacement — organic roughness.
Spike
Gaussian spike per period — isolated bumps.
Bulge
Smooth Gaussian envelope — localized swelling.
Dual Wave
sin(x) + sin(2x) — complex harmonic texture.
Custom
User-defined formula with full variable access.

Parameters

Modulation Type
Wave function selector (9 types).
Direction
Displacement direction: Radial, Normal, Z, or Custom vector.
Amplitude
Displacement magnitude. Default: 0.1.
Frequency
Wave cycles. Default: 10.
Freq per turn
When true, frequency is cycles per spiral turn.
Resolution
Sample count for resampling. Default: 1000.
Sample by arc length
Uniform arc-length spacing (vs parameter spacing).
Force resample
Always resample even when point counts match.
Noise seed
Deterministic seed for noise mode.
f(t)
Custom formula (Custom mode only). Default: amp * sin(phase).
Bulge center
Normalized position (0–1) for bulge envelope peak.
Bulge falloff
Gaussian width of bulge envelope.
Fade in / Fade out
Gradual ramp at curve start/end.
Skip modulation
Global bypass switch.
Skip turns
Skip the first N turns from start.
Skip every N turns
Periodic skip cadence.
Alternate turns
C∞-continuous output sign-flip between turn blocks.
Alternate every N
Period of alternation in turns.
Align turns vertically
Phase-lock per-turn for vertical-rib effect.
Adjust layer height
Also modulate Z spacing.

Custom Function — Variable Reference

t
Normalized position along curve (0–1).
x, y, z
Current point coordinates.
i
Point index (0-based).
amp
Current amplitude value.
freq
Current frequency value.
resolution
Total sample count.
angle
Angle from centroid (radians).
phase
Pre-computed freq × angle (or freq × t × 2π).
turnIndex
Current turn number (floor).
currentTurn
Fractional turn count at this point.
totalTurns
Total turns in the curve.
layerIndex
Z-based layer index.
PI, E
Mathematical constants.

Formula Examples

Basic sine
amp * sin(phase) — default, matches Sine type.
Damped wave
amp exp(-t 3) * sin(phase) — decay toward end.
Growing wave
amp t sin(phase) — increase toward end.
Harmonic combo
amp (sin(phase) + 0.5 sin(2 * phase)) — rich texture.
Noise-modulated
amp sin(phase + sin(i 0.1) * 2) — organic variation.
Square pulse
amp * (sin(phase) > 0 ? 1 : -1) — matches Square type.
Conditional by turn
turnIndex % 2 === 0 ? amp * sin(phase) : 0 — alternation.
Exponential bulge
amp exp(-((t - 0.5) / 0.2)^2) sin(phase) — localized.
Zigzag
amp (2 abs(((phase / PI) % 2) - 1) - 1) — triangle wave.
Sawtooth via formula
amp * ((phase / PI) % 2 - 1) — ramp pattern.

Tips