physicalai-bmi/nano-world-model-multi

A promptable, multi-environment learned simulator. ONE small fully-convolutional network predicts the next frame of a controllable scene from the last two frames, your action, and an environment code. Pick a world — arena, moon, ice, mud, downhill, wind — or type one, and the same weights simulate that world's physics. There is no physics engine at run time: the network is the simulator. It runs entirely in the browser, in plain JavaScript, live at /research/world-model.

This is the Genie / Oasis idea — a prompt selects the world — at nano scale, released and runnable on the device in front of you. Companion to the single-environment nano-world-model.

What it is

  • Input: two stacked RGB frames (32×32) + a 2-axis action + a 6-way environment one-hot.
  • Model: 48,963 parameters — cat(prev, cur, action×2, env-onehot×6) → 4 × conv 3×3 (SiLU) → residual + sigmoid. Fully convolutional; the same weights render every world.
  • Training: a multi-step rollout loss (predict K steps from its own predictions, across all environments) so each world stays stable and playable when it drives itself. Motion-weighted so the moving object dominates the static scene.

The worlds

Each environment has distinct dynamics (thrust gain, friction, wall restitution, ambient gravity/wind) and a visual tint the network renders forward. The environment one-hot is the only thing that changes between them — the pixels of the seed frame are otherwise the same, so the network is genuinely simulating different physics from the code, not the image.

Honest metrics (held-out rollouts)

  • one-step MSE: 1.15e-04
  • 30-step rollout MSE: 1.67e-03

Per-world coherence (min moving-object peak brightness over a 50-step self-driven rollout; near 1 = stays a sharp, localized blob rather than blurring away):

world coherence min-peak
arena 0.66
moon 0.538
ice 0.593
mud 0.737
downhill 0.541
wind 0.583

It is deliberately tiny and is an approximation, not a perfect simulator: over a long unbroken run the network can let the object soften or drift, because it is guessing every pixel from what it learned rather than solving equations. The frontier versions of this idea (Genie, Oasis, DIAMOND) are hundreds of millions of parameters and need a GPU; this one shows the same mechanism, released and runnable, on-device.

Files

  • model.web.json — portable weights + config (envs, tints, aliases) for the browser runtime.
  • model.safetensors — the same weights.
  • metrics.json — the numbers above.

Released CC-BY-4.0 by the Institute for Physical AI @ BMI.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
49k params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support