The World of Pyrotechnics

I have been watching Royal Institution videos on fireworks for about a year, and reading about pyrotechnic effects for most of this past winter. It started with one video on the chemistry of colored flames, which I put on while doing something else and became immediately hooked. I have watched nearly every firework video the Royal Institution has published. At some point watching stopped being enough and I started reading, working through specific effects, where they came from, how the chemistry behind each one differs from the next. The kind of evening where you sit down to read about one thing and look up two hours later having read about twelve others. The Royal Institution has a solid primer on most of this but I kept going past that, into competition records and shell design papers and manufacturer histories. It took over my winter in a way I didn't plan for.


China

China is where fireworks started, and it is still where most of them come from.

Gunpowder was discovered in China around the 9th century, most likely by accident, by Taoist alchemists experimenting with charcoal, sulfur, and potassium nitrate. The earliest use was noise - bamboo tubes packed with the mixture and thrown into fires to produce a crack believed to drive off evil spirits. By the Song Dynasty (960-1279) the technology had developed into aerial shells, choreographed displays, and metal salts added deliberately for color. European pyrotechnists reached comparable capability in the 14th and 15th centuries, working from techniques China had already been refining for hundreds of years (Needham, 1986).

China produces around 90% of the world's consumer fireworks today. The city of Liuyang in Hunan Province has been manufacturing them continuously for over 1,400 years and still accounts for roughly 60% of global export volume (Liuyang Fireworks Association, 2023). The largest single firework shell ever detonated weighed over 2,700 pounds and went off in Colorado in 2020, built by a small team of American enthusiasts rather than a major manufacturer (Guinness World Records, 2020).

Share of global fireworks production
──────────────────────────────────────────────────
China (total)    ████████████████████████   ~90%
Liuyang alone    ████████████████           ~60%
Rest of world    ████                       ~10%
──────────────────────────────────────────────────

The demand side is a clean seasonal structure. Chinese New Year, Diwali, Fourth of July, and New Year's Eve create four peaks that don't overlap. Inter-peak intervals are long enough that production ramps, ships, and recovers without the peaks interfering with each other. As forecasting problems go, it's one of the cleaner ones.


How the colors are made

A firework shell contains what pyrotechnists call stars — small compressed pellets of metal salt, oxidizer, and fuel. When the shell bursts and ignites those stars at altitude, the metal atoms absorb combustion energy and their electrons jump to higher energy states. As the electrons fall back to ground state, they release photons at wavelengths specific to each element (Butler, 2013). These wavelengths don't vary with temperature or altitude in any way that matters visually.

Strontium emits red at 605-640 nm. Barium emits green at 514-524 nm. Copper emits blue at 428-470 nm. Sodium emits yellow-orange at exactly 589 nm, a doublet so precise that spectroscopists use it as a calibration reference.

The mapping from compound to color is fixed and deterministic (Lancaster, 1998). Each color in the visual output corresponds to exactly one compound in the shell. This is one-hot encoding happening in chemistry. If you photographed a burst and wanted to predict what was in the composition, the color information alone would get you most of the way there.

Purple is the edge case. There is no single compound that naturally emits purple. To produce it you combine strontium and copper stars in the same shell, and what you see is the additive result of two independent emission sources. Treating it as atomic in any downstream analysis would be a mistake.


The effects

This is the part that took over my winter. Each named effect is a different engineering solution to the same basic problem — what do you want a cloud of burning stars to do at 200 meters?

Peony is the workhorse. A spherical burst with no trail on the stars. Most general-purpose shows are heavily peonies. They're aesthetically clean, technically straightforward, and read clearly at distance. Close to 70% of shells in a typical display are peonies or a variant.

Chrysanthemum is a peony where the stars leave a persistent trail. The trail comes from adding dextrin, a starch compound, to the star composition. Dextrin burns slower than the main fuel, keeping each star glowing longer. Visually it reads denser than a peony because you see both the current star position and where it has been.

Kamuro is a Japanese effect named after a traditional samurai hairstyle, a ball shape with drooping strands. The stars are silver-white titanium, which burns slowly enough that gravity pulls them downward before they extinguish. The droop angle depends on the titanium particle size in the composition. Larger particles burn slower and droop further. It is one of the cleaner examples of deliberately using gravity as a design variable.

Crossette is common in Italian shows. Each star in the shell contains a small internal charge. When the outer composition burns down to a certain depth, the inner charge fires and splits the star into four sub-stars at 90 degrees to each other. A full crossette shell with 60 or 70 stars all splitting simultaneously produces a dense fracturing pattern across the whole burst.

Ring shells are technically demanding. The stars have to be packed in a ring-shaped layer inside the casing, and the burst charge has to expand the ring outward in a single plane without distorting the geometry. A perfect ring is flat and symmetric. Most rings have some tilt or gap from inconsistencies in the packing. Japanese competition judges treat a clean ring as a showcase technique, and it is judged accordingly.

Palm fires a single thick comet that rises visibly, then at peak altitude a secondary charge sends multiple slow burning stars outward and downward. The drooping of the secondary stars produces the palm tree silhouette.

Willow uses silver stars with a slow-burn composition. The stars travel outward, then slow and hang, then fall while still burning. It works because of precise control over burn rate — too fast and the stars extinguish before drooping, too slow and they reach the ground still lit.

