Part of our AI Comparisons
Models·8 min read
By BitsMinds Hands-on test

Claude Sonnet 5 vs GPT-5.6 Terra: Middle-Class Fight

The same three build briefs, one attempt each, no browser — but handed to the middle of each lab’s range instead of the top. Anthropic’s Claude Sonnet 5 and OpenAI’s GPT-5.6 Terra both broke the same fairground ride in the same new way, and one of them shipped a game that never runs. All six builds are live in the article.

Claude Sonnet 5 vs GPT-5.6 Terra: Middle-Class Fight
Share:
BitsMinds LabHow this test was run2 models · 3 briefs · one attempt per model per brief · Claude Sonnet 5 in Claude Code, setting not recorded; GPT-5.6 Terra at Extra High in OpenAI CodexShow details
Models
Claude Sonnet 5 (Claude Code) · GPT-5.6 Terra (OpenAI Codex)
Attempts
One attempt per model per brief. No retries, no follow-up notes, no cleanup; every build is served exactly as the model wrote it.
Reasoning effort
Claude Sonnet 5 in Claude Code, setting not recorded; GPT-5.6 Terra at Extra High in OpenAI Codex.
Tools allowed
Each model ran inside its own maker's agentic coding environment with file-write access — Sonnet 5 in Claude Code, Terra in Codex — under the same ban on opening a browser. Neither was given a parallel multi-agent mode.
Timing
Wall-clock time from prompt to finished file, measured for every round. Terra was faster on all three, by up to 15.7x, and lost all three.
Scoring
Scored out of 4 per round. Final: Sonnet 5 6, Terra 2 — nothing in the round scored above 2.
Judging
Scored by a single BitsMinds editor from a local side-by-side comparison page of the untouched outputs. No panel, no blind scoring, no automated grading. The two Pac-Man builds were played in an ordinary browser rather than in any preview tool.
Published
September 12, 2026

Result

ModelProviderScore
Claude Sonnet 5Anthropic6 pts
GPT-5.6 TerraOpenAI2 pts

6-2 to Sonnet 5, on a low bar: nothing in the round scored above two out of four, and Terra's Pac-Man never parses.

The briefs — as described in the article; the exact prompt files were not published

  1. Round 1: Pac-Man (single HTML file)

    A complete, playable Pac-Man in one self-contained HTML file, no libraries and no network. Classic maze with the ghost house at its centre, wrapping side tunnels, four ghosts each with its own distinct hunt, power pellets, levels and lives, fitting inside about 700x620 on a desktop and 375x620 on a phone. Scatter phases, chain scoring and fruit were deliberately not mentioned.

    Result: Sonnet 5 2-0. Terra's script never parses — a stray e.preventDefault() outside its arrow function — so nothing is drawn. Sonnet 5 plays, but on a square grid rather than the arcade board, and it stutters.

  2. Round 2: Seaside fairground (SVG)

    A seaside fairground at dusk as one self-contained animated SVG. A Ferris wheel with at least ten gondolas turning continuously, each staying level with the horizon throughout. A carousel with a spinning canopy and at least six horses rising and falling out of phase. Twinkling bulbs, a reflection in the water, a seamless loop.

    Result: Sonnet 5 2-1. Both turned the carousel canopy vertically, like a second Ferris wheel, and both sank their gondolas into the ground — the brief's one stated trap, and the requirement models had been most reliable about.

  3. Round 3: Motorway interchange (SVG)

    A top-down interchange as one animated SVG, two roads crossing on different levels, connecting ramps, at least twelve vehicles following the curve of the road they are on, and correct layering so traffic on the lower road is hidden by the overpass.

    Result: Sonnet 5 2-1. Terra's ramps leave from the middle of the carriageway rather than the side, and two of them arrive nowhere.

Read with care

  • Single run per model — a re-run could land differently.
  • Different harnesses (Claude Code vs Codex) mean the environment, not just the model, was under test.
  • The cover illustration was made by GPT-5.6 Sol, a sibling of one of the entrants.

Part of BitsMinds Lab, our series of original hands-on tests.

Every round of this series so far has pitted flagships against each other. This one drops a tier. We gave the same three briefs to the middle of each lab’s range — Anthropic’s Claude Sonnet 5 and OpenAI’s GPT-5.6 Terra — one attempt each, with no browser to check their own work.

