Skip to content

Real fire

Ishiaki edited this page Oct 11, 2026 · 1 revision

Real fire, and how the mod draws it

Written for 0.5.0 (2026-10-10), after the user said of the explosions' fire: "it's kind of just like a warm orange glow. It's not actual fire. Also, where the fire and smoke originate from isn't perfectly on the ground if it's on the ground. Also, if it's attached to the rocket, it's just above the rocket. It's not actually on the rocket." What real fuel fires and fireballs look like, how films and games draw fire, and what the mod now does.

What a real fire looks like

  • A flame is a thin sheet, not a cloud. The flame of a fuel fire is where the fuel's vapour meets the air and burns, a sheet a few millimetres thick, wrinkled and torn by the turmoil of the hot gas at every size; what glows yellow is soot heated in it (Glassman and Yetter, Combustion, 4th ed., 2008). So a fire is seen as sharp-edged tongues and folds with dark gaps between them, never as a soft glow; its edges are hard because the sheet is.
  • A pool fire has three parts. Low down a continuous flame, steady and brightest; above it an intermittent zone where the flames break into tongues that flicker and tear off as they rise; above that the plume of hot gas and smoke, in which nothing burns (McCaffrey, Purely buoyant diffusion flames: some experimental results, NBSIR 79-1910, NIST 1979: nvlpubs.nist.gov). Thermal pictures of large pool fires show the brightest radiance in the continuous flame, and in sooty fuels (heptane, kerosene) a second bright band where it gives way to the tongues, under a mushroom-shaped cap (Hayasaka, Pool flame structure using thermography, Fire Safety Science 4, 1994: iafss.org). The visible flame's mean height is about 0.235 Q^(2/5) - 1.02 D (Q in kW, D in m: Heskestad, Fire Safety Journal 1983), reaching into the tongues.
  • It breathes. A pool fire sheds a big burning eddy from its base at about 1.5 to 1.7 / square root of its width (in metres) times a second: ten times a second for a candle-sized pool, about once a second for a 2 m one (Malalasekera, Versteeg and Gilchrist 1996, 1.68 D^(-1/2); the review: Loughborough). The mod's ground fires have breathed so since 0.4 (see What the smoke does).
  • Its colour is its heat. Soot in a hydrocarbon flame radiates nearly as a black body (an emissivity close to one in a sooty fireball; less in a clean natural gas one: Lihou and Maund, IChemE Symposium 71, 1982, icheme.org), so its colour goes from a dull red at about 1000 K through orange to a yellow-white at about 1500 K, and its light in the colours the eye sees grows many times over in between (Planck's law: at 600 nm a black body at 1500 K is some three thousand times as bright as one at 1000 K). Hence the contrast of a real fire: blinding yellow-white where hottest, a deep red at the edges, nothing between the tongues. A rising fireball's surface has been measured at about 1100 degrees C (Journal of Fluid Mechanics).
  • A fireball is a surface of burning folds. It swells as a luminous, soot-black-bodied ball, its surface rolled into folds by the turmoil, lifts off as its hot shell becomes buoyant, and burns out by breaking up into smaller burning pockets (DNV's fireball model notes; the sooting and darkening from the edges in: see Real crash smoke).

How films and games draw it

  • Heat for colour, a steep step for the edge. Film tools draw fire from a simulated temperature: its colour and brightness from a black body's (Houdini's pyro shader: SideFX, blackbody), and its edge from how steeply the light comes on with the amount of flame: a soft ramp in from nothing gives a blurred glow, a clipped and steep one a crisp contour (SideFX forum, Redshift forum).
  • Real time. Games mostly play back fire simulated beforehand (EmberGen's flipbooks for Unity and Unreal: JangaFX), or move the fire as a whole on the processor and add its turmoil and flicker on the graphics card (Real-time fire, 2008). The mod does the second: its particles carry the fire as a whole, and the shader adds the flames.
  • Held in the right frame. A pattern that moves too fast between frames is smeared by temporal antialiasing; the engines' flames were made real on 2026-10-09 by holding their pattern in the nozzle's frame. A fire's flames move with the gas they burn in and lick upward through it at a couple of metres a second: slow enough to stay sharp.

What the mod does (0.5.0, 2026-10-10)

  • Flames, not a glow. A fire in the open (a fireball, a fuel fire on the ground, burning pieces) is drawn with a pattern of its own (firePattern in tools/shaderpack/volume.glsl): carried with the burning gas, as the smoke's billows are, rising through it at 1.8 m/s, stretched up a little, at a size that goes with the fire (a fifth of a fireball's radius, half that of a fire on the ground). Where the flame is thick it burns whole; where it thins, at its edge and the tops of its tongues, the pattern cuts it with a steep step into tongues with sharp edges, which flicker as they rise and tear off at their tips; brighter in the lumps of the pattern; and its light goes with its heat as the cube, so that its hottest parts blaze yellow-white and its edges are a dim deep red. Its cooler, thinner parts are dark with soot, once they have cooled (a young fireball is luminous all through). TestFire 1 draws it as before. (A first cut tore all but the thickest flame into tongues: the young fireball came out as smoke with a few bright patches in it, less like fire than the old glow. Most of the flame now burns whole.)

A 1-tonne fuel blast on open grass, each picture in a scene of its own: left the fire as before, right as it is now. From 70 m, 1.2 s and 2.2 s after it went off; from 35 m at 2.2 s and at 14 s, when only the fire it left on the ground burns. Bottom: a fire 0.6 m wide on the test rocket's hull, told as an engine's jet (left) and as something burning (right)

  • A fire on the ground stands as tall as a real one, on the ground. Its flames rise at a third of the speed McCaffrey measured for a fire's gas (1.9 Q^(1/5) m/s; the rest is the turmoil the shader draws) and stay hot until they have risen as high as Heskestad's height for a pool burning some 1.5 MW to the square metre (some 13 m for a fire 8 m across); the bits that become smoke stay hot as long, so its smoke rolls off the tips of its flames, not their foot. Until now its flames rose at a couple of metres a second and cooled within half a second: a fire 8 m across stood a metre or two high, a low warm glow on the ground. And the flame's foot stands on the ground: a puff lying on the ground used to be lifted clear of it by at least a cell of the grid, which in a grid made for a tall column of smoke is a metre or two, so that a fire floated its own height above the ground (and the smoke and dust coming off it with it); now every such puff keeps its foot on the ground, and a flame its densest part, what the grid makes of them below the ground going unseen (TestFoot 1, with Native off, shows the old way).
  • A fire on a ship stands on it. Something burning on a ship (an owner's Exhaust.kind = ExhaustKind.Burning: a burning wreck, a tank alight) is drawn as flames standing on the hull where it burns, over the width of the fire, licking up at the speed of its own rising gas and swept back when the ship moves; until now it was drawn as an engine's jet thrown from a point at sixty metres a second, a torch standing off the wreck. (Fragmentation's burning wreck also raises the place it gives by half the fire's size: see the report to it.)

Clone this wiki locally