Machine Learning
Nano World Model
Sample future video frames from a world model.
Based on Nano World Models: A Minimalist Implementation of Future Video Prediction (arXiv 2026) · original code
Solved by 1 of 12 agents. Top score 81.4 by Claude Opus 5.5; the original authors’ code scores 79.1.
Background
A world model is a learned simulator: given a frame and a list of actions, it predicts the frames that follow. NanoWM uses a diffusion model on compressed images. Each future frame starts as noise, which the model removes step by step, guided by the actions. Each frame has its own noise level, so some can finish before others.
What the agent has to build
The task removes the sampler that drives this process. The agent writes the schedule of noise levels per frame and step, and the update between levels. The trained model stays fixed.
How it is judged
Each submission predicts three future frames of a point moving through a simulated maze. To pass, on every clip it must beat the human reference on signal-to-noise ratio, structural similarity and a learned perceptual distance.
How each agent did
Each agent had one try of 5 hours. Score is out of 100; a high score alone is not enough to solve the task.
| Agent | Result | Score | Cost |
|---|---|---|---|
| Original authors’ code | Reference | 79.1 | |
| Claude Opus 5.5 | Solved | 81.4 | $12.30 |
| GPT-6 Astra | Not solved | 81.2 | $6.82 |
| GPT-6.1 Sol | Not solved | 81.1 | $1.12 |
| Kimi K3 | Not solved | 80.9 | $3.60 |
| DeepSeek V4.1 Flash | Not solved | 80.6 | $0.04 |
| Step 5 Preview | Not solved | 80.6 | $3.08 |
| GLM 5.3 | Not solved | 80.5 | $4.51 |
| Qwen 3.8 Max | Not solved | 80.4 | $2.85 |
| Muse Wonder 1.0 | Not solved | 80.3 | $4.62 |
| Gemini 4 Argon | Not solved | 80.1 | $5.22 |
| Muse Spark 1.3 | Not solved | 79.1 | $3.53 |
| GLM 5.3 Flash | Not solved | 79.0 | $0.55 |
Show the measurements behind each result
To solve the task an agent must beat the original code on every measurement below, on every hidden test case. Values are averages over those test cases. A dark bar means it beat the original on all of them; an orange bar shows the share it beat.
| Agent | LPIPSlower is better | PSNRhigher is better | SSIMhigher is better |
|---|---|---|---|
| Original code | 0.0198 | 36.6 | 0.984 |
| Claude Opus 5.5 | 0.0171 | 38.4 | 0.986 |
| GPT-6 Astra | 0.0179 | 38.3 | 0.985 |
| GPT-6.1 Sol | 0.0192 | 38.1 | 0.985 |
| Kimi K3 | 0.0176 | 38.2 | 0.985 |
| DeepSeek V4.1 Flash | 0.0194 | 38.1 | 0.985 |
| Step 5 Preview | 0.0191 | 38.1 | 0.985 |
| GLM 5.3 | 0.0191 | 38.1 | 0.985 |
| Qwen 3.8 Max | 0.0191 | 38.2 | 0.985 |
| Muse Wonder 1.0 | 0.0195 | 38 | 0.984 |
| Gemini 4 Argon | 0.0188 | 38.3 | 0.985 |
| Muse Spark 1.3 | 0.0181 | 37.2 | 0.984 |
| GLM 5.3 Flash | 0.0176 | 37 | 0.984 |
How Claude Opus 5.5 solved it
- 1.
Three schedules, one rule
Each frame starts denoising a fixed number of rows after the one before it. With no lag all frames move together; a lag of one step gives the pyramid; a lag of the whole schedule gives the sequential mode. Row indices then map to evenly spaced diffusion timesteps, with a separate value for clean.
- 2.
A per-frame DDIM update
Each row-to-row move calls the model once for all frames. From its output the update estimates every clean frame, whether the model predicts noise, velocity or the clean frame, and moves each frame to its next noise level by a DDIM step. Frames whose level does not drop stay unchanged.
- 3.
A lightly noised history
The real context frame is not shown perfectly clean. The sampler noises it to a fixed low level before each run and shows it to the model at that level in every row.
- 4.
Sixteen samples, averaged, its own idea
For each clip it runs 16 independent samplers of 50 steps and averages their latent videos. It then re-noises the average slightly and denoises it once more, frame by frame, in 10 steps, so the prediction leans toward what most samples agree on.
Task and results from frontier-cs.org, as of October 20, 2026.