Oct 4, 2026

Olympic Peninsula vegetation for game worlds

  • 18 min read

Question: a game set on Washington's Olympic Peninsula has a beach, a forest and a mountain, and the usual first pass at dressing them is conifers over grass with a generic bush. It does not read as the Olympics. What actually grows there, where, in what shapes and at what densities, and how does that become placement rules and a short list of models a real-time game can afford?

Short answer: the Olympics are organised by two gradients, rain and elevation, and every plant community follows from where a spot sits on them. The west side takes 3.5 to 4.2 m of rain a year and the northeast lowlands about 0.4 m, and the forest changes character at about 600 m, 1,100 m and the treeline at 1,500 to 1,800 m. A game world does not need the metres. It needs the order of the zones and the share of the climb each one takes.

Within a zone the look comes from layers, not from the trees alone. The lowland forest floor is a moss and oxalis lawn that elk keep open, set with sword fern in clumps that cover a third of the ground on good sites and four fifths on the best. Salal makes thickets behind the beach and under drier canopy. The montane forest has a strong shrub layer of huckleberries and almost no herbs. The subalpine is tree islands in heather and flower meadow. Dead wood is everywhere: 120 to 161 tonnes a hectare of fallen trunks in the rain forest, logs over a metre through, mossed over inside two decades and carrying four to five times the seedlings of the ground beside them.

For a game that comes down to five placement inputs (canopy density, height as a share of the treeline, drainage, distance from the sea, disturbance) and about a dozen growth forms. Sword fern, a salal mound, a mossy log seated in the ground and a huckleberry do more for the place than another conifer does. The rules, the sizes and the mistakes worth avoiding are below.

Rain. Storms come off the Pacific and drop their water on the west-facing valleys: 140 to 167 inches a year (3.5 to 4.2 m) in the rain forest valleys [1], measured at 3,200 to 3,440 mm at a study site in the Hoh, where the mean temperature is 10 °C [2]. The mountains leave a rainshadow on their northeast side, centred on Sequim, where a year brings about 15 inches (0.4 m) [3]. One peninsula holds a temperate rain forest and, under 100 km away, country dry enough for fire to shape the forest: on the east slopes fire accounts for the importance of Douglas-fir [3], where the wet west side grows Sitka spruce and western hemlock [1].

Elevation. The forest is described in three belts [3]:

Zone Elevation What it is
Lowland forest sea level to 550 to 600 m Western hemlock, western redcedar, Sitka spruce and Douglas-fir. Nearly all precipitation falls as rain
Montane forest to about 1,075 to 1,125 m Pacific silver fir with western hemlock on the west side, Douglas-fir and hemlock on the east, where this belt can reach 1,400 m
Subalpine forest to the treeline Mountain hemlock and silver fir in the west, subalpine fir in the east, opening into meadow
Alpine above the treeline Low mats and cushions among rock

The park puts the start of the montane belt at 1,500 to 2,000 feet and the subalpine at about 4,000 feet [4], and the treeline between 5,000 and 6,000 feet (about 1,520 to 1,830 m), held there by snow that lies too long for seedlings to start [5]. Sitka spruce, the rain forest's signature tree, stops at about 600 m in Washington [6], and red alder at about 760 m [7].

What a game takes from this. Few game maps climb 1,800 m. Compress the heights and keep the proportions: with the treeline as 1, the lowland forest ends near 0.35, the montane near 0.65 and the subalpine parkland fills the rest. A map whose summit stands 250 m over its beach can still walk a player through all four belts in order, and the order is what reads as a mountain. The rain gradient matters less inside one map, since a map is a few kilometres and the gradient is tens. Pick the wet west side or the dry northeast and stay there: mixing salal, sword fern and Sitka spruce with the east side's Douglas-fir and rhododendron on one hillside is the botanical version of a continuity error.

Each environment below lists its layers from the top down, since that is how it is built in a scene.

2.1 Beach and drift line

Above the tide the Olympic beaches are lined with jumbled drift logs [8]: whole trunks, washed out of the forest and thrown back by the sea. They are the coast's first plant community in every way that matters to a picture: bleached, barkless, as long as the trees they were, piled against the backshore. A beach without them is somewhere else.

2.2 The coastal forest's edge

