Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Temporal lowpass filter for any float signal — picks one of 3 filter shapes via `mode`. Replaces the old `spring` and `valueSolver` nodes (folded in). For magnetic-snap behaviour compose `snapFloat → smoothing(mode:exponential)`.
Inputs
| Port | Type | Description |
|---|---|---|
value | float | The raw float to smooth. Wire from any source — gate expression, pointer axis, scroll velocity, observer delta, etc. |
Outputs
| Port | Type | Description |
|---|---|---|
output | float | The filtered value. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | enum | "exponential" | Filter shape. Each mode surfaces its own params below. options exponential, spring, linearApproach |
smooth | float | 5 | Exponential rate constant. Higher = faster. 0 = pass-through. 5 = ~250ms tail (typical UI). Used in `exponential` mode. min 0; max 10; step 0.1 |
rate | float | 1 | Maximum movement per second toward target. 0 = instant snap. Used in `linearApproach` mode. min 0; max 1000; step 0.1 |
stiffness | float | 180 | Spring constant. Higher = tighter / faster oscillation. Used in `spring` mode. min 1; step 10 |
damping | float | 12 | Velocity damping. Higher = less ring. Critical damping at ~2*sqrt(stiffness*mass). Used in `spring` mode. min 0; step 1 |
mass | float | 1 | Inertia. Higher = slower acceleration. Used in `spring` mode. min 0.01; step 0.1 |
posterizeFps | float | 0 | Stop-motion quantization on the spring output. 0 = continuous (default). Used in `spring` mode. min 0; step 1 |
compositionMode | enum | "replace" | How spring output combines with the input target. `replace` (default) — output IS the spring value. `add` — sum. `multiply` — modulate. Used in `spring` mode. options replace, add, multiply |
subSteps | int | 1 | Per-frame integration steps. 1 = standard. Higher = stiffer convergence when the target jumps a lot per frame. min 1; max 16; step 1 |
initialValue | float | - | Optional seed for the filter. NaN (default) = "use first target as initial". |
Use cases
- `mode: exponential` — soft lag with no overshoot. Best for pointer-follow, scroll-velocity smoothing, gate-flicker damping. (Default.)
- `mode: spring` — 2nd-order mass-spring-damper with overshoot. Best for bouncy follow, settle-with-ring, physics-feel UI.
- `mode: linearApproach` — bounded velocity. Output moves at most `rate * dt` per second toward target then snaps. Best for hard-edged target tracking with a max speed (e.g. throttled scroll-position correction).
Related nodes
Envelope
Use smoothing as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-math/