The briefs were the same three we gave the flagships in the Opus 5 versus Sol round: a complete, playable Pac-Man as one self-contained HTML file, a seaside fairground as an animated SVG, and a top-down motorway interchange.

Sonnet 5 won 6–2. The number that matters more is that nothing in this round scored above two out of four. When Claude Opus 5 and GPT-5.6 Sol ran these briefs, the round winner took four points every time. Here the best mark awarded to anything was a two. Sonnet 5 did not win well; it won a weak field.

Sonnet 5 ran in Claude Code; GPT-5.6 Terra ran in OpenAI Codex at Extra High. Neither was given a parallel multi-agent mode.

Round 1: Pac-Man

A complete, playable Pac-Man in one self-contained HTML file, no libraries and no network: the classic maze with the ghost house at its centre, wrapping side tunnels, four ghosts each with its own distinct hunt, power pellets, levels and lives, fitting inside roughly 700 by 620 pixels on a desktop and 375 by 620 on a phone. Scatter phases, chain scoring and fruit were never mentioned — we wanted to see who knew them unprompted.

Sonnet 5 took 55 minutes 47 seconds over 1,069 lines, and it plays. Four named ghosts, scatter and chase phases, chain scoring written as an explicit [200, 400, 800, 1600] table, fruit, a high score in local storage. But the board is a plain grid of squares rather than the arcade maze, and it does not run smoothly. It is recognisably Pac-Man without being faithful to it.

The frame above is blank because Terra’s game does not run at all.

Its script never parses. In the touchend handler, e.preventDefault() sits outside the arrow function that was supposed to contain it, with an unbalanced brace beside it, and the browser rejects the whole <script> block with Uncaught SyntaxError: missing ) after argument list. Not one pixel is drawn. The file has a single script block, so there is nothing else that could have run in its place; we confirmed the fault with a syntax check on the file and again in a browser console.

What makes that worth dwelling on is everything else in the file. Terra also knew the unprompted rules: four ghosts with four different target functions, scatter and chase alternating on a timed cycle, chain scoring computed as 200 * Math.pow(2, ghostChain - 1) for 200, 400, 800 and 1600. It wrote a credible Pac-Man in 6 minutes 40 seconds. It did not write a Pac-Man that opens. Sonnet, incidentally, includes fruit; Terra has none at all.

Round 1: Sonnet 5 two, Terra nil.

Round 2: The fairground

A seaside fairground at dusk as a single animated SVG. A Ferris wheel with at least ten gondolas turning continuously, each staying level with the horizon throughout the rotation. A carousel with a spinning canopy and at least six horses rising and falling out of phase. Twinkling bulbs, a reflection in the water, a seamless loop.

Two things stand out.

Animated seaside fairground built by Claude Sonnet 5
Claude Sonnet 5, 68 minutes 34 seconds, 34.5 KB. Its horses rise and fall above the ground, but they never travel round the ride, and the canopy above them turns like a Ferris wheel.
Animated seaside fairground built by GPT-5.6 Terra
GPT-5.6 Terra, 4 minutes 22 seconds, 16.9 KB. The carousel turns vertically and the horses pass under the ground.

The first is that both models turned the carousel canopy on the wrong axis. A carousel spins in the horizontal plane; a Ferris wheel spins in the vertical one. It looks as if both models built the wheel first and then reached for the same rotation again for the roof beside it — so in both scenes the canopy wheels over end-on like a second Ferris wheel. Terra compounds it by sending its horses under the ground. Sonnet 5 keeps its horses above ground and bobbing, but they never travel round the ride at all, which is precisely the fault GPT-5.6 Sol made in the flagship round, a tier up and at a different lab.

The second is on the Ferris wheel, the ride models have been most reliable about. Both entrants keep their gondolas level, which is the one trap the brief states out loud. Both also set the wheel so low that the cabins sink into the ground at the bottom of every turn.

Round 2: Sonnet 5 two, Terra one.

Round 3: The interchange

A top-down motorway interchange as one animated SVG: two roads crossing on different levels, connecting ramps, at least twelve vehicles following the curve of the road they are on, and correct layering so traffic on the lower road is hidden by the overpass.

Animated motorway interchange built by Claude Sonnet 5
Claude Sonnet 5, 39 minutes, 12.2 KB.
Animated motorway interchange built by GPT-5.6 Terra
GPT-5.6 Terra, 3 minutes 28 seconds, 10.5 KB. Its ramps leave from the middle of the carriageway, and two of them arrive nowhere.