The forest stops at the beach, and its edge shows the wind. Trees on the edge are flagged, with branches on the lee side only, and the Sitka spruce there carry burls [8]. Under them the shrubs are salal, evergreen huckleberry, salmonberry and black twinberry, over deer fern, sword fern and skunk cabbage, with ferns and mosses as a spongy carpet [8]. In places the forest gives way to wet prairie with bog plants: wild cranberry, crowberry, bog laurel, Labrador tea, sundew and sphagnum [8].

The belt behind the beach is the place for the densest shrub layer on the map. Salal is an evergreen, clonal shrub 0.4 to 3 m tall that often forms dense, nearly impenetrable thickets [9]; evergreen huckleberry is dwarfed to 0.9 to 1.5 m where it stands in full sun [10]. Draw the belt as a wall of leathery dark green from knee to head height, broken only where a trail has been cut through it.

2.3 The rain forest valley

The Hoh, Queets, Quinault and Bogachiel valleys are the picture most people carry of the Olympics. Sitka spruce and western hemlock dominate, hundreds of years old, to 250 feet (76 m) tall and 30 to 60 feet round [1]; the canopy over a set of Hoh plots closed 93 % of the sky on average [2]. Bigleaf maples stand in the gaps, wrapped in epiphytes: licorice fern, Oregon selaginella, cat-tail moss and lungwort [1]. The shrubs are salmonberry and huckleberry, and the floor is Oregon oxalis, sword fern, lady fern and stair-step moss [1]. The moss mat averaged 6.1 cm deep on those plots and reached 20.6 cm [2].

The valley's floor is younger nearer the river, and the forest records it. On the Hoh the gravel bars carry red alder and willow, the alder flats behind them are 80 to 100 years old, and the terraces above step through Sitka spruce with bigleaf maple and black cottonwood to spruce and hemlock, and at last to hemlock alone [11]. A river in a game map wants the same steps: bare cobble, a pale-barked alder strip, then the big conifers.

2.4 The lowland forest away from the valleys

Outside the valley floors the lowland forest is Douglas-fir and western hemlock old growth, which the park defines by trees older than about 200 years, a canopy in several layers, standing dead snags and abundant down wood [12]. Its shrubs are salal, Oregon grape, huckleberries, red elderberry and ocean spray; its herbs sword fern, trillium, twinflower, vanilla leaf, star flower and bleeding heart [12].

Sword fern is the plant to get right. It is an evergreen fern whose fronds, sometimes 75 to 100 of them, arch outward from one short vertical stem [13]. In the moist community named for it, on sheltered slopes, it covered 34 % of the ground on average and 80 % on the best sites, with fronds over 1 m tall [13]; on river bars and low floodplains it reaches 17 to 25 % [13]. Those numbers describe patches, not an even scatter. Salal takes the drier, better-drained ground, and takes it fast: it is prominent again within 3 to 5 years of a disturbance [9].

2.5 Wet ground: streams, seeps and lake margins

Wet ground has its own plants and they mark it from a distance. Devil's club is a sparsely branched, prickly, deciduous shrub 1 to 3 m tall, found at springs, streams, drainages and seeps [14]; its leaves are the largest in the forest. Salmonberry is most abundant below about 800 m and makes clonal thickets of more than 20,000 stems a hectare [15]. Skunk cabbage, a plant of standing water with leaves the size of a paddle, is on the park's list for the coastal forest [8], and lady fern on its list for the valley floor [1]. A player should be able to tell where the water is by the plants before seeing it.

2.6 The montane forest

Above the lowland the forest closes over a different floor. Silver fir joins hemlock; the shrubs are huckleberries, fool's huckleberry, salal, Oregon grape and devil's club [4]; and the belt has an exceptionally well developed shrub layer but a poor herb layer [3]. Red huckleberry, the tallest of the western huckleberries at 1.8 to 3.6 m, commonly germinates on nurse logs [16], so it is often seen growing out of the top of one. For a scene this means the ferns thin out with height and the knee-to-shoulder shrubs take their place.

2.7 Subalpine parkland

Near the treeline the forest breaks into islands. Subalpine fir grows a skirt of low branches that the snow protects and that take root as new trees, and at the upper edge centuries-old trees sprawl along the ground [5]. Between the islands are meadows of red mountain heather, lupine, beargrass, paintbrush and penstemon [5]. Beargrass is a tussock of wiry leaves that sends up a leafy flowering stalk as tall as 1.5 m, with many small white flowers [17]. Avalanche chutes carry Sitka alder, a many-stemmed deciduous shrub 3 to 4.6 m tall that forms dense thickets [18].

2.8 Alpine rock

