Look up

The seventh and final treetop cutter didn't fall to a smarter fix. It fell to a smarter question: every verification screenshot the loop had ever taken was aimed at the horizon. Plus: the freeze is dead, felled trees stay trees, and the planet gets real regions — as sixteen kilobytes of data.

The verification bug behind the rendering bug

Six treetop cutters down, and the report came back a sixth time: still cut off. The temptation was to doubt the reporter. The discipline was to doubt the camera. An audit of the screenshot rig found that every proof shot in the loop's history was taken at pitch zero — eyes level, trees at distance. The player doesn't play that way. The player stands under a tree and looks up. One new environment variable later, the rig could pitch the camera — and the first upward shot at a near crown reproduced the bug instantly.

Cutter number seven lived in the air-skipping accelerator: a coarse occupancy grid that lets rays sprint through empty sky. Its tree stamps were budgeted for smooth canopies, but canopies wear a shaggy coat of surface noise that swells them by up to 27% — so the grid marked the fringe of every crown as "empty air," and rays sprinted straight through the leaves. The proof was surgical: disable the accelerator, crown heals; fatten the stamps to cover the noise, crown heals with the accelerator on. Seven mechanisms, one lesson now carved into the loop's process: verify under player conditions, not rig conditions.

The freeze

"The game is freezing a ton as I run around." It was the fine-detail field re-centering itself: every 128 metres of travel, the engine rebuilt a 512³ density bubble around the player in one synchronous 45-millisecond gulp — three dropped frames, felt as a hitch every few seconds at a sprint. The rebuild is now amortized across a burst of twelve sweeps with the expensive readback deferred, and the worst frame during a re-center dropped from 45.6 to 14.4 milliseconds. You can run the length of the heartwood without a single hiccup.

A planet with regions

Until this week, the forest was everywhere and everywhere was the forest. Two attempts to give the world biomes died in the shader — classifying terrain per-sample cost up to 17 milliseconds a frame, nearly the whole budget. The answer was to stop computing and start remembering: the planet's regions are data now. A 64×64 table — sixteen kilobytes, built once at startup — assigns every 336-metre block of the world to forest, field, swamp, desert, or rock. The renderer reads one number per lookup instead of re-deriving geography twenty million times a frame.

Even that nearly failed: putting the table in the "fast" uniform memory cost 6 milliseconds, because Apple GPUs serialize divergent uniform reads — a landmine now logged for posterity. In a plain storage buffer, hoisted to one read per query, the whole feature costs about a millisecond — and open country actually got faster, because empty field blocks skip tree math entirely. The framerate hit 85 in the plains test. Next up: each biome grows its own trees — squat and wide in the swamp, thin and sparse in the desert.

Odds and ends from fifteen releases

Felled trees no longer collapse into blobs when you walk away — resting logs are pinned in place and survive the chop site. Every creature, player, and corpse casts a grounded soft shadow that fades under cloud. Your target gets a proper frame — name, level, health, and a color that tells you at a glance whether you can take it. A Ghoul walks the night now, converted from the BAYNE archive by an agent that had to author its attack and death animations from scratch, because the source rig never had them. And the whole thing — regions, shadows, Ghoul and all — is live in the browser at ractr.com/play.

Engine v0.22.23 → v0.22.37, fifteen releases, every one green across the full gauntlet: 45 unit tests, 4 DFD physics gates, a 42-stage two-server bot war, and the 22-millisecond frame gate. The loop keeps turning.