Forest 4 Seasons — one year in a woodland ecosystem with named animals across generations
A 3D EPOCH demo: full year through 4 seasons, named deer/foxes/owls/beavers grow up and pass on, beaver dam built across the year, sapling grows over multiple year reseeds — Pixar-natural-history-cozy and persistent across Twitch viewing sessions.
What this is
A 3D recreation of one year in a temperate forest ecosystem, built as a continuous autoplay loop where every reseed advances the year instead of restarting it. Eight sub-locations sit on one map — meadow clearing, deep forest interior, riverbank with beaver lodge, owl tree, fox den, woodpecker snag, forest pond, hilltop overlook — and 12 era bands progress from Early Spring (April) through Mid Summer, Autumn, Deep Winter, and Thaw (March). Sky, fog, grass tint, and leaf color all lerp through four full season palettes per frame. Snow falls in winter, leaves drift in autumn, pollen swirls in spring, fireflies appear at summer dusk. Fourteen named cast — Doe Hazel and her fawn Sprig, Buck Cinder and rival Wren, vixen Rua and her kits Ember and Scamp, Owl Octavia, Beaver pair Splash and Otter, Raccoon Bandit, Woodpecker Tap, Robin Sky, Squirrel Acorn — share the woodland with seventy-eight instanced background animals and a forty-four-name pool that surfaces in the chyron rotation.
The forest remembers. localStorage saves every named animal's age and family between reseeds. After ten minutes the world advances to Year 2: Sprig is a yearling. After another ten minutes, Sprig is an adult and has her own fawn. The beaver dam piles up incrementally across the year. The sapling planted in Year 1 grows visibly taller in Year 5.
You don't play it. You watch it. And it remembers you watching.
Why this is mind-blowing
Most demos forget you. This one doesn't. Open it once and you see a meadow on a spring morning. Come back tomorrow night and Hazel is older, the fawn she had has her own fawn now, the beaver dam is finally finished, and the sapling you saw planted is now a real tree casting real shadow. Reseed every ten minutes is the clock of the world — a Twitch viewer leaving the stream on overnight gets a multi-year time-lapse of one woodland ecosystem with the same named cast aging through it. The chyron narrates cross-system: a deer fawn taking first steps in the meadow while across the forest a buck spars with a rival is one event in one frame, the way nature documentaries cut. Twenty director cameras are hint-filtered to the active season — winter cameras dominate the snow act, owl cameras the dusk, the hilltop overlooks the autumn storm. It's the cozy wildlife stream you'd actually leave on overnight to find aged the next morning.
Prompt
Build a single-file HTML page that recreates "one year in a temperate forest ecosystem" as a continuous 3D autoplay world. Spring → Summer → Fall → Winter — named animals are born, grow, mate, raise young, age, and pass on. The forest itself remembers them across reseeds. Cozy nature documentary on Twitch.
Hard constraints:
- One HTML file, < 200KB.
- three.js r0.160.0 from unpkg, IIFE, strict mode, full disposable cleanup, reseed every ~10 min that ADVANCES the year (year 2 of 5 etc) instead of resetting.
- First body line: <!-- ROUND16_EPOCH v1 -->
- localStorage memory under key `forest_year_memory_v1` — 8 named animals with species + age + family + state. On reseed, babies become juveniles, juveniles become adults, elders die offscreen, new fawns appear with names referencing parents.
- Generational aging — fawn → yearling → adult → elder visible mesh size + antler growth in real time.
- Visible structural change — beaver dam built across 4 seasons (sticks pile up gradually). Tree falls in autumn storm. Tree grows from sapling over multi-year reseeds.
- 6+ sub-locations: meadow clearing, deep forest interior, riverbank with beaver lodge, owl tree, fox den, woodpecker snag, forest pond, hilltop overlook.
- Mini-map HUD with season tint + active hotspot.
- 100+ named animals total: 14 featured cast (Doe Hazel + fawn Sprig, Buck Cinder, vixen Rua + kits Ember & Scamp, Owl Octavia, Beaver pair Splash & Otter, Raccoon Bandit, Woodpecker Tap, Robin Sky, Squirrel Acorn) + 78 InstancedMesh background animals + 44-name pool for chyron rotation.
- 18+ director cameras with season-hint filtering.
- Chyron with cross-system narration: "Spring 14 — Hazel's fawn Sprig takes first steps. Across the meadow, Cinder spars with rival buck Wren."
- Particles: snow in winter, leaf-drift in autumn, pollen in spring, fireflies in summer evening.
- Generation counter HUD "YEAR 3 of 5 — GENERATION 2".
Tone: nature documentary cozy. Predation handled implicitly. No on-screen violence. Bambi vibes. The vibe is awe at the passage of time, not blood.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- How to compress a full year of an ecosystem into 10 minutes by lerping sky/fog/grass/leaf palettes through 4 season presets per frame
- How to use localStorage to give a Twitch demo persistent memory across reseeds — fawns become elders the same way they would in a real wildlife cam over a year
- How to build a single demo where structural changes (beaver dam piling up, sapling growing, tree falling) accumulate visibly across multi-day Twitch viewing