Two independent environmental gradients cover the landscape: temperature (a smooth north–south trend plus local noise) and precipitation (an unrelated fractal-noise field). Each cell gets a per-variable suitability score from a real Gaussian niche-response function — the same curve shape used in Grinnellian niche modeling / envelope models such as BIOCLIM:
s_T(x,y) = exp( −(T(x,y) − T_opt)² / (2·σ_T²) )
s_P(x,y) = exp( −(P(x,y) − P_opt)² / (2·σ_P²) )
suitability(x,y) = s_T(x,y) · s_P(x,y)
The two per-variable scores are combined multiplicatively (not averaged): a cell needs a reasonable match on both gradients at once, so the predicted range is the intersection of the two Gaussian "tolerance bands", not the union. Moving the optimum sliders shifts the range across the map; widening a tolerance slider (larger σ) relaxes that variable's constraint and the range grows along that gradient; narrowing it (small σ) collapses the range toward a thin band even if the other variable is a perfect match — exactly the behaviour real correlative SDMs show when a species is a narrow specialist on one axis.
- Presence cutoff — the suitability value above which a cell counts as "predicted range"; it does not change the underlying suitability field, only where the range/no-range line is drawn.
- Predicted range % — share of the landscape scoring above the cutoff, recomputed every time a niche parameter changes.
- Niche breadth — σT·σP, a simple scalar for how generalist (large) vs. specialist (small) the modeled species is.