Mitosis: Browser Game as Digital Sculpture by Toby GoddenMitosis: Browser Game as Digital Sculpture by Toby Godden

Mitosis: Browser Game as Digital Sculpture

Toby Godden

Toby Godden

A pale, minimal, slightly biological survival game: drifting cells on an off-white field, soft mono typography, a red player organism, darker purple threats, a rhythm of growth, division, predation, and eventual overwhelm. Playable at ffilm.org/mitosis.
It sits somewhere between arcade game, digital sculpture, and music-linked web artwork.

The mechanic

Bigger eats smaller. But growth is useful and dangerous at the same time. Absorb smaller cells, get larger, but size brings pressure. At a certain threshold you divide. Division increases your biomass but also your vulnerability. You become multiple mouths and multiple targets. Survival isn't a straight line upward. It's an ecology of temporary advantage.

The rendering

The main organisms are rendered in WebGL2 with a raymarched shader. A second 2D canvas layers over the top for indicators, ripples, and UI overlays. The shader gives the blobs a softness and depth that sprites can't. They feel volumetric, fleshy, slightly over-art-directed in a nice way.
The problem: once you have a simulation in JavaScript and a camera/view model in GLSL, you're in contract territory. The code on each side needs to agree about what space it's in, what a unit means, where the camera is, and how positions are transformed. A tiny mismatch makes the world collapse into nonsense.
Which it did, repeatedly.

What kept breaking

The Y-axis problem. Again and again, force was applied on X but not Y. The game became accidentally one-dimensional: the player could slide left and right toward the cursor but couldn't close vertical distance. Predators lined up horizontally and failed to become threats. The dash became a shove along a rail. Humiliatingly ordinary bugs, introduced and reintroduced by AI assistants that didn't hold the pressure of the actual system.
The tiny black box. The rendered scene shrank toward insignificance, like the camera had fallen through the floor. A projection mismatch: the shader wanted screen-height-normalised space and was being fed something else. Graphics math doesn't fail politely. It produces a world whose wrongness is total.
Camera drift. Camera movement got baked into actual simulation data instead of staying as a rendering transform. Physics should stay in absolute world coordinates. The camera is a lens, not reality. Once you confuse the two, contact becomes elusive and threat becomes abstract.
Mitosis eating itself. The division mechanic, implemented with careless array iteration, created cascades: cells splitting into cells included in the same pass, splitting again. In a game called Mitosis, this is funny exactly once.

What the models contributed

Claude was strongest when the task was structural and aesthetic at once. It could read the piece as a piece, tighten the gameplay loop, clarify wave rhythm, refine the dash, and respect the fact that this was not meant to become a feature swamp. It understood that the right move was often to sharpen, not enlarge.
Gemini gave the project its shader body. The raymarched rendering, the particle field, the material distinction between player and enemy, the softened forms. It also wrote a surprisingly lucid post-mortem of the technical failures. What it couldn't do reliably was maintain coherence across the whole stack over time.

What I actually did

Held the shape of the thing. Knew when the game no longer felt biological. Knew when a fix had technically worked but aesthetically flattened the piece. Knew that a moving camera should be a transform rather than a metaphysical rewrite of space. Recognised that a dash which only moves horizontally is not an eccentric mechanic but a broken one. Kept asking whether the systems agreed with the mood, whether the numbers agreed with the promise, whether the code still belonged to the same artwork.
That's actual authorship: maintaining coherence under conditions of constant regression.
Like this project

Posted Jul 28, 2026

A browser-based survival game rendered in WebGL2 with raymarched shaders. Drifting cells, division mechanics, and an ecology of temporary advantage, built with Claude and Gemini and a lot of preventable mistakes.