physicalai-bmi/nano-world-model

A learned simulator you can drive — in your browser. A small fully-convolutional network predicts the next frame of a controllable scene from the last two frames and your action. At run time there is no physics engine: the network is the simulator. Feed it your action, it paints the next frame, feeds that back, and paints the one after — a playable world, generated one frame at a time, entirely on your device. Drive it live at https://physicalai-bmi.org/research/world-model.

  • Input: 2 stacked 32×32 RGB frames + a 2-D action (broadcast to 2 channels) = 8 channels.
  • Model: 4× conv 3×3 (SiLU), residual around the current frame + sigmoid → next frame.
  • Params: 32,883 (~128 KB). Runs its whole loop in plain JavaScript.

How it learned

Trained by autoregressive rollout loss (motion-weighted) on episodes of a momentum + wall-bounce scene — the network watches trajectories and learns the dynamics (momentum, walls, the bounce) with no equations given to it.

Results

metric value
1-step next-frame MSE 2.25 × 10⁻⁴
30-step autoregressive rollout MSE 2.49 × 10⁻³
Rollout coherence (rover peak brightness over 50 steps) 0.46–0.77
Action response (verified live, per direction) correct all four (Δ ≈ 0.25–0.47)

Honest limit: it is tiny and an approximation — over a long unbroken run the rover can soften or drift, because it guesses every pixel from what it learned rather than solving equations. The frontier versions of this idea (playable neural game worlds — Oasis, DIAMOND, GameNGen) are hundreds of millions of parameters and need a GPU; this shows the same mechanism, released and runnable, on the device in front of you.

Files: model.safetensors, model.web.json (float32 for the browser, bit-identical to safetensors), metrics.json. CC-BY-4.0, Institute for Physical AI @ BMI.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
32.9k params
Tensor type
F32
·
Video Preview
loading