Physics · Rust → WebAssembly

Soft bodies, grains, and on-device control

The rest of the pure-Rust physical-AI stack, running in the page: a wobbling Neo-Hookean jelly, a pile of settling grains, a cartpole that swings itself up by rolling out hundreds of futures in parallel, and a quadruped that walks forward on tree-structured articulated-body dynamics — each solver verified, each compiled to WebAssembly, running on the hardware in front of you. Below, the same soft body stepped on your local GPU through WebGPU — and checked against the CPU core.

FERROMOTION · PHYSICSLoading the solvers (WebAssembly)…
Routed to your GPU

The same soft body, stepped on your local GPU

The volumetric FEM is data-parallel over its tets and vertices — the natural shape for a GPU. Here the exact same Neo-Hookean solver runs as two WGSL compute kernels (per-tet elastic force, then per-vertex gather and integrate) on whatever GPU your browser exposes, and its trajectory is checked against the verified CPU core. WebGPU has no float atomics, so the force scatter is a precomputed per-vertex gather. No local GPU? The identical kernels fall back to the CPU in WebAssembly.

FERROMOTION · WEBGPUBringing up the GPU compute pipeline…
Thousands of futures at once

The RL rollout sweep, on your local GPU

This is the on-device-RL axis. Brax, MJX, and Newton simulate thousands of environment instances in parallel to search for a policy; here that sweep runs in the page. Every control step, 2,048 candidate action sequences are rolled out through the cartpole dynamics at once — one GPU thread per candidate future — and the controller executes the lowest-cost one (receding-horizon random shooting). The pole swings itself upright and balances, driven entirely by GPU rollouts, each batch checked against the verified CPU core. No local GPU? The identical rollout runs one lane per candidate on the CPU.

FERROMOTION · WEBGPUBringing up the batched rollout…
What this is

The deformable spectrum, closed — and controlled

Solids, grains, control, and a walking robot to match the fluids bench: every material domain, the on-device rollout, and articulated-body locomotion, each verified against a physical invariant.

Volumetric soft body

A tetrahedral mesh with a stable Neo-Hookean material — the volumetric solid that completes the deformable spectrum beside the shell (cloth), particle (MPM), and filament (rod) solvers. Frame-indifferent and energy-stable; forces are exactly the gradient of the strain energy.

Granular media

Discrete-element grains — spring-dashpot contact with Coulomb friction — pour and settle into a pile. Momentum is conserved to machine precision at every contact; no grain tunnels through the floor.

On-device RL, in the browser

A cartpole swings itself upright by batched random shooting: hundreds of candidate action sequences rolled out in parallel each control step. The data-parallel rollout is the browser-deployable counterpart to Brax/MJX/Newton's thousands-of-envs GPU sweep.

A legged robot, walking

A quadruped walks forward on a statically-stable crawl gait — one foot swinging at a time, three always planted. It runs on tree-structured floating-base dynamics (Featherstone articulated-body algorithm over a branched leg tree) plus penalty ground contact, stepped per frame on your device. The same dynamics the RL benches learn on, here closing a loop into locomotion.