Interface SpringOpts<T>
interface SpringOpts<T = unknown> {
omega?: number;
precision?: number;
project?: (v: T) => T;
rate?: () => number;
zeta?: number;
}
omega?: number;
precision?: number;
project?: (v: T) => T;
rate?: () => number;
zeta?: number;
}
Type Parameters
- T = unknown
Hierarchy
- SpringOpts (View Summary)
Index
Properties
Properties
Optionalomega
omega?: number
Optionalprecision
precision?: number
Settle threshold; snap+complete when both ‖e‖ < eps and ‖v‖ < eps·ω.
Optionalproject
Project each frame's next value into an admissible set (clamp to a
range, snap to a manifold, etc.). If projection moves the value,
velocity is reset to zero — soft absorbing wall, no integrator
fighting the boundary. Pair with precision: 0 when the target
may lie outside the admissible set (settle never fires there).
Optionalrate
rate?: () => number
Per-frame rate multiplier on tick.dt. 0 freezes evolution; 2× doubles
speed. Reactive — re-read each frame. Default 1.
Optionalzeta
zeta?: number
Damping ratio. <1 underdamped, =1 critical, >1 overdamped. Default 1.
Natural angular frequency (rad/s). Default 13 (~0.48 s period).