Interface FloatingOpts

    interface FloatingOpts {
        omega?: number;
        precision?: number;
        project?: (v: { x: number; y: number }) => { x: number; y: number };
        rate?: () => number;
        zeta?: number;
    }
    Hierarchy
    Index

    Properties

    omega?: number

    Natural angular frequency (rad/s). Default 13 (~0.48 s period).

    precision?: number

    Settle threshold; snap+complete when both ‖e‖ < eps and ‖v‖ < eps·ω.

    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).

    rate?: () => number

    Per-frame rate multiplier on tick.dt. 0 freezes evolution; 2× doubles speed. Reactive — re-read each frame. Default 1.

    zeta?: number

    Damping ratio. <1 underdamped, =1 critical, >1 overdamped. Default 1.