Seasons, snow and glaciers
A climate over centuries with cold and warm periods; snow that lies as voxels, firn, glacier ice that creeps into the valley and melts into rivers, permafrost, and the fertility all of it leaves.
The simulation’s climate has a site baseline and a year’s noise. The engine’s epochs are the clock above that: two slow cycles, a drift, and a scenario of keyframes (from year 180 to 320 it is 1.6 degrees colder; after 500 it warms) applied to the baseline once a year. Every rule that reads the weather feels it: harvests, heating, the snow line, the rivers.
The cryosphere makes snow a thing in the world. Per column it keeps snow, firn and ice as millimetres of water and a frozen-ground clock, steps them monthly from the month’s weather, and writes them into the voxels on the natural ground. Snow that survives the ablation season is firn; a deep enough bed of firn turns, some of it each year, into glacier ice; ice thicker than a threshold creeps toward its lowest neighbour a little each month, so a summit’s snow ends up as a tongue in the valley; everything melts by degree-days, ice slowest, and the meltwater is handed to the water model column by column, the river that comes down the mountain when a cold century ends. Ground below freezing for two years is permafrost.
Fertility is one number per column, recomputed once a year from snow-free days, permafrost, saturation, streams, slope, soil and the summer’s warmth, and moved a share of the way each year so a cold decade shows as land going off. The simulation multiplies each field’s harvest by it.
The land tool runs the same models over decades with no town in the way; cargo land-probe does it headless, a line a decade.
In the code: crates/engine/src/climate/epochs.rs crates/engine/src/climate/cryosphere.rs crates/engine/src/climate/fertility.rs · playground: land
← Floods, and what the town does about them Fire, plague and earthquakes →