Self-building city
One prompt, sent unchanged to every model we can get our hands on. One shot: no retries, no testing, no fixes. Every result below is the raw file the model wrote, running live in your browser. Watch it build, wait for night, and judge for yourself. Do the cars stay on the road?
The raw files, running.
Fig. 01 · Claude Code · 2026-09-29Fable 5.1Run with Claude Code's output cap raised to 128k: its first response used all 128k thinking, Claude Code's automatic resume followed, and it then wrote the file in one call. Two earlier runs at the default 64k cap ended with no file.Run it live →
Fig. 02 · Codex · 2026-09-29GPT-6 AstraRun it live →
Fig. 03 · Codex · 2026-09-29GPT-6 SolRun it live →
Fig. 04 · Antigravity · 2026-09-29Gemini 3.8 FlashRun it live →
Fig. 05 · Cursor · 2026-09-29Grok 4.7Run it live →
Fig. 06 · Claude Code · 2026-09-29Opus 5.5Second attempt. The first run was cut off by a session restart before it wrote any file.Run it live →
Fig. 07 · Claude Code · 2026-09-29Sonnet 5.5Run it live →
Fig. 08 · Claude Code · 2026-09-29Sonnet 5Run it live →
Every model got exactly this.
Build a single self-contained HTML file that uses Three.js (load it from a public CDN) to show a small city building itself. - It starts as a glowing blueprint: roads and building plots drawn as lines on a grid. - Buildings rise one by one on their plots, each with its own shape and height. - Once roads exist, cars drive along them, staying in lane and never passing through buildings or each other. - A day-night cycle runs continuously; at night, windows and streetlights switch on. - The user can orbit and zoom with the mouse; a "Rebuild" button starts over with a new random layout. - It must work by opening the file in a modern browser: no build step, no local assets, no server.
Same rules, every run.
- One shot. No retries, no follow-up messages, no fixes. The model was told not to open, run or test its own file.
- Published unedited. The file you run is byte-for-byte what the model wrote, broken or not.
- Model and harness both named. The same model in a different tool can behave differently, so each result names the harness it ran in.
- Frames aren’t hand-picked. Each thumbnail is captured at 1200×630: the file is loaded, and the frame is taken exactly 15 seconds after it loads, with no interaction. The same rule applies to every model, so no frame is hand-picked.
The exact text sent before the prompt
You are taking part in a one-shot benchmark. Answer the TASK below by writing exactly one file, {path}, with the Write tool, in a single attempt. Rules: - Do not read, open, run, preview or test any file. - Do not search the codebase or the web. - Do not revise the file after writing it. One Write call, then stop. - After writing, reply with exactly one line: your exact model ID as stated in your system prompt. TASK:
In harnesses without a “Write tool”, only that tool name is adapted. Nothing else changes.