Interface FloatingOpts
interface FloatingOpts {
omega?: number;
precision?: number;
project?: (v: { x: number; y: number }) => { x: number; y: number };
rate?: () => number;
zeta?: number;
}
omega?: number;
precision?: number;
project?: (v: { x: number; y: number }) => { x: number; y: number };
rate?: () => number;
zeta?: number;
}
Hierarchy
- SpringOpts<{ x: number; y: number }>
- FloatingOpts (View Summary)
Index
Properties
Properties
Optionalomega
omega?: number
Optionalprecision
precision?: number
Settle threshold; snap+complete when both ‖e‖ < eps and ‖v‖ < eps·ω.
Optionalproject
project?: (v: { x: number; y: number }) => { x: number; y: number }
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).