To beat a game it has never seen, the agent writes the game: 93.3 on ARC-AGI-3.
Think for free, then spend one checked move.
Write the twin, replay it against every frame ever seen, search it for a route: all free. Only the executor costs, and it stops at the first wrong prediction.
tap to open full size
PROBE ACTION2 → "changed no playfield cell; falsifies the hypothesis, the bar is a move budget"ls20 · actions.jsonl{"prev":…,"action":"ACTION6:26,42","next":…} · 447 lines, oldest first, never editedtn36 · transitions.jsonl"the corner pixel changes only on the first interaction" → model.py edited → validate: []ka59 · agent.logvalidate: [{'i':83,'action':'ACTION3','wrong_cells':1}] → {"ok":false,"error":"model does not validate"}ka59 · agent.logau.gaps: "MISPREDICTS color 12 under ACTION2 (5/5), 2 differing effects → SPLIT the rule" score 2.6wa30 · agent.logvalidate: [{'i':138,'action':'ACTION4','wrong_cells':72}] → repaired from the log, no move spentka59 · agent.logau.plan → ['ACTION1','ACTION4','ACTION4','ACTION4','ACTION1'] · shortest route, 0 scored moves to find itls20 · agent.log"guard caught the first mismatch at move 8, 200 changed cells → halt, log, relearn"sk48 · agent.logThe whole player, in 28 lines.
(T̂, R̂) ← identity twin; D ← ∅ ▸ per gamefor each level do while level not complete and budget remains do s ← Perceive() ▸ read the real grid while Validate(T̂, D) returns gaps do g ← Top(Explore(s, D)) ▸ dynamics wall T̂ ← Repair(T̂, g) end while p ← Plan(s, T̂, R̂) ▸ BFS inside the twin if p = None then c ← Top(Explore(s, D)) ▸ goal wall R̂ ← ProposeGoal(c) ▸ tentative while R̂(sᵢ) = 1 for some logged frame sᵢ do c ← next candidate; R̂ ← ProposeGoal(c) ▸ consistency check, free end while p ← Plan(s, T̂, R̂) ▸ cheapest test of R̂ end if if p = None then p ← [ Probe(s, D) ] ▸ one informative move end if o ← ExecuteChecked(p) ▸ halt on mismatch, log to D if o is a level boundary then R̂ ← UpdateGoal(o, D) ▸ first positive label else if o reaches c with no boundary then RejectCandidate(c) ▸ permanently exclude this non-goal end if end whileend forRead the current frame: 64×64 cells, 16 colours.
Replay the twin over everything that ever happened. While one cell disagrees, Explore names the worst rule and Repair rewrites it. You never act on a twin that argues with history.
Breadth-first search inside the validated twin for the shortest path to a state the learned goal accepts. Thousands of imagined futures, zero scored moves.
Twin is right but no route exists? Then the missing piece is the goal. Scout the twin for reachable candidates, and discard any predicate that would already have fired on a logged frame: a goal you supposedly reached without winning is no goal. That check is free.
No plan and no candidate? Fall back to a single probe aimed at what the log cannot tell you.
Submit the route one move at a time, each against a committed prediction. The first frame that disagrees halts the plan and enters the log as a counterexample, sending you back to line 5.
A level boundary is the first positive label and sharpens the goal. Reached the imagined goal and nothing happened? That candidate is permanently excluded.
Every submitted action is preceded by au.validate == []. A mismatched move enters the log, so the next submission fails validation until the twin is repaired. You cannot run a plan through a mistake.
A plan either completes, or hands you one clean counterexample for a move you were spending anyway. Repairs scale with the number of rules, not the number of screens.
The agent's real output is a game engine.
model.py: a game engine for a game nobody gave it the rules to.
Executable-copy scorecard
Run timeline
rolling twin accuracy over the run · ▲ probes · | level cleared
Wrong once, then never again.
Each frame flips between what the twin imagined and what the game did. Every miss repaired the model for good.
Where the copy and the engine disagree.
Each final twin was replayed against the real engine on actions the agent never took.

Every level, rendered by model.py.
step() chained on its own output, server untouched.
26/71h TWIN actions vs the human baseline. Green: at or under human pace.
eff 1.00 the efficiency term, cap 1.00; the game score weights these by level.
the bar share of the level's transitions the twin replays cell-exactly.
What the agent spends its actions on.
All 11,614 scored actions, one row per game, time left to right.

The world model, not the base model, plays the game.
The benchmark’s action-efficiency score. Human pace = 100.

Same games. A fraction of the tokens.
Score against thinking spent. Reasoning, code and simulation are free to the metric, not to the bill.
full per-game table
Where the field stands.
Agent systems on the ARC-AGI-3 public set. Click an entry for its source.
Standings as of July 31, 2026.