Wonderlandia — open-to-close day at a 3D theme park with 300 guests, parade, and night fireworks
A 3D mega-world: 9 sub-locations (gate plaza, Main Street, castle hub, carousel, coaster, Sky Wheel, haunted mansion, food court, meet pavilions), 300 InstancedMesh guests, 6 named mascots, 7-act open-to-close day, 600-particle fireworks finale.
Built with:
three.js r0.160 (single file)CatmullRomCurve3 coaster track + 6 banking carsInstancedMesh crowd of 300 with per-instance color
Prompt
Build a single-file HTML page that recreates "open-to-close at a magical theme park called Wonderlandia" as a continuous 3D autoplay world I could put on Twitch and have viewers stay for hours.
Hard constraints:
- One HTML file, < 200KB.
- three.js r0.160.0 from unpkg, IIFE, strict mode, full disposable cleanup, reseed every ~10 min with a "GOODNIGHT WONDERLANDIA — Tomorrow's magic in just hours" transition card.
- First body line: <!-- ROUND15_MEGA v1 -->
- 9 spatial sub-locations in one three.js scene: entrance gate plaza, Main Street, hub plaza with castle + lagoon, carousel, roller coaster (full closed loop), Sky Wheel ferris, haunted mansion, food court (5 stalls), character meet pavilions.
- Coaster must use CatmullRomCurve3 with 6 cars that bank into the curves.
- Sky Wheel must have 10 counter-rotating cabins (so the cabins stay upright).
- Mini-map canvas in HUD showing all locations + live crowd dots.
- 100+ named characters: 6 named mascots (Wondra Bear, Captain Spark, Princess Lila, Fyx the Dragon, KEW-9 Robot, Mortimer Ghost) with waving arms, plus a name pool that combines 70 first × 40 last names for full-cast lower-thirds, plus 10 featured cast/family stories (the Henderson family, Officer Reyes, etc).
- InstancedMesh crowd of 300 capsule guests wandering between 9 anchor points with per-instance color.
- 7-act 600s cycle: Rope Drop → Morning → Noon Parade (4 floats on Main Street) → Afternoon Heat (lost-child event with strobe banner + reunite) → Golden Hour → Night Fireworks → Park Close.
- Sky lerps Dawn → Day → Noon → Afternoon → Sunset → Night palettes; stars fade in; lamps and castle PointLights ignite at dusk.
- Fireworks: 600-particle Points cloud with gravity + per-color RGB fade, bursts every ~1.6s during the night act.
- 16 director cameras: coaster onride, ferris cabin POV, carousel orbit, sunset pan, and more — bias-pooled per act, switching every 6-11s.
- UI: logo, LIVE badge, park clock + act, ride status (6 attractions with live waits + DOWN states), park stats (guests, churros sold, photos, smiles, seed), camera ID, mini-map, PA chyron, scrolling ticker, lost-child strobe alert, "WHO IS" lower-third, coming-up countdown.
Tone: warm, family-friendly, cozy. The kind of stream people put on background while they cook dinner.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- How to build a real coaster (CatmullRomCurve3 + cars that bank into curves) and a real ferris wheel (counter-rotating cabins) in a single inline script under 50KB
- How to schedule 600 fireworks particles + lamp ignition + sky lerp into the same 7-act day cycle without dropping frames
- How to fake 100+ named characters using a 70 × 40 name pool + InstancedMesh crowd of 300 + 6 named mascots with featured-cast lower-thirds