GitHub Every frame below is generated by a 14M-parameter world model on your GPU, one action at a time. Train your own, autoresearch style, and beat ours.
now playing: iteration 3 by Maharishiva
autoresearch you can play #
Point your coding agent at tinywmcraft: it trains a world model in 10 minutes, scores it, and tries again. Push the score up, then play the model you made: walk around inside it, craft, fight, and see what it gets wrong.
Beat 0.562 and yours is iteration 4: the crown goes next to your GitHub login, and the player on this page switches to your model. Paste this into your coding agent:
The best so far, by the score: how close imagined play comes to the real game in looks, game logic and memory, and how well the model predicts rewards and deaths, from 0 for a trivial model to 1 for the real game.
- 1Maharishiva 0.562 ± 0.017iteration 3 · train.py: shortcut loss, the heads' gradient into the trunk cut to a tenth in the second half, no hard-window mining, 1/8 game-start windows, two fused kernels, 349 lines
- 2Maharishiva 0.463 ± 0.023iteration 2 · tile transformer tokenizer trained on clean, half-masked and noised frames, fused Pallas kernels, hard-window mining, half the windows from game starts, symlog two-hot reward head
- 3Maharishiva 0.287 ± 0.019iteration 1 · train_tiny.py: the whole model in 178 lines, no custom kernels
the benchmark: score over time, every entry, rules, metrics
#
Get a diamond inside the world model, in the player above, in the fewest steps. The fastest run posted before 24 December 2026 (PST) wins a paper copy of Sutton & Barto's Reinforcement Learning. Press save clip, then post it in the discussion and on X. Rules: diamond_speedrun.md. Found a funny glitch? Post it in the glitch discussion.
the road to a diamond
crafting recipe book #
| make | needs | where |
|---|---|---|
| table | 2 | on an open tile |
| wood pickaxe | 1 | next to a table; mines stone and coal |
| wood sword | 1 | next to a table |
| stone pickaxe | 1 1 | next to a table; mines iron |
| stone sword | 1 1 | next to a table |
| furnace | 1 | on an open tile |
| iron pickaxe | 1 1 1 1 | next to a table and a furnace; mines diamonds |
| iron sword | 1 1 1 1 | next to a table and a furnace |
| place stone | 1 | on grass, sand, path, water or lava |
| plant | 1 | on grass |
Wood comes from trees by hand, saplings from grass (1 hit in 10); stone and coal need a wood pickaxe, iron a stone pickaxe, diamonds an iron pickaxe. "Next to" is one of the 8 tiles around you. These are the real game's rules: the world model learned them from pixels and does not always keep them. In the real game, the first unlock of each of the 22 achievements is worth +1.
how it works #
tinywmcraft is a world model of Craftax-Classic, a 2D Minecraft, learned from scratch from pixels and actions alone. Given a history of frames and an action, it generates the next frame, the reward and whether the episode ends; feed its own frames back in and you can play inside it. Every world in the player starts from a first frame the model imagines from noise: nothing is replayed. 13.9M parameters (5.2M tokenizer, 8.6M world model), trained cold in under 10 minutes on one A100, about $0.1 of compute.
Colab Pro: $9.99 for 100 compute units, and a 40 GB A100 uses about 5.4 an hour (~$0.55/h). A full submission, three seeds with their evals, is under $0.5.
inside the model: tokenizer, losses, optimizer, kernels, sampling