Butterfly is a small game played inside a neural world model. The world is a file: save it, rewind it, fork it. What keeps the two copies from staying the same is chaos β and in here, chaos is measured.
In a neural game there is no level geometry, no entity list, no scene graph. Every frame is sampled by a video diffusion model, and the only place the world exists is the model's running state: a few gigabytes of attention cache, a sliding window of latent frames, and the exact position of the random-number generator.
.wsave serializes all of it. Load one back and the world resumes bit-for-bit β the same clouds, the same grass, the same next frame. Neural games never had a save button. Now they do, and it turns out to be a measuring instrument.
An honest footnote: naΓ―vely quantizing the cache to int8 shrinks the file to 1.9 GB and ruins the world (13.5 dB) β the state is far more fragile than the weights. A 4.8 MB re-prime save matches that fidelity at 1/400th of the size. The gap between "exact" and "re-primed" is a direct measurement of what the cache remembers beyond the pixels.
Freeze a world. Resume it twice with the same actions but different noise: the copies drift apart with a half-life of 109 frames β 4.4 seconds. Nothing in the game scripts this; it is the raw stochastic physics of the model.
Now do the opposite β same noise, different action β and the worlds separate 3.55Γ faster. That single ratio is the entire premise of the game: your hands are stronger than chance. But chance never stops.
Kindred instrument: Hansen & Wang detect world-model hallucination live with label-free predictors and dare you to break their world. Butterfly is the mirror image β chaos is always breaking ours, and the game is to hold it. Their flow-instability meter is on our roadmap as a live "dream stability" gauge.
Butterfly's default run has one explicit goal. You get 10 moves to walk β that walk becomes the original timeline, the world you must defend. Then THE TEAR: fate re-rolls, and chaos starts pulling the dream away from what it was.
Hold it for 10 moves. Each move where you push the world further than chaos itself would (drift > 1.25Γ the measured baseline) is a strike β three strikes and the dream tears. Survive, and you're graded S/A/B/C by how much more world you held than doing nothing. The frame's border burns green β red with your drift, live. Mimicry scores zero; you win by steering against the drift.
the dream is chaotic, finite, and forkable. so we made those the rules.
Every mechanic below exists only because the engine is a neural network. A classical engine cannot offer any of these; a neural one cannot avoid them.
Anchor a moment, play on β that segment becomes the original timeline. Then fate re-rolls, chaos starts pulling the world away, and you steer it back. You play split-screen against your own ghost.
score = world held vs doing nothing Β· graded on the measured chaos curve Β· mimicry scores zeroSame fate β the saved RNG replays, bit-exact, nothing moves. You get one wing-beat: a single changed action. Everything that differs afterwards is your ripple.
verdict = your one flap vs a full re-roll of fate (S β₯ 1.25Γ)A world is a file, so hand it to a friend. They adopt your .wsave and continue the dream on their own timeline. The tree grows across people. Multiplayer with zero netcode.
2.7 GB exact Β· 4.8 MB re-primed (roadmap)WASD through a photograph. Anchor, rewind, branch; watch the timeline tree grow, and open the inspector to see the dream's 2.7 GB body β cache by cache.
any image can become a world (image-to-world host)Butterfly drives Matrix-Game-2.0 (1.8B, MIT) as its first world model host β 29.5 fps at 352Γ640 on a single H200, β₯24 GB VRAM. No hosted demo yet; you bring the GPU, we bring the save button.
# 1 Β· code + world model source
git clone https://github.com/lixuan27/butterfly && cd butterfly
bash scripts/get_matrix_game.sh # clones MG2 + downloads weights (~28 GB)
# 2 Β· serve the dream (needs 1Γ GPU, β₯24 GB)
bash scripts/serve.sh # http://localhost:7860
# 3 Β· play
WASD walk Β· IJKL look Β· β anchor Β· β duel chaos Β· π¦ one flap Β· β© relay a dream
The dream has inertia. Actions land once per world-move (~0.5 s) β every mode is built for steering, not twitch reflexes. Dreams live 164 seconds before the position encoding runs out and the world collapses. Both limits are physics, not design; we wrote the fiction around them.
Hosted play β the Space is up, the GPU is next. The game server is live at huggingface.co/spaces/Recharge23/butterfly with its one-seat queue (one dreamer plays, everyone spectates live, the seat rotates) β currently in landing mode while the GPU grant is pending. One granted GPU turns it into the first neural game with save-states anyone can play in a browser. Until then it's bring-your-own-GPU, honestly.