Sixteen animals, no new code
A while back we added five new plants to the world and discovered there was almost nothing to build. This is the same afternoon, run again for animals: we grew the cast from five species to sixteen, and the last eleven of those cost us almost no new code at all. An animal is now just a description — its body and its place in the food chain — and the world figures out the rest.
The bet, and the question it left open
Earlier work built the machinery once: the rules that turn a short description of a creature — how big it is, what it eats, how social it is, which landscapes it favours — into a full, living, simulated animal, and the rules that decide how many of it a given stretch of land can support. That a creature is only its body and its place in the chain is its own story; so is the first animal we made of nothing but words, which walked into a forest it was never balanced for and quietly found its place.
That single odd-one-out species proved the idea worked. It left one question open, the one that decides whether the whole bet was worth making.
Adding a species should mean describing its niche — never re-calibrating the ones already living.
Proving that on one creature is a demo. Proving it on eleven, all at once, with the existing world left untouched, is the thing we actually wanted to know. This post is that proof — and the honest gap it surfaced along the way.
Six hunters, and a world that didn’t notice
The first batch added six wild ranging predators — a least weasel, a European polecat, a pine marten, a Eurasian lynx, a Eurasian badger, and a wolverine — all creatures of the cold steppe and the boreal forest. That took the roster from five species to eleven. Every one of them was authored as pure description: no new rules, no rebalancing of existing numbers, no special-case tweak for the awkward ones. The badger was the first true generalist, neither a pure hunter nor a pure scavenger; the wolverine broadened the scavenger role beyond birds to a mammal. The same derivation handled both without being told they were unusual.
The part that actually mattered was the negative result. To prove the additions disturbed nothing, we ran a temperate test world — a landscape none of these cold-climate animals favour — and counted how many of the six appeared.
Exactly zero. Not a thinned-out handful, not a few stragglers clinging on in the wrong biome: none of them placed at all, and the world that was already there ran on unchanged. That is what a foundation built broad buys you. The new animals can only take root where their description says they belong, so a careless addition can’t leak into a world it has no business being in.

On a boreal world, where they do belong, they placed and behaved correctly. The pine marten grew until the land could hold no more, then population pressure naturally checked it — settle in, grow, hit the ceiling the ground can support, level off as crowding bites. That rhythm is the whole point of reading a creature’s ceiling off the land rather than writing it down, and here it was happening for an animal the system had been told about only minutes earlier.
The gap we built on purpose
The honest part: those six predators declined on the boreal world. Not because the design failed — because their prey wasn’t in the game yet. We had built the hunters before the hunted. They grew until their own territories crowded them, then starved, because there was nothing for them to eat.
That’s the kind of cascade the game is built to model, just running on an incomplete chain. So the second batch supplied the missing prey base: five wild grazers spanning climates from the arctic to the tropics — an arctic ground squirrel, a mountain hare, a dorcas gazelle, a capybara, and a reindeer. The grazer side of the cast went from one species to six, and the whole roster reached sixteen. All sixteen parse and derive correctly, still with no new rules and no retuning. The expensive part of this work — the rules — was already paid for. The cheap part was the animals.
Born dying, and what it told us
The grazer batch also delivered a genuine discovery, the kind you only get by adding life and watching what the world does with it. The plant-eater side of the simulation had only ever been tested with a temperate rabbit, which tended to over-multiply — a story about a meadow that only ever fills to the brim or empties. The new non-temperate grazers revealed the exact opposite problem.
In the cold and the dry biomes, there simply isn’t enough plant growth to feed a large grazer. So they didn’t boom. They collapsed — placed denser than their environment could ever sustain, and crashing within days. The unglamorous truth is that they were born dying.
What’s reassuring is why they died: the simulation was working exactly as intended. It ties grazer numbers to how much forage a place actually grows, so where food is scarce, the animals can’t persist — and that’s correct. The crash wasn’t the system being wrong; it was the system being honest about an ecology we hadn’t finished. The cold and dry biomes can’t yet sustain these grazers at the densities they start at, and the predators don’t yet truly depend on their prey. Both are real balance work, and both are now visible because the expansion forced them into the open.
Roster first, balance later
We deliberately did not paper over any of this with a quick number change. When a probe turns up a shortfall, the discipline is to diagnose it, not to dial a knob until the symptom goes away. So the balance work is flagged as future tuning, deferred on purpose until the cast is more complete — roster first, balance later.
That ordering only makes sense because adding the roster is cheap and safe. If every new animal meant re-tuning the dozens already living, you’d have to balance as you went, one anxious species at a time. Because an animal is just a description, we can lay down the whole cast first, run it, and let the gaps show themselves — then tune against a chain that’s nearly whole instead of guessing against one that’s half-built. The earlier work of finding a balance by measuring instead of guessing is the method that will close these gaps; this post is about getting the cast into the world cheaply enough that there’s something worth measuring.
The plant-side version of this afternoon is its own story, with its own honest compromises. The throughline is the same on both sides of the ecology: build the rules once, up front, and new life can be added to the world almost for free. Sixteen animals reached as pure description, with the existing creatures left undisturbed, is the proof that the road to a much larger, much more tangled food chain is open — and that the world is honest enough to tell us the truth about its own ecology every time we add to it.