Above the trees nothing stands up. The park's list is spreading phlox, smooth douglasia, scalloped onion and two plants found nowhere else: Piper's bellflower, which often grows in cracks in rock, and Flett's violet [19]. In a game this belt is rock and scree with flat cushions of colour a hand across, placed in cracks and on ledges and never on open scree.

2.9 Edges and disturbed ground

Trails, roads and clearings have their own flora. Western brackenfern, with fronds from 0.3 to 3 m long [20], takes open ground; red alder, salmonberry and salal crowd a cut edge; and Scot's broom, an invasive shrub with yellow flowers, has taken hold on open lowland ground [21]. A trail edge drawn with the deep forest's plants looks wrong in a way that is hard to name. Give it its own.

A forest this wet could be expected to have a tangled understory, and inside a fence it does. Two half-hectare exclosures built in the park's old-growth rain forest in 1979 kept elk and deer out for 36 years. The ground went from herbs with a large share of grasses to shrubs, whose cover rose five to six times; fern cover rose 5 to 7 %, herb cover fell 15 to 20 %, grasses nearly vanished, and 46 of 74 species were lost [22]. The park says the same thing in a caption: grazing by Roosevelt elk keeps the rain forest understory open, over a floor of moss and oxalis [1].

This settles a question every vegetation pass runs into. The open, park-like floor of the valley forest is correct: a low green lawn of moss, oxalis and some grass, with sword fern in clumps and shrubs kept to the places elk do not finish. A valley floor filled wall to wall with shrubs is what the forest looks like without its animals. Away from the valley floors, on slopes and in the montane belt, the shrubs come back.

The rain forest's fallen trunks weigh 120 tonnes a hectare under open canopy and 161 under closed, and the two main trees die differently: hemlock mostly by windthrow, while Sitka spruce typically dies standing [23]. It follows that a log is more often a hemlock and a snag more often a spruce. Logs cover up to 25 % of the ground in these forests against under 4 % in others [2], and logs over a metre through are abundant in the Hoh [2].

A log does not stay bare. Bryophytes cover about 90 % of a fallen log within 11 to 19 years, and logs carry 17 species of them against six on the forest floor [2]. Because the floor's own moss mat is too deep for a seed to root through, the logs are where the next forest starts: tree seedlings stood at 20.1 per square metre on nurse logs, 4.6 times the forest floor's density, with seedlings on 57 % of log plots against 36 % of floor plots, most of them western hemlock [2]. Seedling density is highest on young logs with thin moss and lowest on old ones under moss more than 20 cm deep [2]. When the log finally rots away, the trees that grew on it are left standing in a row on stilted roots: a colonnade [1].

For a game:

  • Size and number. A fallen old-growth trunk is tens of metres long and waist to chest high. A 6 m log the thickness of a fence post is firewood. If the budget allows one large log model, use it often: a tenth to a quarter of the forest floor.
  • Seat the trunk, not the bounding box. A log model has a root flare and branch stubs, and its box's lowest point is one of those, not the trunk. Seated by its box, the trunk hangs in the air on every slope. Fit a line to the trunk's underside, fit another to the ground under its whole length (several samples, not the two ends), lay one on the other, then sink the log a fifth of its diameter. An old log has settled into the floor and should look as though it would take a spade to free it.
  • Moss it. A grey or brown log reads as last winter's windfall. Green on the top and flanks, bark only on the underside, is the rule after two decades.
  • Plant it. A row of knee-high hemlock seedlings and a huckleberry along a log's spine says "nurse log" at a glance. A line of mature trees with arched, stilted roots and nothing between them says it a few centuries later.
  • Snags. Standing dead spruce, broken off at a third of their height, belong among the live trees. They are also where the ravens sit.

A game does not need species. It needs growth forms that are told apart at a glance, at the size they really are. The dozen below cover the peninsula from tide to treeline.

