Each particle spawns at the base with an upward velocity scaled by the flame-intensity slider (a stand-in for buoyant acceleration from hot, low-density combustion gas). As a particle ages, its normalized life t = age / maxAge drives three things at once: a color lerp across a blackbody-like gradient (white-hot → yellow → orange → red → smoky grey), a size envelope that grows then shrinks, and a horizontal turbulence term sin(elapsed·speed + phase)·amplitude·t that grows with height, matching how a real flame's core stays narrow near the wick and widens/flickers higher up.
- Flame height — the current highest live fire-particle position, in simulated metres.
- Base temp — the temperature assigned to freshly spawned particles on the blackbody-like color scale (≈1600 K white-hot core).
- Wind drift — adds a constant horizontal velocity to every particle, bending the whole plume like a draft.
- Smoke layer — a sparser, slower, larger-particle system spawned above the flame tip once particles finish burning.