The two interchanges are close in shape. The difference is where the ramps attach. Sonnet 5 takes its ramp off the side of the road, where a slip road belongs. Terra takes its off the middle of the carriageway, and then adds two more that also begin mid-road and arrive nowhere at all — they simply stop.

Sonnet 5’s is not faultless either. Its ramps touch both roads, but watch one for a while: the ramp traffic appears from nothing at the road’s edge, so no vehicle ever actually travels from one road to the other.

Round 3: Sonnet 5 two, Terra one.

The carousel is now four models deep

This ride has broken for every model that has attempted it outside the top of Anthropic’s range, and it has never broken the same way twice.

  • Claude Sonnet 5 turns the canopy vertically and never moves the horses round the ride.
  • GPT-6 Astra never rotated its canopy at all — the whole motion was a three-degree rock over eight seconds while the horses bobbed on the spot.
  • GPT-5.6 Sol, in the flagship round, rotated the canopy and left the horses behind.
  • GPT-5.6 Terra rotated the canopy vertically and put the horses underground.

The instructive part is which requirement gets solved. The gondolas are flagged in the brief, in a sentence that tells the model what will go wrong, and every model that has read it, these two included, has kept them level. The carousel is stated in the same brief, just as plainly, with no warning attached — and it has never been built correctly by anything but a flagship Claude model. Tell a model where the trap is and it engineers its way past it. The requirement one sentence later gets an approximation, and nothing at this tier went back to check it.

Speed bought nothing, again

RoundClaude Sonnet 5GPT-5.6 TerraRatio
Pac-Man55m 47s6m 40s8.4×
Fairground68m 34s4m 22s15.7×
Interchange39m 00s3m 28s11.2×
Total2h 43m 21s14m 30s11.3×

Terra built all three in less time than Sonnet 5 spent on a quarter of the Pac-Man. It is the third consecutive round in which the OpenAI entrant has been far faster and still lost, and the margin keeps widening: Astra finished in about two-thirds of its rival’s time, Sol in a sixth, Terra in under a tenth.

What OpenAI says Terra is

This round is sharper than a mid-tier scrap because of where OpenAI place Terra. On its own GPT-5.6 page, describing the Artificial Analysis Coding Agent Index, the company writes that “Terra performs just above Fable 5, while Luna outperforms Opus 4.8” — each doing so “in roughly one-third of the time… at approximately one-quarter the estimated cost.” On Agents’ Last Exam it says Terra and Luna “outperform Fable 5 at around one-sixteenth the cost.”

That is OpenAI positioning its middle tier above the top of Anthropic’s range on coding. Claude Fable 5.1 beat Opus 5, Fable 5 and Sonnet 5 in our four-model Claude run. Asked for one complete game in one attempt, that middle tier produced a file that a browser refuses to parse.

Both things can be true at once, and that is the point. A coding-agent index measures whether a model can drive a task through a harness that runs the code, reads the error and tries again. It does not measure whether the first artefact is sound, because it never has to be. Strip the retry loop out and you are measuring something the benchmark was never built to see.

The verdict

Sonnet 5 takes it 6–2 without building anything anyone should be pleased with: a Pac-Man on a square grid that stutters, a carousel with a vertical roof, and a Ferris wheel whose cabins dip through the floor. Terra lost every round and lost the first one to a missing bracket.

Drop a tier and the failures stop being subtle. The flagship round turned on a half-tile rounding error and a shoulder line painted through an exit — faults you have to look closely to catch. This one turned on horses underground and a roof spinning the wrong way round. The knowledge is still there in both files. What thins out, a tier down, is whatever turns knowledge into something that stands up.

How this test was run

One attempt per model per brief, no retries, no follow-up notes and no clean-up — every file above is served exactly as the model wrote it. Claude Sonnet 5 ran in Claude Code; GPT-5.6 Terra ran in OpenAI Codex at Extra High. Neither could open a browser. Rounds were scored out of four by a single BitsMinds editor from a local side-by-side page, playing the games in an ordinary browser. The cover illustration for this article was made by GPT-5.6 Sol, Terra’s own sibling model.

More on Claude

Evergreen coverage we keep current — start here.

Want AI news before everyone else?

The morning's most important AI stories, straight to your inbox. No fluff.

Related Articles