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.
What this is
A whole magical theme park — Wonderlandia — playing out in real time from rope drop to park close. Nine sub-locations sit in one three.js scene: an entrance gate plaza, Main Street, a hub plaza with a castle and lagoon, a carousel, a full roller coaster on a CatmullRomCurve3 track with six banking cars, a Sky Wheel ferris with ten counter-rotating cabins, a haunted mansion, a food court with five stalls, and character meet-and-greet pavilions. Three hundred InstancedMesh guests wander between anchors, six named mascots (Wondra Bear, Captain Spark, Princess Lila, Fyx the Dragon, KEW-9 Robot, Mortimer Ghost) wave at kids, a name pool of 70 × 40 first-and-last combos generates over a hundred named visitors and ten featured cast stories like the Henderson family and Officer Reyes. Seven acts run on a ten-minute cycle — Rope Drop, Morning, Noon Parade with four floats, Afternoon Heat with a lost-child reunite event, Golden Hour, Night Fireworks with 600 particles, Park Close — before the world reseeds with a "GOODNIGHT WONDERLANDIA" transition card.
You don't play it. You watch it.
Why this is mind-blowing
The park feels alive because every system runs on its own clock. The coaster cars bank into the curves on a real spline track. The ferris wheel cabins stay upright via counter-rotation. The crowd of three hundred capsule guests routes between nine anchors with per-instance colors so it never looks like a uniform mob. Every act recolors the sky, ignites a different set of lights, and biases the camera pool to whichever attraction is the headline of that hour: parade cameras dominate at noon, lost-child reunite cameras during the afternoon strobe banner, fireworks pyro-cams during the night finale. The HUD shows live wait times for six attractions (with random DOWN states), a churro counter, a photo counter, and a smile counter that ticks up all day. Reseed every ten minutes with a goodnight card and a fresh seed. It's the cozy theme-park stream you didn't know you wanted to leave on overnight.
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