Population growth follows a logistic model with an Allee effect: below a critical group size A the population declines toward extinction instead of growing, because mates and cooperators become too hard to find.
dN/dt = r·N·(1 − N/K)·(N/A − 1)
A = max(4, 0.05·K)
Demographic noise scales with √N (small groups are proportionally noisier), and rare disturbance events (disease, harsh winters) subtract a fraction of N — both scaled by the disturbance slider.
Genetic diversity tracks heterozygosity retained relative to the source population, lost each generation through drift and rebuilt only by adding genuinely new founders:
H(t+1) = H(t)·(1 − 1/(2·Ne)) [drift loss, Ne ≈ N]
H(t+1) += cohort/(cohort+N)·(1−H) [gain, only at a new release]
- Single hard release — all founders arrive at once, then genetics only ever decays: a classic founder-effect bottleneck.
- Staged soft release — the same total founders arrive in three waves roughly two years apart, each wave injecting fresh alleles and partially offsetting drift — the standard "genetic rescue via translocation" strategy used in real reintroduction programs (e.g. Florida panther, European bison).
This is a simplified teaching model (Ne is approximated by census size N), not a population-viability-analysis tool — real programs use pedigree-tracked Ne and stochastic simulation software.
Note on the source model: the original threshold formula was min(0.4·K, max(4, 0.05·K)). Since 0.05·K < 0.4·K for every K, the outer min(0.4·K, …) can never bind over the slider's whole range (K: 50–400) — it was dead code, not a different behaviour. This 2D build simplifies it to the equivalent A = max(4, 0.05·K) and verified the two produce identical A values across the full K range with a standalone script before shipping.