Taxonomic diversity D(t) — the number of genera alive at time t — is modelled with a logistic origination/extinction balance, the same qualitative form paleobiologists use to describe the Phanerozoic (Sepkoski-style) diversity curve:
dD/dt = o · D · (1 − D/K) − (e_bg + Σ pulses(t)) · D
pulse_i(t) = A_i · exp( −(age − age_i)² / (2σ²) )
- o — origination rate: new genera appear in proportion to how many already exist, damped as D approaches the carrying capacity K (ecospace fills up).
- e_bg — background extinction rate, active at every moment, representing routine species turnover.
- pulses(t) — Gaussian spikes in the extinction rate. With "Big Five" enabled, five are scripted at their real ages: end-Ordovician (445 Ma), Late Devonian (372 Ma), end-Permian (252 Ma, the largest known extinction), end-Triassic (201 Ma) and the Cretaceous–Paleogene event (66 Ma, the one that ended the non-avian dinosaurs). The trigger button adds one more pulse at whatever age the clock currently reads.
- The skyline you see is built forward in time: each bar records the diversity value the moment the simulation clock reached that age, so the terrain literally is the diversity curve, read left (Cambrian) to right (present). Drag to pan along it, scroll/pinch to zoom.
Fix vs. the 3D original: each pulse's amplitude Ai is normalised so its total extinction pressure over the event (A·σ·√(2π)) converges on the event's real historical severity — the source engine instead fed the raw "Big Five" magnitudes (4.0–9.0) straight into the exponential, so every event, regardless of size, drove diversity to the same floor. Verified numerically (Python Euler integration, dt = 0.001 Myr): the source's isolated-pulse survivorship for all five events converged to ≈0.7% regardless of magnitude, erasing the intended difference between (for example) the End-Permian "Great Dying" and the comparatively milder End-Triassic event. This engine instead targets historically-informed survivorship (≈15% / 25% / 4% / 30% / 25%) so the five events are visibly distinct in severity.
This is a simplified single-parameter analogue of the real fossil-record diversity curve — real extinction events differ in cause (glaciation, volcanism, bolide impact, anoxia) but all show up in the record the same way: a sharp drop in D followed by a slower logistic recovery, approximated here.