The slope is a latitude × elevation grid: left is equator-ward and low-lying (warm), the back-right is poleward and high-elevation (cold). Every cell has a baseline temperature from that gradient, plus a uniform warming offset that grows over time. The species has a thermal niche — an optimal temperature with a tolerance band. A cell's carrying capacity is high when its current temperature sits inside that band and falls to zero outside it, so as warming pushes the band poleward and upslope, populations must track it or collapse in place.
T(cell,t) = T_base(lat,elev) + warming_rate·t
capacity = max(0, 1 − |T−T_opt|/tolerance) · K
dP/dt = r·P·(1−P/capacity) [or −mortality·P if capacity≈0]
migration flux ∝ dispersal·(P_i−P_j), zeroed across barrier cells
- Warming rate — how fast the whole grid heats up; higher rates push the suitable band poleward/upslope faster than slow-dispersing populations can follow.
- Dispersal ability — how quickly population redistributes toward newly suitable neighboring cells; low dispersal strands populations in a warming patch.
- Habitat fragmentation — the fraction of cells converted to non-habitat (grey, shown with a dark marker); population cannot cross a barrier cell, so fragmentation can sever the migration corridor even when dispersal ability alone would be enough.
- Simulation speed — how fast decades pass.
Real-world relevance: this is the standard "climate velocity vs. dispersal capacity" framing used in conservation ecology — a species outruns extinction only if suitable habitat opens up faster than the isolation caused by fragmented land use, which is why habitat corridors are treated as a core climate-adaptation tool alongside slowing warming itself.