Each species' abundance Ni follows a generalized (multi-species) Lotka-Volterra equation, integrated live with RK4:
dNi/dt = Ni · ( ri − d·Ni + Σj Aij·Nj )
ri = intrinsic growth rate (random, per species)
d = self-regulation / intraspecific crowding
Aij = random interaction matrix entry, nonzero
with probability C (connectance), drawn
from a Normal(0, σ²) distribution
This is the random-matrix food web studied by Robert May (Nature, 1972): instead of hand-picking who eats whom, interactions are wired randomly with connectance C and typical strength σ. May's classic result, using Girko's circular law for the eigenvalues of a large random matrix, is that the equilibrium is expected to be linearly stable when
σ · √(S · C) < d
i.e. the rightmost eigenvalue of the community (Jacobian) matrix has real part ≈ σ√(SC) − d. Push species count, connectance or interaction strength up (or self-regulation down) and this margin crosses zero — May's famous, counter-intuitive "complexity begets instability" result, in contrast to the older ecological intuition that more species and more links make a web more robust. (Real food webs are not fully random — predator-prey sign structure tends to be more stabilizing than random signs, a refinement due to Allesina & Tang, 2012 — but the connectance/strength trade-off shown here is the same one driving both results.)
- Species count / Connectance / Interaction strength — set S, C and σ, then Reseed draws a fresh random community matrix and restarts the populations near their non-interacting equilibrium Ni* = ri/d.
- Self-regulation d — how strongly each species suppresses its own growth (crowding); raising it stabilizes the web without changing who interacts with whom.
- Reset populations — restarts the ODE from near-equilibrium with the current matrix, without redrawing it.
- Node height/size = current population; green→red = healthy→collapsing. Lines = nonzero interactions, green tinted for a net positive effect on the pair, red for net negative, brighter/thicker for larger |Aij|.