Coral cover-
Macroalgae-
Turf-
Grazing g /yr-
Urchins /m²-
Year-

Reef Phase Shift Lab

A coral reef cross-section driven by grazing: see why a healthy reef can flip to algae and not flip back.

Reef controls

Presets

Events (shocks)

Readouts

Total grazing g (fish + urchins)-
Coral-mortality d (with stress)-
Bistable window of g (analytic)-
Regime at the current g-
Coral-only equilibrium C* = 1 − d/r-

Graph: cover over time

Graph: hysteresis (equilibrium coral vs grazing)

Between the two dotted lines the reef has two stable states: the same grazing can mean a coral reef or an algal flat, depending on its history. Climate stress shifts both lines.

Experiment: where exactly does the reef tip?

Lower tipping g (coral → algae)-
Upper tipping g (algae → coral)-
Coral-only state-
Cover sum conserved-
The science

Model. Cover fractions of coral C, macroalgae M and algal turf T (M + C + T = 1) follow
dM/dt = a·M·C − g·M/(M+T) + γ·M·T
dC/dt = r·T·C − d·C − a·M·C, T = 1 − M − C.
Macroalgae overgrow coral (a), spread over turf (γ), and are removed by grazers at rate g (per unit of grazeable algal area M+T). Coral recruits and grows into turf (r) and dies (d).

Grazing. g = gfish + 0.5·U/(U+1), a saturating urchin term (U in individuals/m²). Urchins follow logistic growth to the carrying capacity K (rate 0.6/yr) and collapse after a disease event, as Diadema did in the Caribbean in 1983. The urchin food-web feedback is not modelled.

Tipping points. Two closed forms: with no macroalgae the coral state has C* = 1 − d/r; it loses stability to macroalgal invasion when g < (1−C*)(a·C* + γ(1−C*)). The algal state M* = 1 − g/γ lets coral invade when g > γ(d + a)/(r + a). Between them the reef is bistable (hysteresis). The page checks both thresholds against full RK4 simulations.

Honest limits. A mean-field (well-mixed) model: no space, waves or depth. The parameters are illustrative values in the spirit of the published Mumby–Hastings–Edwards (2007) model, not fitted data. The 3D cells are a display of the fractions (each cell is coral/algae/turf according to the fractions), not a separate spatial simulation; each urchin marker stands for several animals.

Made with 🟠 Blender · Three.js