A wood that plants itself, competes for light, and plays what it grows. Nothing here is a recording and nothing is on a timeline. Every sound you hear is a tree that is currently winning enough light to be heard.
The music
A short theme is planted. Every tree carries a version of it, inherited from the tree that seeded it and varied on the way. The same theme sets the tree's branching angles, so a tree looks like its tune.
A theme holds. Once a tree has its line it states it, breathes, and states it again — the same notes, in the same order, at the same relative lengths. Repetition is the point: it is what makes a line a theme rather than a scatter of notes. In testing, every audible voice restates its own phrase exactly.
What keeps that from going stale is that the ground under it moves. The wood runs a slow four-chord cycle, changing about every twenty seconds, and every voice reads its theme against whichever chord is standing. The same line comes back coloured differently.
The phrasing is elastic. Each tree has its own natural pace, drifting slowly rather than locked to a grid, and its attacks sit slightly off the pulse. One note in every statement is leaned on, and which note it is moves round the phrase, so the same line is never weighted the same way twice. A statement settles at its end and then breathes, and the breath is a different length each time. The wood slows after dark and slower again in winter; a tree released into a gap quickens.
Pace belongs to the guild. A shrub is quick, a mid-storey tree is half that, a giant slower again, so the lines phase against each other rather than marching together. Suppression slows a tree further; release into a gap speeds it up. Note lengths come from the theme itself. Family members share one line and enter one after another, in canon.
A theme only changes when something happens to the tree: released into a gap, taken by disease, or at one of the four stations of the year. Nothing mutates at random. When you hear a line come apart, something has happened to that tree.
Themes vary by eight operations: transpose, invert, retrograde, augment, diminish, fragment, ornament, and opening gaps. A theme is held to nine notes and to seven scale degrees either side of its root, so it stays recognisable however far it travels.
Only the trees winning the light are audible — between three and nine of them, ranked by height and light share. The rest are alive and silent. So the music thins itself the way a wood does.
Which voice a tree gets depends on where it sits in the canopy:
- Below 16% height — a plucked string. A physical model: a noise burst circulating in a delay line with damping and saturation.
- 16% to 42% — a breath voice. Resonant filtered noise with a sine core, like wind finding a hollow.
- Above 42% — a sustained trunk tone, subtractive, with bells above it when it has light.
Eight sound sources in all, each built a different way so nothing blurs into the rest: sub-oscillator mycelium, subtractive trunk pads, plucked understory, FM canopy bells, the breath voice, filtered-noise wind, birds and insects, and rain.
A shaded tree plays at a quarter rate, quieter, lower. When the light on a tree jumps by a fifth or more — a gap has opened above it — it runs its theme upward into the space. A diseased tree fragments its theme and fades out.
Bells only ring in proportion to the leaves actually on the tree, so the canopy voice disappears in autumn and returns in spring without being told to. Autumn also adds falling tails to the lines.
Polyphony is capped — three trunk tones, six bells, five plucks, three breath voices — with a limiter on the output. That cap is the ecology as much as the engineering.
The year: four stations
The year turns on its cardinal points: spring equinox, summer solstice, autumn equinox, winter solstice. Each quarter is one iteration. At every station the wood takes its theme from whichever tree is currently winning the light, shifts root and mode, and rings a chime — balanced intervals at the equinoxes, extremes at the solstices.
Modes run lydian in spring, dorian in summer, aeolian in autumn, phrygian in winter.
Eight days make a year. A year runs between about 80 and 250 seconds depending on the growth dial. Light and dark are equal at the equinoxes; daylight stretches to around 76% at midsummer and shrinks to about 24% at midwinter. The sun rides a high arc in summer and barely clears the trees in winter. The moon takes the opposite arc and shows a phase.
Growth follows the light: spring 1.15, summer 1.0, autumn 0.42, winter about 0.04, multiplied again by daylength. Seed rain is heaviest in spring and almost nothing in winter. Deciduous canopy flushes over the first fifth of the year, holds full to about three fifths, falls by four fifths, and is bare after that. Pine and holly hold their leaves.
Forest dynamics
Nothing here follows a script. Succession, thinning and gap regeneration all emerge from competition.
Light
Competition for light is asymmetric — whoever is taller takes it first. Each taller neighbour whose crown overlaps a tree cuts its light multiplicatively, by that neighbour's own shade cast, scaled by how much the crowns overlap, how far apart they stand in depth, and how much taller it is. Crown radius grows with height. Beech throws deep shade; birch throws almost none. That single difference decides most of what follows.
Growth
Height gain is the guild's growth rate, times light to the power 0.8, times the climate response, times soil fertility, times the season, times how far the tree still is from its own ceiling. So trees slow as they mature and stall in shade.
Suppression and death
Below its light need a tree accumulates stress, and faster the darker it gets. Death follows at a threshold set by its shade tolerance — a birch gives up quickly, a beech seedling can wait a long time in the dark. On top of that: old age, stochastic windthrow scaled by height, drought that takes the big trees first, frost that takes the seedlings first, heat stress, and waterlogging.
Height can fall as well as rise. Drought pulls crowns back. Ice storms break them by 10 to 30%. Gales tear out branches. A late frost knocks back new growth.
Frontier trees
Silver birch and downy birch are frontier trees, and the model treats them as a different kind of thing rather than just a fast one. They are worth almost nothing in shade and a great deal in the open: their chances rise steeply with floor light, multiply again on freshly burnt or newly opened ground, and rise towards the margins of the wood. Their seed travels 300 pixels, so they arrive without a parent standing nearby. They are short-lived and cannot hold a place once anything taller reaches them.
What they leave behind matters. Birch litter feeds the soil where they stand, in the same way alder's nitrogen does but more slowly, so the ground a birch stand occupied is richer for whatever follows it. In testing, silver birch takes about half the stems in the first decades, then falls away to a handful as the canopy closes — and the oaks that replace it are growing in soil the birch built.
Families
Oaks are not scattered one by one. A jay takes several acorns at a time and buries them together, so oaks come up in caches — the model plants a group of up to seven siblings within a few metres of each other, carrying the same theme. Most of them die. The ones that live stand as a family group of two or three, of an age, close together, sounding the same line. Beech, hazel, holly and crab apple do the same on a smaller scale, and blackthorn throws suckers into a thicket of up to six.
A group shelters itself: while they are young, trees with living kin beside them carry about a quarter less risk than a stem standing alone. And when a gap opens, whether by windthrow or fire, seed is drawn into it for a decade or so, so a clump comes up together and grows up even-aged. Point at any tree with kin and the label says how many of its family are still standing.
Recruitment
Up to 70 stems. A seedling needs a little clear floor, so the stand spaces itself. Most seed falls true to its parent; the rest is open to whichever guild suits that spot. Dispersal distance is a guild trait — an acorn travels 55, a birch seed 210, a bird-carried rowan or holly 260. Oak and beech have mast years, in roughly three springs in ten.
Soil and terrain
The ground is uneven. A ridge sheds water and a hollow holds it, so local moisture is the climate value adjusted by elevation. The wood sorts itself along that gradient: alder in the wet ground, pine on the dry ridge, oak and beech in between.
Soil fertility is tracked across 24 bands of the ground. It builds under rotting logs, under autumn leaf fall, and around the nitrogen-fixing alder; it is drawn down by growing trees. It feeds straight back into growth.
Deadwood and disturbance
A fallen giant becomes a log. It gathers moss as it rots, grows fungi in the damp of autumn, feeds the soil beneath it, and takes about ten minutes to disappear. Fire burns a patch and scorches the ground — thick-barked pine often survives it outright. Storms arrive as weather, more often in autumn and winter and in high wind.
Resprouting
Cut, burnt or blown down, some guilds come straight back from the stool. Hazel almost always, oak and alder often, beech rarely, pine never.
Disease
Infection starts in one tree and spreads only to neighbours of the same guild within range, faster in warm damp air. An infected tree loses up to 85% of its growth, its theme fragments, it quietens, and it dies. Rowan is the most susceptible, holly the least. In testing, one infected tree became fifteen in five minutes.
Browsing
Deer take the palatable seedlings and the ground flora, and leave the holly and the conifers. Sustained browsing shifts the whole stand towards what deer will not eat.
The seventeen guilds
| Guild | Mature height | Yr to maturity | Lifespan yr | Light need | Shade cast | Drought | Frost | Wet | Seed reach | Resprout | Fire survival |
| Sessile oak | 25 m | 110 | 500 | 0.14 | 0.68 | 0.62 | 0.60 | 0.50 | 130 | 0.75 | 0.50 |
| Silver birch | 20 m | 30 | 90 | 0.55 | 0.35 | 0.85 | 0.95 | 0.25 | 300 | 0.10 | 0.10 |
| Downy birch | 17 m | 35 | 80 | 0.42 | 0.42 | 0.72 | 0.95 | 0.55 | 210 | 0.20 | 0.15 |
| Scots pine | 27 m | 70 | 250 | 0.34 | 0.55 | 0.88 | 0.92 | 0.22 | 160 | 0 | 0.72 |
| Sitka spruce | 38 m | 40 | 90 | 0.28 | 0.90 | 0.25 | 0.85 | 0.78 | 180 | 0 | 0.10 |
| Norway spruce | 32 m | 55 | 200 | 0.22 | 0.86 | 0.30 | 0.92 | 0.60 | 150 | 0 | 0.12 |
| Larch | 30 m | 45 | 150 | 0.50 | 0.45 | 0.60 | 0.95 | 0.35 | 170 | 0 | 0.30 |
| Alder | 18 m | 40 | 80 | 0.38 | 0.55 | 0.18 | 0.70 | 0.95 | 150 | 0.70 | 0.10 |
| Ash | 26 m | 60 | 200 | 0.25 | 0.58 | 0.50 | 0.70 | 0.65 | 200 | 0.60 | 0.15 |
| Beech | 30 m | 90 | 250 | 0.06 | 0.86 | 0.24 | 0.45 | 0.45 | 70 | 0.15 | 0.10 |
| Rowan | 12 m | 30 | 100 | 0.30 | 0.45 | 0.50 | 0.85 | 0.50 | 260 | 0.30 | 0.15 |
| Hazel | 6 m | 15 | 70 | 0.12 | 0.60 | 0.45 | 0.70 | 0.55 | 60 | 0.95 | 0.35 |
| Holly | 8 m | 50 | 200 | 0.10 | 0.75 | 0.50 | 0.55 | 0.50 | 240 | 0.50 | 0.20 |
| Hawthorn | 8 m | 35 | 200 | 0.35 | 0.50 | 0.65 | 0.90 | 0.45 | 220 | 0.60 | 0.20 |
| Blackthorn | 4 m | 15 | 60 | 0.38 | 0.55 | 0.60 | 0.90 | 0.50 | 30 | 0.95 | 0.25 |
| Crab apple | 8 m | 35 | 90 | 0.30 | 0.52 | 0.50 | 0.75 | 0.50 | 120 | 0.40 | 0.15 |
| Elder | 5 m | 10 | 30 | 0.30 | 0.50 | 0.45 | 0.70 | 0.60 | 230 | 0.80 | 0.20 |
Heights and lifespans are real figures for these species on this kind of ground. Growth rates are set so that each reaches its own mature size in about its own real number of years, which is why a birch overtakes an oak for forty years and then stops at half its height. Tolerances run 0 to 1, higher is more tolerant. Seed reach is in pixels of the wood's width. Scots pine, both spruces and holly are evergreen; larch is a conifer that drops its needles. Oak and beech have mast years. Beech and the plantation conifers were planted rather than wild-sown, so the model holds them to about a fifth of the stand — without that limit beech takes everything.
How time works here
Everything biological happens in real years. A tree's age, its height, how long it lives, how long it can survive suppression, how fast a disease kills it — all in years, at real rates. The only dial is how fast a year passes: the growth control runs it between about 40 seconds and 200 seconds. So an oak still needs its hundred years to reach 25 m; you just get there faster, or skip ahead with the time buttons.
Where the weather comes from
The weather is built from the Met Office monthly record for Eskdalemuir, the nearest long-running station to DG7 2NE, using the twenty years 2006 to 2025 — 240 months of observations.
Eskdalemuir sits at 242 m, about 65 km east of Mossdale, and is one of the wettest recording stations in Britain. Two adjustments bring it to Mossdale's lower, more sheltered ground: +0.9 °C for roughly 150 m of elevation at the standard lapse rate, and rainfall scaled to 0.78. The temperature correction is conventional. The rainfall scaling is my estimate and is the weakest number in the whole model.
That gives a baseline year of about 8.9 °C and 1,500 mm of rain:
| Month | J | F | M | A | M | J | J | A | S | O | N | D |
| Mean °C | 3.4 | 4.0 | 5.3 | 7.7 | 10.8 | 13.6 | 15.1 | 14.5 | 12.5 | 9.6 | 6.1 | 4.0 |
| Rain mm | 159 | 135 | 122 | 66 | 82 | 89 | 115 | 135 | 111 | 150 | 154 | 178 |
| Frost days | 14.3 | 13.1 | 12.3 | 8.6 | 3.6 | 0.1 | 0 | 0.1 | 0.9 | 3.7 | 8.8 | 12.9 |
What the record already shows
Fitted to the Eskdalemuir series itself: temperature rising +0.24 °C per decade over 1961–2025, and +0.40 °C per decade over the last twenty years. Rainfall rising between +67 and +95 mm per decade depending on the window, with the increase spread across winter and summer alike.
Running forward
The app opens on today's real date and runs on from there. The readout gives the actual month and year, the modelled temperature and its anomaly against the 2006–2025 baseline, and the rainfall as a percentage of what that month normally brings.
You can move through it. Forward runs the model at speed and silently, so you arrive in whatever wood those decades actually produced — jumping fifty years takes a second or two and everything that happened on the way happened. Back restores a saved state; the wood is saved four times a year, sixty years deep. "Now" returns to today's date.
Three pathways, chosen with the emissions dial:
- Low, roughly RCP2.6 — +0.13 °C per decade, winter rain +1.5% per decade, summer −0.5%.
- Medium, roughly RCP4.5 — +0.25 °C per decade, winter +3%, summer −2%. This matches the observed 1961–2025 local trend.
- High, roughly RCP8.5 — +0.40 °C per decade, winter +5%, summer −4%. This matches the observed trend of the last twenty years.
The rainfall directions follow UKCP18: wetter winters, drier summers, with the west of Scotland holding the strongest winter wetting and the weakest summer drying in the UK. Under the high pathway the model reaches about 114% of baseline winter rain and 85% of baseline summer rain by 2080.
How each month is generated
Each month takes its baseline value, adds the pathway's trend for that year, then adds real interannual variability — temperature from the month's own observed standard deviation in the record, rainfall as a right-skewed lognormal draw fitted to the record's spread. The spread widens slowly with time, as UKCP18 projects heavier extremes. The draw is deterministic per month, so the same month always comes out the same way.
Those two numbers are then mapped onto the app's axes: temperature against the local annual mean, water against what that month normally brings here. So "average" on the water dial means average for Mossdale, which is a wet place. The temperature and water sliders become offsets on top of the record, and every intervention still works. Switch the record off and you are back to free manual control.
Four limits worth knowing
- Eskdalemuir is not Mossdale. It is higher, further east and wetter. The elevation correction is sound; the rainfall scaling is an estimate.
- Local observed summer rainfall has been rising, while the projections say summers should dry. The model follows the projections forward. That tension is real and unresolved — twenty years is short, and the west of Scotland has the weakest drying signal in the UK.
- The resolution is monthly. Single storms, dry spells within a month, and the intensity of individual downpours are not in the data.
- This is a plausible trajectory under current understanding, not a forecast for Mossdale. Use it to show how a wood responds to a pathway, not to predict a year.
Source: Met Office historic station data, Eskdalemuir, monthly series 1911 to present, retrieved September 2026. Projection directions from UKCP18 land projections.
Climate
Two dials and a drift. Warmth sets how fast anything grows and how loud the insects are. Water sets rainfall, waterlogging and drought. Growth is hump-shaped on temperature — a longer season helps, then heat stress bites — and is penalised at both the dry and the waterlogged end. Species differ in what they can take, so the climate decides which of them wins.
Hot and dry brings fire. Cold and wet brings ice storms. Very wet floods the hollows. Climate drift keeps moving the baseline while it plays, so you can set it and watch the wood convert over twenty minutes.
Measured over fifteen minutes from the same start: a temperate run ends with giants at full height; drought cuts the tallest tree by a quarter and brings eleven fires; a warming and drying drift collapses the giants from 29 stems to 3.
Sound follows the climate. Insect chirp rate climbs with temperature, as it does in the field. Rain becomes audible when it is damp even outside a storm. Frogs start in warm wet conditions. Birds thin out at both extremes. Bells go glassy and short in the cold, longer and duller in heat.
What you can do to it
Four things happen everywhere and then fade over about a minute: heat spell, cold snap, dry spell, gale. Each also does something immediate — leaves wilt and drop, a frost kills seedlings, crowns pull back, trees bend and lose branches.
Five things you place by tapping the wood: fire, flash flood, disease, planting, felling. Deer browsing is a sixth, and it works on the whole stand.
Point at anything in the wood to name it. On a phone, tap it when no tool is selected. A tree gives its guild, age, how grown it is, its share of the light, whether it is suppressed or in the canopy, which voice it is currently singing with, and a line on how that guild makes its living. Ferns, bramble, grasses, spring flowers, fungi and fallen wood name themselves too.
The readout shows stems, tallest tree, deaths per minute, the guild mix, disease and browsing, alongside the station, the time of day and the daylight percentage.
The picture
Six layers, all driven by the same model: mycelium below the soil, leaf litter and logs on the floor, the herb layer, the shrub and understory, the canopy, and the air.
The floor carries thirteen plants, each with its own window in light, water, soil richness and season. Bracken and bramble take the gaps. Grasses hold the half-light. Ferns, moss and wood sorrel hold on under a closed canopy. Nettle and dock mark rich, disturbed ground — beside a rotting log, or where the soil has been broken. Foxglove seed waits in the soil and rises after fire or felling. Bluebell, wood anemone and wild garlic use the vernal window between leaf-out and canopy closure, then go. Fungi fruit on dead wood in the autumn damp.
The creatures keep their own hours and seasons. Cuckoo in spring only. Willow warbler through spring and summer, then gone. Buzzard mewing and raven croaking over the daytime wood, red squirrel chattering up a trunk. After dark, tawny owl and fox — the fox loudest in winter. Roe deer bark at dusk and in the night. Bats at dusk when it is warm enough for insects to be flying. In winter, skeins of geese crossing over from the loch. Frogs in warm wet springs, insects through the summer, and the dawn chorus at first light.
Crowns take their guild's form — conifers cone, oak and beech dome, birch open, hazel a multi-stem clump. Trunks flare at the base and carry vertical grain. Trees cast shadows away from the sun, shortening as it climbs. Autumn colour is per guild.
Geometry is batched into a handful of paths and the static layers are cached, so the whole scene costs a few hundred draw operations rather than a few thousand. If a device still cannot keep up it drops to half frame rate and sheds decoration rather than stuttering.
What this is not
It is a stylised model, not a forecast. The mechanisms are real and named above. The numbers behind them were chosen so that the dynamics read clearly on a phone screen in minutes rather than over centuries. Do not quote its outputs as predictions.
It is good for showing people how competition, tolerance, disturbance and climate interact, and for hearing the shape of that rather than reading it.