Fantasy Dynasty 300 Years — castle witnesses 3 royal houses rise and fall
A 3D EPOCH demo: 300 sim-years across 3 royal houses (Ashvale → Brennan → Caelvaron), wizard tower goes from new construction to glowing apprentice's tower to ruined keep, banners change, castle stones weather from white to mossy across 18 era stamps.
What this is
A 3D recreation of 300 years of a fantasy dynasty across three royal houses, built as a continuous autoplay loop where the castle itself is the protagonist. Nine sub-locations sit on one keep: throne dais, great hall, courtyard, wizard tower, chapel, training yard, royal gardens, kitchens, dungeons. The castle starts at Year 1 as a simple keep, gains curtain walls at Year 14, a great hall at Year 23, the wizard tower at Year 47, and a chapel at Year 62. Stones weather from white to grey to mossy as the centuries roll. Banners drop and re-raise at Year 89 (Ashvale falls, Brennan ascends, banners go red → green) and Year 245 (Brennan ends, Caelvaron usurps, banners go green → purple). The wizard tower glows bright through court wizard Greylock's era, dims under his apprentice Vela, goes dark after, and at Year 268 visibly ruins — the roof falls, rubble appears, the body shortens. Nineteen director cameras cut with story-biased weighting: tournament cameras dominate Years 35-70 and 140-160, wizard tower cameras dominate Years 47-172, chapel and dungeon cameras dominate the late game.
The dynasty remembers. localStorage saves nine named royals across three houses (King Aldric I, Queen Elenora, Heir Theodric — King Marcellus, Queen Ysolde, Heir Lyric, Princess Mira — King Vorrik, Queen Amalia) plus eighteen featured cast (court wizard Greylock, apprentice Vela inheriting his robes, knights, jesters, advisors, bards, traitors, foreign envoys, the Bastard). After ten minutes the world advances another 300 years and the next dynasty begins.
You don't play it. You watch it. And it remembers.
Why this is mind-blowing
Princess Lyric is an unborn name in the cast list at Year 30. By Year 47 she's a child at the courtyard tournament. By Year 140 she's a queen in the throne room — the cameras cut to her sitting on the dais where her father once sat. By Year 200 she's an elder advising her grandson. By Year 245 she's dead and the chyron prints "The Crown passes from Brennan to Caelvaron — but Lyric's grand-niece bears her name still." That's one named character you can follow across an entire reseed cycle. Multiply that by nine royals, eighteen featured cast, and a chyron with fifty-two cross-system events and you've got a Game-of-Thrones-cozy timeline with the slow weight of three centuries that actually fits in a single Twitch stream session. The wizard tower ruining at Year 268 is the gut punch — a real falling-roof animation, a real rubble pile, then dark windows the rest of the loop. It's the cozy fantasy stream you'd put on overnight to find the dynasty fallen the next morning.
Prompt
Build a single-file HTML page that recreates "300 years of a fantasy dynasty across 3 royal houses" as a continuous 3D autoplay world. The castle itself is the protagonist — wizard tower goes from new construction to glowing tower to ruined keep, banners change, stones weather. Game-of-Thrones cozy 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 advancing to next 300-year era.
- First body line: <!-- ROUND16_EPOCH v1 -->
- localStorage memory under key `dynasty_memory_v1` — 9 named royals across 3 houses, era counter, royal aging state, eras_completed, last_event; on reseed advance generations.
- Generational aging: at least one named noble starts as a child, becomes king, dies an elder. Cast list shows lifecycle: unborn → child → king → elder → dead.
- Visible structural change: castle keep + curtain walls (year 14) → great hall (year 23) → wizard tower (year 47) → chapel (year 62) → wizard tower visibly RUINS at year 268 (roof falls, rubble appears, body shortens). Castle stones weather white → grey → mossy across centuries.
- Banners drop and re-raise on house transitions at year 89 and year 245, with full color swap (red → green → purple).
- 7+ sub-locations: throne dais, great hall, courtyard, wizard tower, chapel, training yard, royal gardens, kitchens, dungeons.
- Mini-map of the castle complex + active hotspot.
- 100+ named characters: 9 royals across 3 houses + 18 featured cast (court wizard Greylock + apprentice Vela inheriting his robes, knights, jesters, advisors, bards, traitors, foreign envoys, the Bastard) + 60 InstancedMesh courtiers/peasants.
- 18+ director cameras with story-biased weighting (wizard tower era 47-172, tournament cameras 35-70 & 140-160, banner-change cameras 89-92, chapel/dungeon late-game).
- 52-event chyron with cross-system narration: "Year 47 — Princess Lyric born to Brennan. Year 47 — Old wizard Greylock dies in his tower; new apprentice Vela inherits robes."
Tone: Game of Thrones cozy. No graphic violence. Battles offscreen. Beheadings handled as offscreen "the executioner attends his work". The vibe is dynastic gossip and the slow weight of time.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- How to weather a castle visibly across 300 sim-years by lerping stone color from white to mossy and gating moss instance density on a year-progress variable
- How to use a single building (the wizard tower) as a narrative spine — bright window during Greylock's era, dimmer under Vela, dark after, ruined at year 268
- How to script 52 chyron events with cross-system narration so the same year references the throne room AND the wizard tower AND the courtyard tournament — making 300 years feel like one continuous story