Two species locked in an endless oscillation that neither controls.
Rabbits eat grass and multiply; foxes eat rabbits and multiply. Plentiful rabbits feed thriving foxes, who eat more rabbits, leading to starving foxes, leading to rebounding rabbits. The cycle repeats.
The Lotka-Volterra equations couple prey density $x$ and predator density $y$ through a shared predation term.
Figure 1. The Lotka-Volterra phase portrait and time series. The outer ring is the initial condition (drag it); the filled dot is the current state moving around the loop in real time. Dashed lines are the nullclines ($\dot x=0$ and $\dot y=0$); their intersection is the fixed point that every closed orbit encircles.
The oscillation is emergent from growth-and-consumption rules. Order from coupling.
The Lotka-Volterra equations assume perfectly mixed populations. Real animals are discrete and spatial.
On a grid, each cell is empty, a rabbit, or a fox:
This is the Wa-Tor model (Dewdney 1984, originally fish and sharks). The question is whether Lotka-Volterra's continuous predictions hold up with discrete, wandering agents.
Click or drag on the grid to paint: shift-click for predators, plain click for prey, alt-click to clear.
Figure 2. The Wa-Tor agent-based model. Watch the grid for spatial clusters of foxes chasing rabbits, and the graph below for the resulting population sizes. The familiar predator-prey oscillations emerge, though noisier and less perfect than the equations.
Oscillations still emerge but are noisy. Space matters: foxes clear local rabbits and then starve, leaving pockets where survivors multiply. The discrete simulation also allows extinction — if the red line hits zero, the foxes are gone.
To explore how these dynamics play out when predators and prey spread out over an entire ecosystem, see Spatial Predator-Prey.