Music Festival — 4 Stages, 12 Bands, Forever Sunset
A 3D festival with 4 stages, 12 procedural bands, 260 dancers flowing between sets, headliner reveal, drop flashes, fireworks finale, and a full day-to-night sky.
Built with:
three.jsr160single-file
Prompt
Build a single-file three.js r0.160.0 demo styled as a live broadcast
from a 4-stage music festival from sound check to fireworks finale.
Constraints:
- Single HTML file < 200KB. three.js from unpkg only.
- First line of <body>: <!-- ROUND14_LIVING v1 -->.
- IIFE + strict mode. Disposables registry. Reseed every ~10 min.
- Autoplays forever.
3D world:
- 4 stages: Main East, Bass Dome West, Acoustic Grove North,
Comedy/Pop South. LED canvas screens, truss towers, beam cones,
moving lights, PA flags.
- Props: 4 food trucks, porta-potty row, VIP tent, ferris wheel
(spinning), inflatable art, 28 trees, 40 camp tents, 8 mountain
cones, 60 lit ground LEDs, lasers from Bass Dome, ambient sparkle.
Living world:
- 12 procedural bands (3 per stage) generated each cycle from a
`BAND_PARTS_A/B + BAND_SOLO` × 14-genre pool; staggered schedule.
- 260-instance InstancedMesh crowd with per-instance color, genre-
driven behaviors (mosh / rave / wave / bounce / sway), flow between
stages on band activation.
- Day → sunset → night sky/fog/light lerp, headliner reveal, drop
flash, encore, fireworks finale, weather change, invader alert,
wristband promo, and "FESTIVAL CLOSES — SEE YOU NEXT YEAR".
Cams: 8 director cams (Aerial, Main, Bass, Grove, Comedy, Crowd Flow,
Mosh Pit, Skycam) cycling every 6–11s with handheld jitter.
Broadcast UI: gradient logo, LIVE dot, cam label, sim clock, 4-stage
schedule grid (live/done states), crowd meters with bars, lower-third
now-playing, headliner countdown, anchor PIP messages, ticker, banner,
drop flash.
Reseed every ~10 min: full disposables cleanup + new scene with new
bands and new headliner.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- Sky color is a story device. The day → sunset → night lerp is half the watchability.
- Crowd flow between stages on band activation is what sells the world as alive — not the bands themselves.
- Genre-driven crowd behavior (mosh vs rave vs wave) is way cheaper than animating individual dancers.