Thought Toys · Exhibit 04

Predator & prey

Give rabbits a meadow and foxes to hunt them, and neither side ever wins. The numbers swing up and down forever, locked in a chase where the foxes always crest a beat after the rabbits. Two simple rules; one eternal, lopsided loop.

240Rabbits
36Foxes
Right now
populations over time →
foxes (↕) vs rabbits (↔)

Rabbit and fox populations oscillate in a never-settling cycle, with foxes peaking shortly after rabbits, tracing a closed loop in the phase plot.

rabbits (prey) foxes (predator) balance point
slow breedersfast breeders
clumsy foxesdeadly foxes
hardyfragile
wastefulthrifty

What you're seeing

Rabbits, left alone, would multiply without end. Foxes, with nothing to eat, would starve. Put them together and each becomes the other's brake. When rabbits are plentiful the foxes feast and breed — so the fox line climbs after the rabbit line, never with it. Then the swollen fox population eats the meadow bare, the rabbits crash, and soon the hungry foxes crash too. With the foxes gone, the rabbits rebound, and the whole chase starts over.

Watch the right-hand plot, where foxes are drawn against rabbits instead of against time. The state doesn't drift to a cosy middle and doesn't spiral away — it rides the same closed loop around and around, forever. That pale dot in the middle is the one balance point where births and deaths cancel exactly; press Go to balance and everything freezes on it. But the balance is a knife-edge: nudge it with Release rabbits and the populations don't return, they just orbit it on a wider ring.

Turn the foxes deadlier or the rabbits friskier and the loop changes shape and pace — yet the lag never disappears. Predators forever peak a quarter-turn behind their prey. It's the oldest rhythm in ecology, and it falls out of nothing but two lines of arithmetic.

The rule, exactly. The Lotka–Volterra equations, with rabbits R and foxes F: dR/dt = aR − bRF and dF/dt = dRF − cF. Rabbits grow on their own (a) and are eaten on encounters (b); foxes die off (c) and are born from what they catch (d). Integrated with fourth-order Runge–Kutta at a 0.01 step. The system has a conserved quantity, V = dR − c·lnR + bF − a·lnF, which stays fixed along every trajectory — that's why the orbits are closed and the cycle never decays. (Checked offline: V holds to ~1e−10% over many cycles, the orbit returns to its start, and the fox peak trails the rabbit peak by about a quarter period.)

← Back to the cabinet  ·  Thought Toys — Exhibit 04.