Skip to content
Devlog

Fire and smoke, picked from comparison videos

A 40 m blast in the city, with fire at its base and a dark smoke column rising over the buildings, October 8

The first pass, October 2

On October 1 we wanted explosions closer to Just Cause, dynamic without the full Hollywood gasoline fireball. By the morning of October 2, in Low Power Mode, the explosions had more presence and glowing embers, but they lacked the roiling, darker smoke and richness of real ones. Four Just Cause stills became the reference.

The first version staged the blast. A white-hot core bursts out and is gone in about a second. Billows follow and burn down to near-black soot, and a big blast adds a dark column that rises for 5 to 10 s. Noise eats the edge of each puff. That version was still too uniform and did not look alive. The next change made the billows arrive unevenly over half a second and added small hot pops inside the cloud. The puff count stayed the same, and in the worst case, twenty 40 m charges with the camera inside the cloud, the GPU’s 95th-percentile time (the time 95% of frames beat) over the first two seconds went from 30.5 to 31.0 ms.

Five problems, October 5

Three days later we listed five problems with the look of a big blast, for later polish work backed by more research. The experiments for them were kept out of the main repository at first.

  1. Make it rise: younger, hotter smoke climbing faster, a column drifting with the wind, a mushroom cap.
  2. Break up the sphere.
  3. Put the detail on the edges.
  4. Fix or cut the ground haze.
  5. Shrink the fire to a few flickering pockets low in the cloud.

A research pass on October 7 tied each problem to the code. Fire puffs topped out at 0.36 to 1.7 m/s and dust puffs at 0.125 m/s. In a 40 m blast the puffs gained 14 to 20 m in ten seconds inside a cloud about 100 m wide, which makes a heap. Every direction of the burst drew from the same distribution, which is why the silhouette was a sphere. The ground haze had no single source, since eight different emitters left dust at street level. Every billow burned for the first 35% of its life, which is where the orange across the cloud came from.

Comparing by video, October 8

Each change was built behind a switch that drew the previous look, and none of them touched what the simulation does. To compare, one 40 m blast from the October 7 play session was replayed twice from the same camera, once with the old look and once with the change, and the two clips were put side by side. The trial picked on October 8 had smoke that rises with its heat, a burst of three to six lobes, edges that stay crisp while each puff erodes into islands, and fire that burns for 15% of a billow’s life instead of 35%.

Small blasts rose too fast. They now rise at half speed up to a 10 m fireball, and at full speed from 24 m. Fireballs also lingered after large explosions. The fire pockets sat at the blast’s own height, rose with the cloud and each carried a small orange light. On a 40 m charge set off 24 m up, they hung over the street for up to 21 s. Pockets now burn on the ground under the blast and stay put.

Smoke made of balls

On the morning of October 8 the smoke was still made of balls of uniform shape, and the balls faded out in place without spreading. We wanted to avoid a whole new particle system and to keep the old texture behind a switch for comparison. Two more looks followed, each behind its own switch.

  • Lumps, from a second research pass. A coarse extra layer of noise pulls each puff’s outline in by up to 38%, so each has two to four lobes. Each puff gets its own grain, stretch and drag, and neighbors share a swirl that parts the cloud into lumps and wisps.
  • A mushroom cap, from the first research pass. The cap answered the first problem. Middle puffs rise faster than the edges, and the edges are pushed out and then down. The research found that the flow inside a rising vortex ring has that shape. A fireball 15 m or more across now registers its cloud, and its rising puffs follow that flow.

What we picked, October 9

On October 9 the cap and the lumps became the default. The table shows the median GPU time over a blast’s first two seconds in one test scene, two runs of each look at 2880 × 1800 in Low Power Mode. The cap was not part of this measurement.

Look GPU time, blast’s first 2 s
Before the October 8 pick 5.3 to 5.5 ms
October 8 pick 6.0 ms
October 8 pick with lumps 5.9 to 6.2 ms

We added smoke shadows so that a big dust cloud darkens the street and buildings beside it. They left odd trapezoids on some buildings. They are off for now, and the fix is filed for later.

Provenance

How this post was made

Drafted by
A Claude Code session in the trilithon.games repository, October 10, 2026, working from the game's changelog, docs and tracker.
What it did
Drafted this post from the game's changelog, the fire and smoke research notes and the dev journal, and checked each number against them.
Reviewed by
Alex van Rossum,

On the roadmap: Trees, fire and smoke

Linear MIP2-387, MIP2-473, MIP2-536, MIP2-657, MIP2-667, MIP2-675