Swale
the ground paints itself, then it grows
Grow a planting on ground you actually measured, with the base layer painted by the site's own water. Gardener asks you to brush the moisture on; here the landform hands it over — Surveyor's 3DEP surface comes across the site pipe, priority-flood and D8 flow routing find where the water collects and where it leaves, and a wetness index, a heat-load proxy read off the aspect and a deposition proxy sort the plot into eight habitat bands. Then an individual-based stand plays out over decades ON that painting: nobody places a plant, so willows end up in the swale and bur oak on the dry south shoulder because that is what the ground allows. Your Eco Lounges field loads in beside it — plinths mask the planting, and every lounge reads back the band it stands in, how much of its footprint is in the wet, how far it is from the nearest channel and how much canopy has closed over it. Draw it either way: a 2-D PLAN, north up, with shaded relief, contours at a stated interval and a scale bar — the drawing a studio actually works in — or the 3-D model, for the section through the stand a plan cannot show. Both are the same run and the same marks, literally: every habitat band carries a hatch drawn the way a landscape drawing chooses one — broken horizontals for marsh, a running diagonal for a channel, stipple for the dry shoulder, tight cross-hatch for a steep face — and because every hatch is specified in WORLD METRES rather than pixels, the sheet is composed once and the model WEARS it, so the marks run down the slopes they describe instead of floating in front of them. Every field says its own algorithm on hover. Landform hydrology, not a drainage study. Client-side, no account.
Client-side: the terrain comes from your own Surveyor survey in this browser, and nothing is uploaded.
how much ground must drain through a cell before it counts as a channel
The sheet itself, flat and measurable: the hatch, shaded relief, contours, a scale bar. Drag to pan, scroll to zoom, double-click to fit.
How each band is hatched — method: Drawing convention, not data: each habitat band carries a hatch chosen the way a landscape drawing chooses one — broken horizontals for standing water and marsh, a running diagonal for a channel, an ordinary diagonal thinning as the ground dries, stipple for the dry shoulder and the ridge, tight cross-hatch for a steep face. Density falls as the ground dries, so the sheet lightens toward the ridge and the site's own gradient is visible without reading a legend. EVERY dimension — spacing, line weight, dash length — is in WORLD METRES, so the hatch is a texture ON the ground: it scales with the plot, holds its density at any zoom, and foreshortens correctly where the sheet is mapped onto the 3-D landform. The lattice is anchored to the world origin, so the pattern belongs to the site rather than to the window, and stipple is jittered by a hash of its own lattice index so it never crawls between frames.
How the landform is shaded — method: Shaded relief, not data: the standard hillshade — cos(zenith)·cos(slope) + sin(zenith)·sin(slope)·cos(azimuth − aspect) — lit from the north-west (315°) at 45° above the horizon, the cartographic convention; lighting it from anywhere else makes valleys read as ridges. This is the SAME function the 3-D ground is tinted by (lib/swale/marks.ts), not a second copy, so both views shade a given slope identically. It shades the RAW survey, hollows included, not the depression-filled surface the flow router runs on.
How a plant is drawn in plan — method: Each plant drawn at its own crown RADIUS for the year on screen, from the species' authored allometry — the plan mark a planting drawing uses. Shortest drawn first, so a canopy tree covers the sward beneath it. Overlap is real overlap: nothing is nudged apart to keep the drawing tidy.
How this wash is computed — method: Each cell is sorted into one of eight habitat bands in this order of precedence: what the ground refuses first (standing water, then slope too steep to hold soil), then whether it carries a channel, then how wet it ranks, then how hot it faces. Because the wetness is a rank within this plot, the bands describe THIS ground's own gradient — the wettest end of a dry site still paints as its marsh. The thresholds are authored teaching bands, not a published classification.
stems sown per acre in year 0 — what the ground does with them is its business
Seed mix (16 of 16)
Where each row's numbers come from — method: Sixteen Eastern-tallgrass species laid along the moisture gradient. TWO of the four traits are sourced: shade tolerance and drought tolerance are the USDA PLANTS Characteristics database's own ORDERED CLASSES (Intolerant / Intermediate / Tolerant, None / Low / Medium / High), mapped onto 0–1 by the single table at the top of this file. EVERYTHING ELSE IS AUTHORED — the Gaussian moisture optimum and its width, the growth coefficient, the mature height and crown allometry, the longevity in years, the seed rain and the dispersal distance. They are a teaching model tuned to behave, not published figures, and nothing here should be cited as USDA data. Each species row repeats which half is which.
- shrub · wants wet ground · to 10 ft — method: Moisture optimum 0.97 of 1 (± 0.12), shade tolerance 0.5, drought tolerance 0.1, mature 10 ft, lifespan ~40 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- sedge · wants wet ground · to 3 ft — method: Moisture optimum 0.95 of 1 (± 0.14), shade tolerance 0.5, drought tolerance 0.1, mature 3 ft, lifespan ~18 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants wet ground · to 66 ft — method: Moisture optimum 0.90 of 1 (± 0.16), shade tolerance 0.15, drought tolerance 0.3, mature 66 ft, lifespan ~65 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants wet ground · to 89 ft — method: Moisture optimum 0.82 of 1 (± 0.19), shade tolerance 0.5, drought tolerance 0.3, mature 89 ft, lifespan ~110 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants wet ground · to 108 ft — method: Moisture optimum 0.78 of 1 (± 0.18), shade tolerance 0.15, drought tolerance 0.55, mature 108 ft, lifespan ~220 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants mesic ground · to 79 ft — method: Moisture optimum 0.74 of 1 (± 0.17), shade tolerance 0.5, drought tolerance 0.55, mature 79 ft, lifespan ~300 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- shrub · wants mesic ground · to 9 ft — method: Moisture optimum 0.72 of 1 (± 0.17), shade tolerance 0.5, drought tolerance 0.3, mature 9 ft, lifespan ~30 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants mesic ground · to 98 ft — method: Moisture optimum 0.56 of 1 (± 0.16), shade tolerance 0.85, drought tolerance 0.55, mature 98 ft, lifespan ~300 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants mesic ground · to 85 ft — method: Moisture optimum 0.55 of 1 (± 0.15), shade tolerance 0.85, drought tolerance 0.55, mature 85 ft, lifespan ~180 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants mesic ground · to 26 ft — method: Moisture optimum 0.50 of 1 (± 0.18), shade tolerance 0.5, drought tolerance 0.55, mature 26 ft, lifespan ~60 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants mesic ground · to 72 ft — method: Moisture optimum 0.48 of 1 (± 0.20), shade tolerance 0.15, drought tolerance 0.55, mature 72 ft, lifespan ~120 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants dry ground · to 82 ft — method: Moisture optimum 0.38 of 1 (± 0.21), shade tolerance 0.5, drought tolerance 0.85, mature 82 ft, lifespan ~350 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants dry ground · to 89 ft — method: Moisture optimum 0.40 of 1 (± 0.16), shade tolerance 0.5, drought tolerance 0.55, mature 89 ft, lifespan ~250 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- tree · wants dry ground · to 46 ft — method: Moisture optimum 0.26 of 1 (± 0.20), shade tolerance 0.15, drought tolerance 0.85, mature 46 ft, lifespan ~150 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- grass · wants dry ground · to 7 ft — method: Moisture optimum 0.42 of 1 (± 0.22), shade tolerance 0.15, drought tolerance 0.85, mature 7 ft, lifespan ~20 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.
- grass · wants dry ground · to 4 ft — method: Moisture optimum 0.20 of 1 (± 0.20), shade tolerance 0.15, drought tolerance 0.85, mature 4 ft, lifespan ~16 yr. class from USDA PLANTS; the numeric niche + growth curve are authored.