Agent said "The agent stopped without a final message." Gate: passed.
Who's the real Pinball Wizard?
One pinball prompt, three attempts each: Muse Wonder, Opus 5.5, and Opus 5.5 with the threejs-game Workbench.
The tables
Recordings loop. Play opens the real build in a new tab.Agent said "I built the pinball table, and it builds to a static site you can upload. It's called Neon Pinball. I couldn't play it at real speed: the test browser here h..." Gate: passed.
Agent said "I built Neon Pinball, a small 3D Three.js pinball table, and it builds to a static site you can upload. The final tgcheck passed, and so did every scripted p..." Gate: passed.
Muse Wonder, Opus 5.5, and Opus 5.5 with our threejs-game Workbench all built playable tables. Plain Opus 5.5 got there fastest and cheapest, with enough eye candy to impress, though it would take real work under the hood to become a game you could keep extending. Muse had some interesting attempts, but every table it built had something broken, often hilariously. The Workbench tables do play better. For a quick pinball table, that edge isn't worth twice the time and cost.
Our pick: Opus 5.5 (Vanilla) · editorial judgment
Side by side
Medians across 3 attempts unless noted| Metric | Muse WonderVanilla | Opus 5.5Vanilla | threejs-gamepompeii/threejs-game on Opus 5.5 |
|---|---|---|---|
| Outcome | |||
| Workspassed the gate | 3/3 | 3/3 | 3/3 |
| Said done, was broken | 0/3 | 0/3 | 0/3 |
| Our pick | · | Yes | · |
| Economics | |||
| Cost per working tableincludes failed attempts | $5.18 | $2.30 | $4.26 |
| Total cost3 attempts | $15.55 | $6.91 | $12.79 |
| Wall time | 53m 12s | 14m 54s | 28m 24s |
| Effort | |||
| Tokens in / out | 3.7M / 35k | 2.4M / 43k | 7.6M / 73k |
| Turns | 1 | 1 | 1 |
| Tool calls | 102 | 44 | 78 |
| Code | |||
| App codeexcludes tests, config, and lockfiles | 815 lines, 1 file | 1,369 lines, 4 files | 2,006 lines, 9 files |
| Largest fileone long file is harder to change | 640 lines | 755 lines | 616 lines |
| TypeScript | 0/3 | 0/3 | 3/3 |
| Test codewritten by the agent | 0 lines | 109 lines | 257 lines |
| Has npm testtests run without the Workbench | 0/3 | 3/3 | 0/3 |
| Setup | |||
| Model | meta/muse-wonder-1.0 | anthropic/claude-opus-5-5 | anthropic/claude-opus-5-5 |
| Workbench | wb-benchmarks/vanilla-muse-wonder 0.1.1 | wb-benchmarks/vanilla-opus-5-5 0.1.0 | pompeii/threejs-game 0.3.2 |
Works means it builds to a static site, loads in a headless browser with WebGL, draws a real scene, and survives 60 seconds of mashed flippers and plunger without crashing or freezing. Cost is model spend only and includes failed attempts. Our pick is our call, not a score.
Pinned setup
Everything needed to rerun it# Task prompt, identical for every arm
Make a small 3D pinball table in three.js: two flippers, a plunger, bumpers that light up and score, three balls per game, and a high score. It should feel tight and arcade-y. I want to put it on my site, so it needs to build to a static site I can upload. Nobody will be around to answer questions while you work, so don't wait for input: make the best call yourself and keep going. - Starting point
- pompeii-labs/workbenchmarks-fixtures@41eb9e6
- Gate
- Builds a static site, Loads in a headless browser with WebGL and no errors, Draws a real scene, not a blank or flat canvas, Survives a 60 second playtest
- Attempts
- 3 per arm, no retries, no cherry-picks
- Runs
- 9 scored
- Generated
- 2026-10-22
Revisions
- Oct 22, 2026Revision 1. First run: 3 arms, 3 attempts each.
More benchmarks
One prompt, one run each: a cup of espresso you stir with your cursor, where speed is force. Opus 5.5 against Opus 5.5 with the threejs-tsl Workbench.
- Opus 5.5 Vanilla 1/1
- threejs-tsl pompeii/threejs-tsl on Opus 5.5 1/1
One jet ski game built in three stages by GPT 6.1 Sol, Opus 5.5, and Opus 5.5 with the threejs-game Workbench. Each stage picks up the code the last one left behind.
- GPT 6.1 Sol Vanilla 1/1
- Opus 5.5 Vanilla 1/1
- threejs-game pompeii/threejs-game on Opus 5.5 1/1