AI-built city builders, nine months apart

Published 15 August 2026. Every number below was taken by us, on one machine, on the same afternoon.

Almost everything written about what AI coding agents can build compares different people building different things at different times. On 15 August 2026 Andrew Milich posted a side-by-side of two city-building games — his own isometric one from November 2025, and a 3D city simulator from August 2026 — and wrote that Full 3D and AAA graphics are within reach.

That pair is unusually worth measuring, because almost everything that normally ruins this comparison is held still: same builder, same genre, same delivery target (a browser tab), nine months apart. What changed is the toolchain. So we loaded both, played both, and wrote down what they actually do.

6.2 → 199.3 msFrame cost, 2025 game vs 2026 game, same viewport
41 → 1,114 MBJavaScript heap while playing
18,122Buildings the 2026 game generates before you touch it
2 of 58Games in our catalogue that are city builders. These are both of them.
IsoCity running: an isometric night city with roads, houses and industry, population 39,008
IsoCity, November 2025. The bundled example city, 39,008 people. 2D canvas sprites. Captured by hand, 15 August 2026.
Metropolis running: a 3D city of skyscrapers beside a river, population 193,200
Metropolis, August 2026. Bay Stead, 193,200 people, generated before the first click. three.js. Captured by hand, 15 August 2026.

What we measured

IsoCity — Nov 2025Metropolis — Aug 2026
Toolchain, as stated by its makerCursor / Composer 1 + cloud agentsGrok 4.6 + /loop
Renderer2D HTML5 canvas, 7 layers — no WebGL context at allthree.js WebGL, 76 custom fragment-shader sites
Frame cost, median6.2 ms199.3 ms
Frame cost, 95th percentile10.2 ms252.1 ms
JavaScript heap in play41 MB1,114 MB
First load9.2 MB over 21 requests, 1.7 s580 KB of HTML + JS (1.78 MB of JavaScript before compression)
Distinct building kinds59 sprite types (66 with terrain)~41 procedural mesh builders, 25 of them placeable from the menu
Map data overlays712
EconomyOne tax rate; population, jobs, pollution, land value, service coverageSeparate residential / commercial / industrial tax rates; commute, unemployment, approval, land value, per-building capacity and catchment
World you start withAn empty map. The bundled example city is 39,008 people.A generated 320×320 region — 18,122 buildings, 10,244 road tiles, 193,200 people — before you click anything.
SourceMIT, 2,206 stars, 245 forksNo public repository
Also hasCo-op multiplayer, translated UICtrl+K command palette, milestones, advisor events

The ceiling moved. So did the floor.

The visual claim holds up. In nine months the same builder went from sprites composited on a 2D canvas to a real-time 3D city with hand-written shaders, procedural building geometry and a region generated at boot. Nothing in our catalogue of 58 AI-built games looks like Metropolis, and its own console says why: it lays out 18,122 buildings and 10,244 road tiles, then prunes 270 stranded roads before it shows you anything.

What the 13-second video cannot show is what that costs. On the same machine, in the same browser, at the same window size, one tab at a time: the 2026 game costs 32× more per frame and 27× more memory than the 2025 one. 199.3 ms a frame is roughly five frames a second, against the 16.7 ms a 60 Hz display allows. A gigabyte of JavaScript heap is not a rounding error either — it is most of what a cheap laptop has to give.

It is fair to say this hardware is the constraint rather than the game: an AMD Radeon 610M is integrated graphics, and the same probe at roughly half the pixels reads 102.4 ms, so it is fill-rate bound and a real GPU will do far better. But that is the point worth taking away. “Within reach” is true of the picture and not yet true of the frame budget, and which of those two you mean decides whether the answer is yes or no.

What did not get worse

The obvious cheap shot — that the prettier game is shallower — is wrong, and we checked before writing it. Metropolis carries more simulation than its predecessor: twelve map overlays against seven, separate tax rates per zone type, commute and unemployment, and per-building service capacity with a travel radius. IsoCity still defines more distinct building types (59 against roughly 41), but the 2026 ones are generated 3D geometry with per-building materials rather than fixed sprites.

The one genuine regression is openness. IsoCity is MIT-licensed with 2,206 stars and 245 forks, and says Made with Cursor on its own title screen. Metropolis has no public repository at all — you can play it, and that is the whole of your access.

The loop is the constant. The model is the variable.

It is worth being precise about the second half of “Grok 4.6 + /loop”, because it is the part this catalogue is in a position to recognise. The other 56 games we measure were built with the Gauntlet Loop — Matt Shumer's method, published after Claude of Duty, in which a lead agent splits the work into pieces and runs a builder and a critic against a concrete reference bar until the output clears it. We adopted it for our own games in July 2026, so this is not an outside observation.

Shumer is explicit that the Gauntlet Loop is a prompting methodology and not a slash command, while noting that Claude Code ships a /loop skill for repeated agent work. So we are not claiming Metropolis was built with his prompt — we have not asked, and its author has not said. What is visible is the shape: an agent run repeatedly against its own output rather than prompted once.

That is what makes the pair readable. Across these nine months the loop is roughly held still and the model underneath it is not. November 2025 is Composer 1 with cloud agents; August 2026 is Grok 4.6. The same catalogue that shows what a single-prompt build produced in 2026 shows, in these two entries, what the identical technique produces when the model beneath it moves a generation — and the answer is a 320×320 region with hand-written shaders instead of a sprite sheet. It is the clearest evidence we have that the ceiling in this catalogue is set by the model and not by the method.

What this comparison is not

How we measured it

Both games were opened in the same visible Chrome on the same Windows laptop, resized to 1280×800, with only one of them open at a time — an early run with both tabs loaded was thrown away, because a background tab still competes for the GPU and its 95th percentile blew out to 1,018 ms. Each game was entered by hand (IsoCity needs New Game, then Load Example; Metropolis needs nothing, it generates a city and drops you in), left to settle, then sampled for 300 frames with the same requestAnimationFrame probe, discarding the first 20.

These are frame costs, not frame rates. An automation browser has no compositor throttling it, so the loop free-runs and what you are reading is how long the game takes to draw one frame — which is why we state it against the 16.7 ms a 60 Hz display allows, and never invert it into a headline fps number. The renderer string was checked on both to be sure neither had quietly fallen back to software: that mistake cost us every frame figure on this site once already.

Building counts, overlays and tax rates were read out of the shipped code — IsoCity's public MIT repository, and Metropolis's deployed JavaScript bundle — rather than from either game's marketing.

Play them

IsoCity — what we measured, and where to play it · Metropolis — what we measured, and where to play it

Both are hosted by their creator; those links open his sites, not copies on ours. They are 2 of the 58 AI-built browser games we catalogue and measure — and, as of today, the only two city builders among them. The catalogue runs 23 shooters and 9 racing games deep, which is its own small finding about what these agents get pointed at.