Growth form Stands for Size Leaf habit and colour How it groups
Vase fern Sword fern [13] Clump 1 to 2 m across, fronds to 1 m and more Evergreen, dark, once-divided fronds Separate clumps, in patches that close to four fifths cover
Lacy fern Lady fern, brackenfern [20] Fronds 0.3 to 3 m Deciduous, light green, brown after frost Colonies on wet ground (lady fern) or open ground (bracken)
Leathery mound Salal, evergreen huckleberry [9] 0.4 to 3 m Evergreen, broad dark oval leaves Thickets with no gaps
Airy tall shrub Red huckleberry [16] 1.8 to 3.6 m Deciduous, small leaves on green twigs Singly, often on a log or stump
Cane thicket Salmonberry [15] Head high Deciduous, magenta flowers Dense clones on wet edges
Big-leaf spiny shrub Devil's club [14] 1 to 3 m Deciduous, very large leaves on few stems Patches at seeps and streams
Floor carpet Oxalis, moss [1] Ankle high Evergreen moss, clover-like leaves Continuous
Epiphyte drape Cat-tail moss, licorice fern [1] Sleeves on trunks and limbs Green all year On maples and old limbs
Pale-barked hardwood Red alder [7] A medium tree Deciduous, smooth light bark Even-aged strips on bars and cut edges
Bowed thicket Sitka alder [18] 3 to 4.6 m Deciduous Continuous in avalanche gullies
Tussock with stalk Beargrass [17] Stalk to 1.5 m Wiry leaves, white flower head Colonies in subalpine meadow
Low heath Red mountain heather [5] Ankle to knee Evergreen, pink in flower Mats between tree islands

Three notes from building these.

Generic foliage assets are from somewhere else. Free scanned shrubs are mostly Mediterranean and southern African, and their thin stems and sparse lance leaves read as dry country. No amount of placement makes one a salal thicket. The leathery mound is simple enough to build in code: arching stems from one base, a few hundred oval leaves lying in a dome's surface and facing outward, the inner ones darker. It costs about 1,500 triangles near and 300 far, and it needs no texture.

Leaf mounds must not be glossy. Salal's leaf is shiny in the hand, and the obvious material has some gloss. A mound of small flat facets with a dielectric's default reflectance mirrors the sky from every one of them, and the shrub turns pale blue-grey whatever colour its leaves were given; darkening the leaves changes nothing, because the light being seen is reflected, not diffuse. Take the specular reflection nearly to zero and the green comes back.

Shade a mound as a mound. Give each leaf a normal that leans from its own face toward the outward direction of the whole plant. The shrub then lights as one rounded mass, with a bright side and a dark side, where true per-leaf normals give a flicker of unrelated facets.

Procedural placement wants a density for each plant at each point. Five inputs, all cheap and all fields a terrain system already has or can derive, are enough to drive the communities above.

Input How to get it What it decides
Canopy density The tree placement's own density field Shade plants (sword fern, oxalis, moss) against sun plants (grasses, bracken, lupine)
Height as a share of the treeline Terrain height over the treeline height The belt: lowland, montane, subalpine, alpine
Drainage Slope, and distance to water Salal on slopes and ridges; sword fern on moist benches; devil's club, skunk cabbage and lady fern at water
Distance from the sea Coast distance The drift line, the flagged edge, the salal belt
Disturbance Distance to a trail, road or clearing Edge plants in, deep-forest plants out; nothing tall on the tread

Rules that follow, in the order they pay off:

  1. Multiply gates, do not sum them. A plant's density is the product of its tolerances: canopy times belt times slope times clearance. One closed gate is enough to remove it. A plant with several habitats, as salal has, takes the strongest of them.
  2. Put the cover figure in the patch noise. Field figures such as "34 % on average, 80 % on the best sites" describe a patchy field. Use a low-frequency noise of 25 to 40 m wavelength with a floor: inside a patch the cells saturate, between patches a thin scatter remains. An even density at the average looks like a plantation.
  3. Thickets close. A thicket plant needs a cell smaller than the plant. If the mounds are 1 to 2 m across and the grid is 4 m, the result is a field of separate bushes, the exact look to avoid.
  4. Thin with height, by belt. Sword fern is full in the lowland, a remnant in the montane. The shrub layer runs the other way, rising to the treeline, where a smaller mound stands in for huckleberry and heath.
  5. Reject by instance near a trail. A density gate sampled at a cell's centre cannot resolve a path narrower than the cell. Test each placed plant's own position against the trail and drop the ones too near.
  6. Tie the dead to the living. Snags and logs are dead members of the canopy, so draw them from the tree placement itself, a few per cent of it each, and they will stand where big trees grow and nowhere else.
  7. Let the animals garden. Where the design has elk, the valley floor is a lawn with ferns. Where it does not, or on ground they avoid, let the shrubs fill in.

A realistic budget for the understory in a browser game is two or three instanced classes with two levels of detail each, drawn out to 70 or 80 m and dithered out at the edge. Under a closed canopy nothing knee-high is visible past that, and the trunks hide the edge.

