Smoke Sim

Simulate smoke and gas motion in a 3D volume.

What it does

Configures an Eulerian gas simulation: smoke, steam or fire rising and dissipating through a 3D grid. Feed it a point cloud, where each point becomes a smoke emitter, or a sampled geometry, and it sets up the simulation grid, emitter behaviour, buoyancy and dissipation. The solve happens in Physics World, which this node's output must feed as its smoke input.

With Auto Domain on, the simulation grid fits itself to the emitters, with padding and extra headroom above for a rising plume. With it off, the domain is placed by hand with Domain Size and Domain Center. Enable Combustion and the same solver becomes a fire sim: fuel ignites past a threshold temperature, burns down over time, and produces heat and soot.

When to use it

ParameterTypeDefault
inputOneOf([CollectionOf(Points), CollectionOf(Geometry)])
resolutionNumber64
auto_domainBooleantrue
domain_sizeNumber200
domain_centerVec3(0, 0, 0)
emission_rateNumber1
emission_temperatureNumber500
emitter_radiusNumber5
buoyancyNumber1
smoke_weightNumber0.100
density_dissipationNumber0.950
temperature_dissipationNumber0.980
vorticity_strengthNumber0.300
pressure_iterationsNumber40
enable_combustionBooleanfalse
ignition_temperatureNumber1
burn_rateNumber0.500
heat_outputNumber2
soot_outputNumber1
cooling_rateNumber0.100
strengthNumber1

Gotchas

Domain Size and Domain Center apply only when Auto Domain is off. With Auto Domain on, the grid is fit from the emitter points each time and the manual values are ignored.

Combustion's Ignition Temperature, Burn Rate, Heat Output, Soot Output and Cooling Rate appear only once Enable Combustion is switched on.

Smoke Sim does not simulate on its own. Grid and solver settings are stamped onto the emitter points, which pass through. Wire its output into Physics World's smoke input; nothing rises until Physics World runs the solve.

If the plume looks too accurate and glassy, lower Pressure Iterations for a softer, cheaper solve, or push Vorticity Strength up for extra swirling detail.

Worked example

  1. Scatter points where the smoke should emit from, and feed them into Smoke Sim's input.

  2. Leave Auto Domain on so the grid fits the emitters automatically.

  3. Raise Emission Rate and Emission Temperature to push more hot gas in.

  4. Wire Smoke Sim's output into Physics World's smoke input to run the solve.

  5. For fire instead of smoke, enable Combustion and raise Heat Output.

See also

Fluid Sim · Physics World · Force Field · Distance fields & volumes