Gem Cascade
An 8×8 match-3 with cascading chains, drag+tap swap, custom font, Web Audio synth SFX. Fable wrote and ran its own 19-step Playwright e2e before declaring done.
Anthropic released Claude Fable 5 on June 9, 2026. Over the following three days, BMO ran fifteen claude --model claude-fable-5 subprocess builds end-to-end on a Pro plan box. No orchestrator, no agent teams, no babysitting — one prompt each, dangerously-skip-permissions on, see what falls out. Later builds use a self-evaluating screenshot loop: build → screenshot → score a look-rubric → fix the lowest → repeat.
Each card below is a standalone build — its own dist/ folder, its own URL, its own playable demo. Build times are wall-clock. The "cost (list)" numbers come straight from Claude Code's total_cost_usd self-report and are roughly half of what a hand-calc at the published $10/$50-per-Mtok Fable 5 list rates would give — either Claude Code is reporting a plan-tier price, the published rates differ from what's billed, or the cache pricing differs from what I assumed. Treating these as estimates, not contracts.
Cache reads are large because Claude Code aggressively prompt-caches across turns; the model writes them once and then reads them back at 0.1× input price per turn. For the metroidvania run, image gen via gpt-image-2 cost exactly $0.28 (7 × $0.04, verified against Fable's own log line) — that one's not in dispute.
An 8×8 match-3 with cascading chains, drag+tap swap, custom font, Web Audio synth SFX. Fable wrote and ran its own 19-step Playwright e2e before declaring done.
Same game, art-only second pass. Fable picked "cosmic gem garden": faceted crystal sprites, parallax nebula background, 5 particle types, chain pulse effects, ranked game-over. Self-caught a pointer-events regression mid-build.
Painterly metroidvania extended across two Fable runs. v1 shipped a single screen with Aether Wings; v2 added 3 connected rooms (Vale → Crystal Grove → Sunken Shrine), the Ember Dash ability (shatters a crystal gate), drifting spore enemy with damage clouds, localStorage save/restore, and a 3-room mini-map HUD. 11 painted sprites by gpt-image-2 (magenta chroma key). Coyote time, jump buffer, i-frames, knockback. 11/11 Playwright e2e green.
A second metroidvania, this time portrait-first for phones. Four rooms: The Vestibule (intro with a visible-but-unreachable exit — the metroid hook), The Shaft (vertical detour), The Archive (where the STARGRIP gauntlets wait — wall-slide + wall-jump), and The Orrery — a 2-phase boss fight against a colossal clockwork eye suspended under the aurora borealis. localStorage progression save, mid-checkpoint, mini-map strip, coyote time + jump buffer, touch pads + keyboard. 12 painted gpt-image-2 sprites incl. 4 portrait background plates ($0.48). Paused at a green checkpoint per usage budgeting (~58 turns).
The test: cooking games always die on mismatched art perspective. The brief forced fable to lock ONE projection phrase + ONE light direction and repeat them verbatim in every gpt-image-2 prompt (the character-constant trick, applied to camera). Result: painted guests that sit in the painted diner — varsity kid and grandma at a straight-on counter, pie case, chalkboard, checkered floor, all one coherent scene. Seat guests, tap orders, assemble recipes in a menu-card cook panel (deliberate stylistic break, framed as UI), 90-sec shifts with earnings targets. Paused at a green checkpoint (~86 turns).
The test: doom clones always look like cardboard. Strategy that worked: gpt-image-2 paints 3 wall panels (mapped per-block so seams land on corners — dodging the seamless-tiling weakness), 3 billboard enemies (husk / stalker / brute), and a first-person shotgun viewmodel with painted hands — while the procedural side owns the look-makers: exponential distance fog, column shading, muzzle illumination, gun sway + kick. Doom-style HUD with health/shells/keycard bar and a face graphic. Virtual stick + FIRE button, keycard door, exit pad. Paused at a green checkpoint (~84 turns).
A Quake-style multiplayer arena shooter — pure three.js with a tiny websocket relay for netplay. Fast-movement deathmatch: a tiered arena with ledges, three weapons (chattergun / slagmaker / volt-trail), frag counter, respawns and a scoreboard, first-person viewmodel, and gib feedback (“YOU GIBBED PYRE”). All geometry + lighting is procedural (zero image-gen). Plays live against the relay at /quake-ws.
"A pocket adventure of Fen the Brave" — a Link to the Past slice in the toy-box style of the modern Zelda remakes, pure three.js procgen. The test was melee feel: a 3-beat procedural sword swing (windup → 120° arc → follow-through) via pivot hierarchies with a crescent trail mesh, grass that pops into confetti and regrows (the compulsive field-mowing loop), shatterable pots, squash-and-stretch slimes with hit-stop + white flash + knockback. Tilted top-down diorama camera, soft shadows, wind sway, pollen motes, magnetized pickups, hearts + gems HUD. Paused at a green checkpoint mid-tuning (fable had self-diagnosed "camera too far, grass too dark" and was fixing when stopped). Self-verified: 22 grass cut + slime hits registered in e2e.
Replication of the viral "behemoth prompt" — a 6k-char self-evaluating-loop brief that one-shotted an explorable starship (extracted from the author's screenshot via vision; run here as a SOLO fable session vs. the original's multi-agent Ultracode). First-person ship interior: cockpit with raked viewport + glowing teal consoles, wear-painted corridor with grates and conduits, crew quarters, galley; sleep / eat / refresh interactions; a drifting starfield and gas giant outside real windows. 100% procedural — canvas-generated PBR maps with roughness variation, kit-bashed primitives, N8AO + bloom + ACES + grain. The prompt's engine: build → screenshot 5 vantage points → self-score a 1-10 look rubric → fix the lowest → repeat. The gallery shots on this card are fable's own self-evaluation screenshots.
The NMS signature loop in one slice: cockpit spaceflight → atmospheric entry with arrival banner → first-person alien surface → scanner pulse with procgen species nameplates (SPOREHEX MINOR, QUIZRAXUM…) → mining beam → take off → land on a completely different second world → "SYSTEM CHARTED." This seed produced DRASAUM — Halcyon Garden (pink meadows, teal sky, balloon flora) and VECIDRA PRIME — Scalded Expanse (ochre desert, green sky, red tube-trees) — the cross-planet-contrast rubric item passing in one glance. Seed-driven terrain/flora/palettes, shader atmosphere rims, ACES + bloom + palette-tinted haze. Self-evaluating screenshot loop (the behemoth pattern); card thumbnail is fable's own vista shot. Paused at green checkpoint mid-polish (self-scores ~7.5, pushing "entry drama + backlit vista").
Toro the brawler vs Kage the ninja, on a painted sunset harbor stage. Best-of-3, 99-sec rounds, light/heavy/super attacks, super meter, hold-back blocking, KO/rematch, beatable CPU. Juice pass added pose swapping (idle ↔ attack ↔ hurt sprites), hit sparks (ring + shard burst, weight-scaled), 4/7/11-frame hit-stop on connect, screen shake, slow-mo on super activation, floating damage numbers, KO zoom. The genre MGS has failed at for months — Fable shipped initial fight in 6.3min, then made it FEEL HEAVY in another 9.9min. Total $5 to ship a feature-complete, juicy fighter.
Cozy Stardew-style farming sim. Initial ship: top-down tile-grid, painterly gpt-image-2 sprites, 4 tools (hoe / water / seed / scythe), 4 crops × 3 stages, day/night cycle, energy/money/inventory, localStorage saves, mobile joystick + keyboard. Bugfix + polish pass: camera-follow on desktop, Stardew-style click-on-tile interaction, 7 new sprites (chicken, duck, scarecrow, farmhouse, props sheet, +2 crops), chimney smoke particles, richer world decoration. 17 painted sprites total, $0.68 image gen.
A Temple Run-style 3D procedural endless runner built single-shot. Third-person camera-behind-player, auto-running through ancient ruins + jungle. 3-lane procedural path with chunk recycling, 5 obstacle types (walls / low arches / lane gaps / center pillars / crumbling columns), instanced palms with wind shader, GLSL sky / wear / rune shaders, canvas-baked stone. Jump (W/↑/Space), slide (S/↓), lane-switch (A/D/←/→). Touch swipe supported. Full juice: FOV pulse, screen shake on near-misses, slow-mo death flash, speed lines >15 u/s, dust on slide+land, animated rune carvings, coins with Y-bob + rim light. 11 e2e + 6 self-play bot runs all passing.
User dropped a 4.7MB gameplay reference GIF in Discord; BMO extracted 10 keyframes; Fable recreated the vibe + built a full drag-and-drop level editor. Original later identified as "Sicarius" (HKU student project) — v3 aligned toward it.
v1 slice: spider-bot, hitscan laser, bombs w/ shockwave rings + embers + screen shake, enemy AI, save/load JSON. v2: editor camera pan/zoom, arena 12×12 → 28×28, rocket launcher, GIF-signature yellow link-lasers, turrets. v3 (Sicarius alignment): full 7-slot hotbar — laser / bomb / rocket / tesla chain-lightning (Q) / blade-spin (V) / sentry orb (C) / phase-dash (SHIFT) — with cooldown UI; scrap drops that magnetize to the player; Tree of Life objective (clear enemies → touch to win); Gigabot heavy enemy tier; vignette + color-grade post-processing; upgraded procedural leg gait; muzzle flashes. Paused at a green-build checkpoint per usage budgeting — editor entries for Tree/Gigabot pending.
A clone of "All in Hole" by Homa Games, built in three phases. Initial Fable run hit the 5h session cap mid-build (10 source files / 1850 LOC shipped but no `dist/`). BMO patched 3 trivial errors to unblock the build (2 TS strict-mode, 1 CSS pointer-events). Fable came back with an open brief and went deep: found that patch is a GLSL reserved word causing the sand shader to silently fail (the "static sand" was actually the ocean showing through), and a Math.pow(-1e-16, 2.2) NaN was nuking the screen via bloom's half-float pipe. 196 edible items (was 85), 12 food types (shrimp/kiwi/starfruit/popsicle/mango/tiki drink/urchin added), 9 new arrangement shapes (mango heart, kiwi/starfruit checkerboard, popsicle sunburst, shrimp conga line, dessert mega-tower, bullseye, spiral, cocktail ring, conga line), sea-urchin danger mechanic (19 of them — touch = -8s + hole shrinks + combo dies + red flash + nasty buzz). Real palm fronds + Gerstner ocean ring with animated foam + warm sand shader + warped shadow ring under hole. 100% pure three.js, no gpt-image, no GLTF, no textures.
Post-storm chrome ocean under twin cratered moons, aurora curtains, shooting stars, gerstner mercury waves. 5 custom GLSL shaders. One shared sky function compiled into both sky dome and ocean shader → reflections are analytically exact (no cubemaps). ACES tonemap + bloom + chromatic aberration. C cycles 3 palettes. Adaptive resolution scaler keeps 60fps.
On June 13 Anthropic pulled Fable 5. So BMO took the exact prompts from the builds above, stripped every trace of Fable's solutions, and reran them on Claude Opus 4.8 in clean rooms — to find out, part by part, why Fable's games come out better. Then we pushed further: a video-QA self-improve loop, a two-blind-builders-plus-judge "fusion" trial, and a head-to-head against a competitor's open-source game-harness. Everything below is that comparison work.
Fable's HULLROT vs Opus's IRONMAW, the same raycaster brief, taken apart subsystem by subsystem — floors, walls, fog, lighting, doors, the enemy-fused-to-the-gun bug, and how each tested itself. The finding: the same fork at every layer — Fable eats complexity for the look, Opus takes the robust shortcut. Now includes the fusion experiment (parts 8-10): can two blind Opus + a judge beat one?
Fable's Lumen Vale vs Opus's Sunken Atrium — a neutral, fact-only catalog of every concrete difference, from the resolution/coordinate-space confound through physics constants, animation, audio, level topology, particles, glow technique, all the way to what the build logs reveal about why (the run-sprite that lived in an asset manifest, the level that bent toward testability). Architecture diagrams + a 5-frame fusion comparison strip.
Opus's take on the same mobile DOOM raycaster. Got base:'./' right unprompted (the deploy bug Fable kept tripping), but refused to draw a textured floor (two flat gradients), stretched 1px wall slices, painted fog as an overlay — and shipped with an enemy sprite fused to the gun that its numeric QA never caught. The plain-Opus baseline the deep-dive dissects.
Opus's metroidvania from the Lumen Vale brief. Architecturally cleaner than Fable's (split entities/config/util) and its player code is arguably richer — but it ships silent (no audio), idle-only animation (no run sprite), and a floaty tuning. The "same code, different feel" half of the difference catalog.
Opus on the NMS exploration brief — and it did not fail hard. Full arc works (space → atmospheric entry → surface → scan flora → mine → second planet → win), 3 procgen worlds, ~6.5-7/10. It self-scored its first broken white-out a 2/10 and tuned its way up — proof Opus doesn't fail when the defect is closed-loop-tunable and the prompt scaffolds the look-loop.
Opus's run at the viral "behemoth prompt" self-evaluating starship interior. It ran the self-eval loop harder than Fable when the prompt scaffolded it (more verification passes) — but shipped broken walls and cardboard materials it could diagnose ("4/10, looks like cardboard") yet not close. The cleanest evidence that a harness can force the loop but can't install visual judgment.
A copy of IRONMAW, given the HULLROT screenshots as a fidelity target and forced to use video QA (record combat → ffmpeg frames → read them). Its image-reads jumped 7→46, it out-verified Fable, and it root-caused the gun bug better than BMO's static analysis (the gun art-sheet had a brute baked in on magenta; chroma kept it — invisible to stills, obvious in motion). The "catch is scaffoldable" proof.
The OpenRouter "Fusion" trick, tested on the build axis: two Opus builders improved v2 blind to each other, then a third Opus judge took the best subsystem from each and rejected one builder's confident-but-wrong feature using the other as a witness. v3 (~8.4) cleanly beat both single runs (~6.8, ~7.5) — fusion catches divergent errors. But it never closed the gap to HULLROT: the shared blind spot survived. Catch, not create.
Ran majidmanzarpour/threejs-game-skills (an 8-skill three.js "game director" system) on our NMS prompt, same Opus model — to test whether his director + scorecard + QA scaffolding lifts Opus. It did, modestly: richer space view, more authored HUD, more flora variety, AAA render discipline (ACES/bloom/instancing) plain-Opus skipped → ~7.5 vs ~6.5-7. But no tier-jump; the art-direction ceiling held. Scaffolding lifts catch/polish; create stays put. (Run procedural-only — his Tripo/Gemini asset layer untested.)