Reference
Fire parameters
FireParams is the whole look and behaviour of the fire as one JSON-safe object. Presets set a subset, setParams merges into it, and the object is live, so a change shows on the next frame.
fire.params; // live: read every frame, mutate freely
fire.setParams({ smoke: 1.4 }); // merge (no easing)
fire.params.heatHaze = false;
DEFAULT_PARAMS; // the defaults, exported
fire.getParams().params; // a copy, as part of a full presetThere's no easing. A change applies on the next update() or render(), and the simulation carries it forward from there.
#Simulation
| Key | Default | Demo range | |
|---|---|---|---|
wind | 0 | −4 – 4 | Horizontal wind strength in m/s, growing with height |
windDirection | [1, 0, 0.18] | Wind direction. Only x and z are used | |
turbulence | 1 | 0 – 2 | Noise forcing, and vorticity confinement (1.2 + 2.4 × turbulence) |
cooling | 1 | 0.2 – 3 | Temperature decay multiplier |
expansion | 1 | 0 – 3 | Volume released by combustion. Bursts use it too |
buoyancy | 1 | 0 – 3 | Hot-gas lift multiplier |
smoke | 1 | 0 – 2.5 | Soot yield multiplier (emitters, bursts and burning) |
intensity | 1 | 0.2 – 3 | Flame emission multiplier. It also scales the fire light |
burnRate | 3.2 | Fuel consumption rate |
#Flame and smoke look
| Key | Default | |
|---|---|---|
emission | 3.2 | Base flame emission (× intensity) |
smokeDensity | 2.6 | Smoke extinction |
flameAbsorption | 1.5 | Flame extinction. Higher values make the cores opaque |
detail | 2.8 | Sub-grid detail noise displacement, in cells at 64 across (scaled with the grid) |
licks | 0.55 | Sub-grid flame-tongue strength |
flameThreshold | 0.34 | Temperature where gas starts to glow |
kelvinBase | 1100 | Kelvin at temperature 0 |
kelvinScale | 1800 | Kelvin per unit of sim temperature |
blueBase | 1 | Blue premixed-combustion glow at the burn zone |
smokeAlbedo | 0.62 | Single-scattering albedo of smoke |
smokeColor | '#ffffff' | Smoke tint (hex) |
#Lighting and shadowing
| Key | Default | |
|---|---|---|
shadowDensity | 2.2 | Extinction used for self-shadowing |
selfShadow | true | Smoke and flame self-shadowing in the light volume |
fireLight | true | Drive fireLight and fillLight from the GPU probe. false hides them |
fireLightIntensity | 1 | Fire light multiplier |
#Screen
| Key | Default | |
|---|---|---|
reflections | true | Wet-floor reflection rays (needs patchReflectiveMaterial on the floor) |
heatHaze | true | Refractive heat haze |
heatHazeStrength | 1 | |
embers | true | GPU ember particles |
emberBrightness | 5 | |
emberSize | 0.02 | Ember size in metres |
temporalBlend | 0.88 | History weight of the volume TAA (0 = off) |
temporalClip | 1.25 | Variance-clip width (σ) of the volume TAA |
bloomStrength | 0.3 | render() only |
bloomThreshold | 1.6 | render() only |
exposure | 1 | render() only |
#Per-tier constants
A few solver constants aren't params, because they depend on the advection scheme. QUALITY_LEVELS[tier].coolingScale (1 on low, 1.9 above) multiplies cooling, and smokeFade (0.1 on low, 0.6 above) sets the smoke dissipation per second. The MacCormack tiers diffuse less, so without this compensation their flames would burn taller and hotter than on low. See Quality levels.