Individual-based gap model
Every tree on the 100 m × 100 m plot is a record: species, position, stem diameter D (cm), age. Height, crown radius and leaf area follow from D through species allometry. Each year the model (1) builds a 3-D leaf-area grid (2 m × 2 m cells, 1 m layers), (2) computes the light each crown receives, (3) grows, (4) kills, (5) lets seeds fall. It is the logic of the JABOWA and SORTIE-type forest simulators, simplified.
Light: Beer–Lambert
I(z) / I0 = exp( − Σ above z k · LA / A_cell )
LA is leaf area, k = 0.5 an extinction coefficient, A_cell the cell area. A horizontal 3×3 blur stands in for slanting sunlight. A tree is evaluated 30 % of its crown length below its top and its own foliage is subtracted, so it does not shade itself.
Growth
dD/dt = G·D·(1 − D·H / (Dmax·Hmax)) / (274 + 3·b2·D − 4·b3·D²) · f(L)
H = 137 + b2·D − b3·D² (cm), f(L) = P·(1 − exp(−s·(L − Lc)))
Shade-tolerant species (beech, spruce) have a low light compensation point Lc and saturate early; light-demanding pioneers (birch, pine) grow faster in full light but fail below roughly a quarter of full sunlight. This single crossover drives succession.
Mortality, gaps and seeds
Background mortality is set so that 10 % of a cohort reaches the species' maximum age. Two successive years of near-zero light-limited growth give a 37 % chance of death per year. Wind-throw removes groups of tall trees (a gap 7–17 m across). Mature trees release seed packets with a short-plus-long dispersal kernel; seedlings establish only where ground light exceeds the species' threshold, so pioneers need gaps and tolerant species can wait in shade.
Carbon
biomass_above = a · D^b (kg), C = 0.47 · (1 + 0.24) · biomass
Dead trees feed a dead-wood pool (decay 4–9 % per year, 20 % of it humified into soil); leaf and fine-root litter feed the soil pool (12 % per year decomposition of 30 % of the input). The model checks its own bookkeeping: the change in total carbon must equal integrated NPP minus heterotrophic respiration.
Self-thinning
In an even-aged stand, crowns fill the ground: N·πR² ≈ constant. With R growing roughly linearly with D this gives N ∝ D⁻², and with mass ∝ D^b, N ∝ w^(−2/b). Isometric trees (b = 3) give Yoda's −3/2 law (w ∝ N^(−3/2)); this model's allometries (b ≈ 2.4) predict a slightly shallower w ∝ N^(−1.2…−1.3), which is what the experiment finds.
Simplifications — please read
One climate and soil; no drought, browsing, pests or fire; no seed bank, no shrubs or herbs in the light budget; the plot wraps around at its edges (a torus); species parameters are plausible, rounded values chosen so the sequence birch/pine → oak → spruce/beech takes 150–250 years on a fertile temperate site, not fitted to a particular forest. Biomass allometries are generic, so carbon stocks are the right order of magnitude, not inventory-grade. The 3-D trees are generic models of each species at four growth stages; their size follows the simulation, their exact branching does not.