How it Works
Two populations, N1 (modelled on clownfish) and N2 (modelled on their host sea anemone), each grow logistically toward their own carrying capacity, but every mutualism term adds a bonus to the other species' growth rate proportional to how large its partner is. The Mutualism Benefit slider scales both cross-terms symmetrically, so a stronger partnership lets both populations settle at an equilibrium above their individual carrying capacities. In Obligate mode, if either population falls below a small threshold fraction of its partner's carrying capacity, an extra Allee-like decline term kicks in on the partner's equation, accelerating its collapse — if the mutualism benefit is too weak to prevent that threshold crossing, both populations can spiral down to joint extinction. Facultative mode omits that extra penalty, so each species can survive alone (at a reduced level set by its own carrying capacity) even if its partner disappears.
Every animation frame advances the coupled equations with several small Euler steps (the Simulation Speed slider sets how many). The top strip of the canvas plots N1 and N2 as a live dual-line time-series chart, and the bottom strip renders two interleaved swarms of small dots — orange for clownfish, purple for anemone — whose counts track the live populations and drift and mingle together, visually showing the two species living side by side.
dN2/dt = r2·N2·(1 − N2/K2 + b·N1/K2) [+ obligate term]
Obligate term (only if Mode = Obligate): dN/dt += −0.4·N·(1 − partner/threshold) when partner < threshold, threshold = 0.08·K(partner)
Euler step: N(t+dt) = N(t) + (dN/dt)·dt, dt = 0.05 per sub-step, sub-steps/frame = Simulation Speed
Frequently Asked Questions
What is mutualism?
Mutualism is a biological interaction in which two different species each benefit from the relationship, such as clownfish gaining shelter from a sea anemone's stinging tentacles while the anemone gains food scraps and protection from anemone-eating fish.
How does the mutualism benefit coefficient affect the populations?
The benefit coefficient b scales how much each population's growth rate increases in proportion to the size of its partner's population; higher benefit values let both populations settle at a stable equilibrium above their individual carrying capacities, while very low values weaken the partnership's support.
What is the difference between obligate and facultative mutualism?
In facultative mutualism each species can survive independently at a reduced carrying capacity if its partner disappears, whereas in obligate mutualism a species depends on its partner so completely that falling below a minimum partner population triggers an accelerating, Allee-like decline toward extinction.
Can both populations go extinct together?
Yes, in obligate mode with a mutualism benefit too weak relative to the carrying capacities, one population can dip below its critical threshold, triggering the accelerated decline term in its partner's equation as well, so both populations spiral down to joint extinction.
What do the carrying capacity sliders K1 and K2 control?
K1 and K2 set the maximum population each species could sustain on its own without any benefit from its partner; the mutualism terms in the equations allow actual populations to settle above these limits when the partnership is strong enough.