If only a few things can be built, this order buys the most recognition for the work:

  1. Sword fern in patches under the canopy.
  2. Large mossy logs, seated in the ground, with seedlings on some.
  3. A salal belt behind the beach and salal on the drier slopes.
  4. Drift logs along the backshore.
  5. The shrub layer rising with height, and heath between the last trees.
  6. A pale alder strip along water and cut edges.
  7. Moss sleeves on trunks and limbs, heaviest on maples.
  8. Devil's club and skunk cabbage where the ground is wet.
  9. Beargrass, lupine and cushion plants for the top of the mountain.

The first three turn a conifer forest into this one.

  1. [1]
    U.S. National Park Service, "Temperate rain forests," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/temperate-rain-forests.htm
  2. [2]
    C. L. Woods, K. Maleta, and K. Ortmann, "Plant-plant interactions change during succession on nurse logs in a northern temperate rainforest," Ecol. Evol., vol. 11, no. 14, pp. 9631-9641, Jun. 2021. Accessed: Oct. 4, 2026. [Online]. Available: https://pmc.ncbi.nlm.nih.gov/articles/PMC8293789/
  3. [3]
    R. Schalk, "The evolution and diversification of native land use systems on the Olympic Peninsula," ch. 3, U.S. National Park Service. Accessed: Oct. 4, 2026. [Online]. Available: https://npshistory.com/publications/olym/schalk/chap3.htm
  4. [4]
    U.S. National Park Service, "Montane forests," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/montane-forests.htm
  5. [5]
    U.S. National Park Service, "Subalpine forests," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/subalpine-forests.htm
  6. [6]
    U.S. Forest Service, "Picea sitchensis," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/tree/picsit/all.html
  7. [7]
    U.S. Forest Service, "Alnus rubra," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/tree/alnrub/all.html
  8. [8]
    U.S. National Park Service, "Coastal forest," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/coastal-forest.htm
  9. [9]
    U.S. Forest Service, "Gaultheria shallon," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/gausha/all.html
  10. [10]
    U.S. Forest Service, "Vaccinium ovatum," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/vacova/all.html
  11. [11]
    R. W. Fonda, "Forest succession in relation to river terrace development in Olympic National Park, Washington," Ecology, vol. 55, no. 5, pp. 927-942, 1974. Accessed: Oct. 4, 2026. [Online]. Available: https://agris.fao.org/search/en/records/65dfee480f3e94b9e5dda7cc
  12. [12]
    U.S. National Park Service, "Lowland forests," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/lowland-forests.htm
  13. [13]
    U.S. Forest Service, "Polystichum munitum," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/fern/polmun/all.html
  14. [14]
    U.S. Forest Service, "Oplopanax horridus," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/oplhor/all.html
  15. [15]
    U.S. Forest Service, "Rubus spectabilis," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/rubspe/all.html
  16. [16]
    U.S. Forest Service, "Vaccinium parvifolium," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/vacpar/all.html
  17. [17]
    U.S. Forest Service, "Xerophyllum tenax," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/forb/xerten/all.html
  18. [18]
    U.S. Forest Service, "Alnus viridis subsp. sinuata," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/shrub/alnvirs/all.html
  19. [19]
    U.S. National Park Service, "Alpine," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/alpine.htm
  20. [20]
    U.S. Forest Service, "Pteridium aquilinum," Fire Effects Information System. Accessed: Oct. 4, 2026. [Online]. Available: https://www.fs.usda.gov/database/feis/plants/fern/pteaqu/all.html
  21. [21]
    U.S. National Park Service, "Scot's broom," Olympic National Park. Accessed: Oct. 4, 2026. [Online]. Available: https://www.nps.gov/olym/learn/nature/scots-broom.htm
  22. [22]
    A. Woodward, K. Jenkins, and M. E. Harmon, "Plant community succession following ungulate exclusion in a temperate rainforest," Ecosphere, vol. 12, no. 12, 2021. Accessed: Oct. 4, 2026. [Online]. Available: https://pubs.usgs.gov/publication/70230353
  23. [23]
    R. L. Graham and K. Cromack Jr., "Mass, nutrient content, and decay rate of dead boles in rain forests of Olympic National Park," Can. J. For. Res., vol. 12, no. 3, pp. 511-521, 1982. Accessed: Oct. 4, 2026. [Online]. Available: https://digitalcommons.usu.edu/barkbeetles/168

Cyrus Sarkosh

Senior software engineer, founding engineer and lead on several zero-to-one products at DoorDash.