Strobe stars don't burn continuously. They flash at a fixed rate because the aluminum particle size in the composition creates a cyclic combustion process where each layer of particles takes slightly too long to ignite the next, causing a brief interruption. The flash rate is controlled by varying particle size during manufacture. I hadn't thought about particle size as a design variable before reading about this.

Dragon eggs are crackle stars. The crackling comes from bismuth trioxide in the composition, which creates a cascade of micro-detonations as it burns. This is one of the few effects where acoustic output is the primary design objective rather than visual.

Salute shells contain no color composition. The shell bursts with a single loud crack, over 180 dB at close range. Used as punctuation in a display. Several cultures use salute strings rather than colored shells for ceremonies where noise, not light, is the tradition.


Around the world

Japan treats fireworks as a competitive art form. The Omagari National Fireworks Competition in Akita Prefecture is the most prestigious in the country. Judges score on technical precision, originality, and aesthetic quality, specifically color purity, spherical symmetry, and consistency of star ignition timing across the whole burst (Omagari Fireworks Association, 2023). Subjective criteria applied with technical rigor. The Nagaoka festival fires a three-part phoenix effect every year as a memorial for the 1945 firebombing of the city. The three sequential bursts represent the city rising (Nagaoka City, 2023).

Italy's pyrotechnic culture runs on proprietary formulas maintained across generations. The Grucci family, based in New York but of Italian origin, has kept their core star composition confidential for eight generations (Plimpton, 1984). European competition displays favour crossettes, rings, and multi-break shells, which are shells designed to burst twice at different altitudes from a single launch (Werrett, 2010).

Portugal was the country I did not expect to spend much time reading about. The Santos festival in Lisbon runs simultaneous displays across the city for weeks. The Macau International Fireworks Display Contest, held annually over the Pearl River, has been running since 1989 and draws entries from 15 to 20 countries each year. The judging is similar to Omagari — technical execution and burst geometry (Macau Government Tourism Office, 2024).

Dubai holds multiple world records and uses GPS-synchronized electric igniters for sub-millisecond precision across displays distributed over kilometers. Its New Year's Eve 2013 display fired 479,651 shells in six minutes, still the record for the fastest rate ever fired (Guinness World Records, 2016). At that scale, manually timing fuses isn't feasible. Every shell fires from a computer sending synchronized trigger signals to electric matches.


Day fireworks

Most fireworks are invisible in daylight. Not because they don't fire, but because colored light emission is washed out by the sun. A strontium red burst that reads clearly at night is lost against a bright sky.

Day fireworks are a different engineering problem. Smoke shells use sublimable organic dyes, typically Rhodamine B for pink-red or auramine for yellow, that vaporize rather than burn (Lancaster, 1998). The smoke scatters light rather than emitting it, which is why it stays visible in daylight. Color intensity depends on dye concentration and particle size in the smoke cloud, not on electron transitions.

Crackle and dragon egg effects translate to daylight because they're primarily acoustic. Competition programs sometimes use daytime crackle sequences for exactly this reason.

Japan has "hirugabi," daytime fireworks, as a formal tradition. Specially designed white smoke shells create patterns visible against a blue sky, sometimes accompanied by colored paper or tissue that floats down. The aesthetic is explicitly aimed at form rather than color.


150 effects and weighted selection

Real shows are not uniformly random. A show that fired every possible effect with equal probability would be incoherent. There is a grammar to how displays are structured — the common effects are the substance, and the specialty effects are the punctuation.

The distribution follows something close to a power law. A handful of effects account for most of what fires. Peony, chrysanthemum, and comet variants are the high-frequency terms. Kamuro, crossette, and ring appear at medium frequency. Strobe, spider, nishiki, and multi-break shells are low-frequency, used at specific moments in a show.

My simulation has 161 named effects. Each has an assigned weight that controls how likely it is to appear in sustained-fire mode. The weights are set partly by reference to what appears most often in competition show recordings, and partly by what reads well visually at different firing densities. High-density fire needs simpler effects or the display becomes illegible. Low-density modes can support more intricate effects because each burst has visual space to resolve.

The timing between launches in sustained mode uses a Poisson process, which produces realistic clustering — some bursts close together, some intervals long, no regular spacing. Real shows have this property, partly from choreography and partly from the inherent variation in fuse timing across a mortar bank.


The simulation

The project below started as a browser based particle system and became something bigger than I planned. The day/night mode changes the ambient light level, shifts the background, and redistributes the effect weights. Some effects are exclusive to night mode. Some are exclusive to day mode, which was the part I enjoyed building most, figuring out which mechanics still work when you take away the darkness.

The ⚙️ button opens a searchable effect picker with all 150 effects listed. You can also type any text into the input field and launch it as a named payload. That feature took longer than everything else combined.

Click the canvas to launch. Hold for sustained fire. Turn sound on from the top bar before starting. The audio is synthesized from scratch using the Web Audio API, no sample files. Getting the explosion decay right without samples meant a lot of iteration on the exponential envelope shape and the BiquadFilterNode cutoff frequencies. The final values are empirically tuned.


I spent more time on this than I expected, which is what tends to happen when the reading starts being more interesting and influences me to make a project. I also added some I just experiemented with, and looked cool... not sure if they even exist in the real life, but they exist here. I am still reading more about pyrotechnics here and there, and plan to add more unique ones to the project.


References