FERROMOTION · RUST → WASM
The Gradient That Lies

Live ferromotion-core: a penalty contact and a rigid impact on the same drop, with the rigid Jacobian computed by saltation matrix and verified against finite differences to 8e-10. One slider for stiffness, three buttons for the timestep, and one button that swaps the fixed step for an error tolerance while changing nothing else. Damping is scaled as 2*zeta*sqrt(k) so the realised restitution stays fixed and only the contact resolution changes - otherwise the sweep would be comparing different physics.

You read

the readout: what the Rust crate computes, recomputed as you change things

You change

the bench controls, and with them the assumption the measurement rests on

Fixed

the ferromotion crate doing the computing, and the check that decides pass