dcharlot-physicalai-bmi commited on
Commit
4e306b7
·
verified ·
1 Parent(s): 1d8323c

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +67 -0
README.md ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ pipeline_tag: other
4
+ tags: [physical-ai, world-model, learned-simulator, promptable, on-device, in-browser, genie, oasis]
5
+ ---
6
+
7
+ # physicalai-bmi/nano-world-model-multi
8
+
9
+ A **promptable, multi-environment learned simulator**. ONE small fully-convolutional
10
+ network predicts the next frame of a controllable scene from the last two frames, your
11
+ action, **and an environment code**. Pick a world — arena, moon, ice, mud, downhill, wind — or type one, and the same
12
+ weights simulate that world's physics. There is **no physics engine at run time**: the
13
+ network *is* the simulator. It runs entirely **in the browser, in plain JavaScript**,
14
+ live at [/research/world-model](https://physicalai-bmi.org/research/world-model).
15
+
16
+ This is the Genie / Oasis idea — *a prompt selects the world* — at nano scale, released
17
+ and runnable on the device in front of you. Companion to the single-environment
18
+ [nano-world-model](https://huggingface.co/physicalai-bmi/nano-world-model).
19
+
20
+ ## What it is
21
+
22
+ - **Input:** two stacked RGB frames (32×32) + a 2-axis action + a
23
+ 6-way **environment one-hot**.
24
+ - **Model:** 48,963 parameters — `cat(prev, cur, action×2, env-onehot×6) →
25
+ 4 × conv 3×3 (SiLU) → residual + sigmoid`. Fully convolutional; the same weights render
26
+ every world.
27
+ - **Training:** a multi-step **rollout loss** (predict K steps from its own predictions,
28
+ across all environments) so each world stays stable and playable when it drives itself.
29
+ Motion-weighted so the moving object dominates the static scene.
30
+
31
+ ## The worlds
32
+
33
+ Each environment has distinct dynamics (thrust gain, friction, wall restitution, ambient
34
+ gravity/wind) and a visual tint the network renders forward. The environment one-hot is
35
+ the only thing that changes between them — the pixels of the seed frame are otherwise the
36
+ same, so the network is genuinely simulating different physics *from the code*, not the image.
37
+
38
+ ## Honest metrics (held-out rollouts)
39
+
40
+ - one-step MSE: **1.15e-04**
41
+ - 30-step rollout MSE: **1.67e-03**
42
+
43
+ Per-world coherence (min moving-object peak brightness over a 50-step self-driven rollout;
44
+ near 1 = stays a sharp, localized blob rather than blurring away):
45
+
46
+ | world | coherence min-peak |
47
+ |---|---|
48
+ | arena | 0.66 |
49
+ | moon | 0.538 |
50
+ | ice | 0.593 |
51
+ | mud | 0.737 |
52
+ | downhill | 0.541 |
53
+ | wind | 0.583 |
54
+
55
+ It is deliberately tiny and is an approximation, not a perfect simulator: over a long
56
+ unbroken run the network can let the object soften or drift, because it is guessing every
57
+ pixel from what it learned rather than solving equations. The frontier versions of this
58
+ idea (Genie, Oasis, DIAMOND) are hundreds of millions of parameters and need a GPU; this
59
+ one shows the same mechanism, released and runnable, on-device.
60
+
61
+ ## Files
62
+
63
+ - `model.web.json` — portable weights + config (envs, tints, aliases) for the browser runtime.
64
+ - `model.safetensors` — the same weights.
65
+ - `metrics.json` — the numbers above.
66
+
67
+ Released CC-BY-4.0 by the Institute for Physical AI @ BMI.