Create a maximum-ambition Three.js experience of BEING the firework: the viewer rides the shell from inside the mortar - launch, the trembling climb through darkness with the city shrinking below, the heart-stop instant of the burst, and then the impossible part: the camera IS the bloom, hanging at the center of an expanding cathedral of ten thousand golden streamers as they unfurl, curve, crackle and die around you - then falling softly with the embers as the next shell whistles past on its way up. This must not be a fireworks display watched from a park, a particle demo, a single camera shake, or a menu of effects. It is the four most violent and beautiful seconds in entertainment, experienced from the only impossible seat - inside - and looped into an endless, varied, ecstatic show.
The goal is the visual impression of a billion sparks with real structure: every star of the shell an individual tracked ember with its own trail ribbon, gravity arc, flicker decay and smoke thread - so the bursts read as ARCHITECTURE the camera sits inside, not as screen-space sparkle. Achieve this with instanced ember-and-ribbon systems and staged burst choreography.
If you use Three.js, add an import map before the module script mapping "three" and "three/addons/" to the same pinned version, and import only via those names. Everything procedural; no external assets.
FIRST FRAME - IN THE TUBE
- Open in near-darkness inside the mortar tube: a circle of night sky directly above, the fuse glow flickering warm on the steel walls, faint crowd-glow bleeding over the tube lip - one full second of held breath. Then IGNITION: a floor of white-gold fire, the walls streak, and the camera is thrown upward into the night.
- The launch must be felt in pure image: violent initial acceleration easing into the climb, the lifted-charge flame roaring beneath (glancing down shows the sparking tail and the mortar flash receding), the harbor city unfolding below - promenade crowds as glittering dots, reflections on black water, other shells rising in the distance on glowing threads.
- The climb takes about three seconds and is tuned like music: the roar visually fading, the spin slowing, the apex approaching with a hush - the shell coasts, the city glitters far below, the stars are suddenly close - and the burst charge fires. No menus, titles or reveals; the show begins at ignition.
THE BURST - THE IMPOSSIBLE SEAT
- The instant of detonation is staged in three readable beats even at full speed: the FLASH (one frame of blinding gold filling everything); the SHOCK-SPHERE (a translucent pressure ring racing outward through the smoke); and the BLOOM - ten thousand tracked embers erupting radially past and around the camera, each dragging a luminous ribbon trail, the camera left floating at the exact center of an expanding golden sphere.
- Inside the bloom is the experience's reason to exist: streamers curving into gravity's comb in every direction, the sphere's inner surface glittering and breathing, crackle-stars popping in nested micro-bursts, smoke veils catching the light from within, the city visible THROUGH the falling curtain of gold below - hold this moment in gentle slow-motion (twenty seconds of dilated time for four real seconds of firework) so the viewer can turn and drink it.
- Ember physics must be honest and gorgeous: individual flicker frequencies, color temperature cooling from white-gold through amber to dying red, trails thinning, the whole constellation decelerating into the drift - and then the fall: the camera descends softly among the last embers and smoke threads as they wink out over the water.
THE SHOW - AN ENDLESS VARIED CYCLE
- Each launch is a different shell, cycling through the real pyrotechnic repertoire so no two rides repeat: golden willow (the classic long-droop cathedral); chrysanthemum (perfect dense sphere of color-shifting stars); palm (thick rising trunks bursting into fronds); crossette (every star splitting into four in a second generation of bursts AROUND the camera - the most spatially astonishing one); ring shell (a flat expanding halo the camera sits in the center of, like Saturn); strobe shell (the sphere blinking in synchronized silver); and a grand finale every several cycles - a triple-break shell whose three successive bursts nest inside each other with the camera at the heart of all three.
- Between rides, a two-beat breather: drifting down through smoke with the crowd-glow rising, the next mortar flash below, the whistle of the ascent beginning again - the loop must feel like a show with rhythm, not a repeated clip.
- The world below is a real scene, not a backdrop: a harbor festival - promenade and bridge crowds (instanced, upturned faces as warm dots), moored boats, a ferris wheel, the whole city strobing in each burst's light with correct flash-lag darkness between - and every previous shell's smoke lingering as slowly drifting strata the next launch climbs through.
DYNAMISM AS THE ENTIRE MEDIUM
- There is no idle state anywhere in the loop: tube-glow, launch violence, climb tremble, coast hush, triple-beat burst, bloom drift, ember death, smoke fall, next whistle - a continuous choreography where even the quietest beat (the apex hush) is motion. Camera work is part of the pyrotechnics: subtle spin during climb, the burst's pressure nudge, the fall's gentle sway - always smooth, never nauseating.
- Time dilation is the one hero control: a slider from real-time (violent, four seconds) to deep slow (the bloom as a full minute of navigable golden architecture) - at deep slow the viewer can FLY within the frozen-ish burst, moving among the streamers like a swimmer in a chandelier; this is the mode screenshots will live in.
EXPLORATION AND CONTROLS
- The ride runs itself from the first second (the default is the composed loop with free-look); a free-fly toggle unlocks full movement inside blooms; reset returns to the tube for a fresh launch.
- Presets: the tube; apex hush; bloom center; inside the crossette second generation; the ring-halo seat; below-the-willow looking up through the golden droop; the promenade crowd view for one full shell (the only outside seat, included for contrast).
- Compact controls only: time dilation, shell type (or auto-cycle), launch cadence, and photo mode.
PERFORMANCE
- Embers and ribbon trails fully instanced with lifetime pooling; burst choreography precomputed per shell type at load; the city as merged geometry with instanced crowd dots lit by a per-burst flash uniform; smoke as layered billboards.
- Quality selector reduces ember counts, trail lengths and smoke layers before ever sacrificing burst choreography, time-dilation smoothness or the launch sequence.
- Smooth on a modern laptop through the densest finale, devicePixelRatio clamped to 2. The outcome: everyone has watched ten thousand fireworks; this is the first one anyone has been.