220 kilobytes
A browser game with no art files, built by an agent swarm that rediscovered Bacon’s tables of exclusion in a headless browser.
I gave an AI agent one instruction: build a platformer that can stand next to Crash Bandicoot 4.
The agent spun up a swarm. Nine builders for the subsystems — renderer, physics, terrain, audio synthesis — and three hostile art directors whose only job was to score each build against real Crash 4 screenshots in blind side-by-side comparisons. Eight rounds. Dozens of filed defects. “Renovated bathroom floor.” “Hero reads as bootleg plush.” “Foliage looks like a screensaver from 2003.” The screenshots came from a headless Chromium rig the agent built so it could see its own game.
The critics never scored it above 4/10. They were designed not to — you don’t benchmark procedural math-geometry against a $100M production and expect a passing grade. But the scores also stopped moving. Same feedback in different words, round after round. “Still flat.” “Still plastic.” “Lacks depth.” Fixer agents addressed each defect. Nothing changed.
For two thousand years, physicians described symptoms with precision that would embarrass a modern intake form. Hippocrates could differentiate fevers by their periodicity, their sweat, their crisis points. The descriptions were accurate. They were also structurally incapable of reaching the causal layer, because no refinement of what-it-looks-like gets you to what-it-is. That required a different mode: systematic isolation. Remove variables. Observe what changes. Bacon’s Novum Organum called them tables of exclusion — enumerate the presences, the absences, and the degrees, and let the method find the cause the senses can’t name.
The agent reinvented the move. It stopped listening to the critics and started removing objects from the scene one at a time. Render. Compare. Watch for changes that don’t correspond to what you removed.
Three bugs. Sprites writing transparent pixels to the depth buffer — the critics called it “muddy atmosphere,” the cause was an alpha-test threshold set to zero. Instanced meshes pulling from an unbound vertex attribute — the critics scored these as “placeholder art,” the cause was a missing setAttribute call. Mipmaps averaging alpha-cutout fronds into wire scribbles — the critics described “skeletal vegetation,” the cause was a missing mipmap threshold. Each bug systemic, each invisible to aesthetic critique, each discoverable only by operating on the pipeline, not on the output.
The game ships as one ~220 KB gzipped JavaScript bundle. No art files in the repo. Every texture painted in code, every model built from math, every sound synthesized in WebAudio. A 220-meter jungle-ruins dash with double jumps, spin attacks, breakable crates, TNT, and collectible fruit, all in Three.js. Play it at jungle.bmux.sh.
After the fixes, the scores jumped from 4 to 6. For unpleasable critics comparing code-geometry to professional art, that’s roughly the ceiling of what math can do. The remaining gap is real.
But the result that matters isn’t the score. It’s the wall between two modes of improvement: one that refines how things look, and one that investigates how things work. The first has a ceiling — when the feedback stops moving the metric, more of the same feedback won’t unstick it. The second has a floor — it can tell you whether the system is doing what you designed, but not whether the design is good. Both are necessary. Neither reaches the other’s domain.
Bacon knew this in 1620. The agent rediscovered it in a headless browser four hundred years later.