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