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
↳ your turn — press Release rabbits and watch the foxes answer, a quarter-cycle late
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.)
Counter-example, verified in node: released exactly at the balance point the populations don't cycle at all — they sit perfectly still (prey range under 1e-3).