Seeking equilibrium and balance in the world
By Robin Dowling · 2 months ago
I have been chasing equilibrium and balance in the world for some time. Not the kind of balance you find by turning a dial — the kind that emerges from a set of rules simple enough to fit on a page, and a world complex enough that those rules play out in ways I cannot predict. The goal is a simulation where life sustains itself indefinitely on any random seed, at any timescale, without my thumb on the scale. I have not found it yet. But the search has taught me more about ecology than any textbook I have read, and the failures have been more instructive than the partial victories.

The draining battery
For a long time I believed the simulation had a working energy cycle — sessiles feed on soil, motiles eat sessiles and each other, death returns nutrients to the ground. Then I started running worlds for longer, and they kept dying. I built a headless probe to measure what was actually happening, and the answer was bleak: what I had been calling a cycle was really a battery. Energy leaked out on every path — metabolic burn, 50% trophic loss on predation, only 15% of a corpse returning to soil. A closed system with those losses has exactly one stable state, and it is zero.
Worse, the one thing keeping the world alive was cheating. Every offspring received a fresh packet of energy minted from nothing — a hidden subsidy that could sustain predators indefinitely with no prey. That is nonsense in any real ecology.
The fifteen-dial trap
My first instinct was to tune my way out. Fifteen core parameters, all coupled. I ran an eleven-candidate sweep: lowering sessile fecundity delayed the boom but did not prevent it; raising corpse return rates made the boom bigger; reducing motile fecundity produced worse sessile blooms; increasing metabolic burn hit immobile sessiles hardest. Every lever moved the timing of the collapse, never the existence of it. The world was stuck between boom and slow death, and no constant-rate parameter could navigate between them.
Density-dependent brakes
If constant-rate parameters could not create a fixed point, maybe density-dependent ones could. I implemented Monod half-saturation brakes — reproduction scaled by local resources per capita, the kind of model ecologists have used since 1949. Sessiles braked by soil per plant; motiles by prey per predator. It produced coexistence for about a hundred thousand ticks, then motiles crept up, over-cropped the sessiles, and collapsed. I also tried a Holling type-II satiation mechanism — a digestion cooldown modelling predator handling time. Elegant in theory, insufficient in practice. All reverted. The lesson: you cannot regulate your way to stability in a system with no energy source.
Closing the mint
So I stopped tuning and started fixing the physics. The offspring energy mint was the hidden inflow — sized by the mother's fullness but never debited from her reserves. I made it a conserved transfer: the offspring's starting energy comes out of the mother, capped at what she can afford. Starving mothers cannot reproduce.
The results were dramatic. Seed 4, which had grown a plant-free motile population from 567 to 2,576 on minted energy, now decayed from 334 to 6. Motile irruptions stopped. This was by design worse in isolation — with the mint gone and no source added, every seed ran down faster. But it proved the trophic pyramid was closed at last. Nothing could grow without eating.
Adding the sun
Every real ecosystem is ultimately powered by sunlight, so I gave the simulation a sun. Plants capture a fixed budget of solar energy per unit of ground area each tick, shared among the sessiles on that patch — a crowded patch gives each plant less. That single detail is a density-dependent carrying capacity that falls out of the physics, no artificial cap required. It is also the Monod brake I tried to bolt on earlier, except grounded in real mechanics.
For the first time across every seed, the world stopped going extinct. Every joule now traces back to the sun, flows through plants into predators, and returns to the soil on death.
The smooth gate
Photosynthesis revealed a new problem: millions of half-starved plants reproducing at a trickle, collectively overrunning the world. The old three-bucket reproduction logic gave even the lowest energy category a nonzero chance. I replaced it with a continuous Hill curve — reproduction probability rising smoothly from zero to near-one, with a steep sigmoid at 50% energy. Sessile blooms roughly halved. Starvation now genuinely prevents reproduction.
The Allee threshold
With the economy grounded, I turned to calibrating the solar budget. At budget 0.3, all seeds survived 1.5 million ticks with zero resets — a first. But worlds leaned lopsided: oceans of plants, sometimes as few as seven motiles on a million-cell map.
That is when the real diagnosis landed: the Allee effect. In 1931, Warder Clyde Allee described how below a critical population density, per-capita growth drops to zero because organisms cannot find mates. My motiles must be within five position units of a compatible mate to reproduce, and can only detect mates within one map cell (125 units). At low density — thirty organisms on a million cells — encounters almost never happen. The empirical threshold is about 60 motile on the 1,000x1,000 map. Above that, mate-finding sustains itself. Below it, reproduction collapses.
This is not a bug. Real organisms that cannot find each other do not mate. The fix has to be on the density side: enough energy that the initial population crash does not drop motiles below the mate-finding threshold.
The solar budget as master knob
At budget 1.0, all five seeds survived 500,000 ticks with zero resets — motile populations still marginal (19-44) but alive. The solar budget controls carrying capacity: more sunlight means more plant energy, more food for grazers, more grazers surviving the initial crash, enough density for mate-finding to work. It is the one physically meaningful knob — the variable that determines how much life the world can support, just as it does on Earth.
But pushing the budget higher hit a ceiling. Each plant can only capture a fraction of its maximum energy from sunlight each tick — a cap designed to prevent solar-powered immortality. Budget 1.0 already saturates this cap, so tripling the sunlight had no effect. Raising the cap itself let more energy in but paradoxically made things worse: sessiles became energy-rich and boomed while motiles crashed harder and faster. The extra energy never reached the predators in time to prevent the initial population collapse.
A bigger world
The breakthrough came from the other direction: instead of pushing more energy into the same small world, I made the world bigger. A 3,000-by-3,000 map (nine times the area of the original) starts with 3,000-4,500 motile organisms instead of 300. Even after a brutal 90% initial crash, that leaves hundreds of survivors — well above the Allee threshold.
At 500,000 ticks, the results were the best I had ever seen. All five seeds survived with zero resets. Seed 1 bottomed at exactly 60 motiles and then recovered, climbing back to 89 with active pregnancies — the first genuine predator population recovery in the project's history.
The long horizon
Then I let them run to 1.5 million ticks, and every seed collapsed. Four out of five reset. The fifth survived as a single zombie motile — full energy, no mate, no future.
The pattern was identical across seeds: the initial crash stabilises around 50-100 motile for a few hundred thousand ticks, then a slow inexorable decline sets in. Organisms are well-fed — energy is not the problem. But as natural attrition thins the population (age, disease, predation), it crosses below the mate-finding threshold and never recovers. The 500,000-tick recovery on seed 1 was temporary. It peaked at 89 and then resumed declining. By 1.2 million ticks, every seed was down to single digits, full of energy, unable to find mates.
The bigger world bought time — 25 more real-hours before collapse compared to the small map — but it did not change the endgame. More organisms delays the Allee threshold crossing; it does not prevent it. The population leaks downward through natural mortality, and once it crosses below ~60, the feedback loop closes: fewer organisms means fewer encounters, fewer encounters means fewer births, fewer births means fewer organisms.
What I have learned
The simulation has taught me that equilibrium is not a place you arrive at by adjusting parameters. It is an emergent property of rules that create self-correcting feedback at every scale. My energy cycle is now physically grounded — every joule traces from the sun through plants to predators and back to soil. But the population dynamics still have a one-way ratchet: the Allee effect means any population that drifts below the mate-finding threshold is terminal, and nothing in the current rules pushes it back above.
The search continues. The options are larger worlds, smarter mate-finding, or mechanics that concentrate populations instead of letting them diffuse. But the deeper lesson is this: a world that can find its own balance needs rules that work at every population size, not just the comfortable middle. The edges — near-zero and near-carrying-capacity — are where equilibrium is won or lost.