Smoke Simulation

Blender's new smoke simulation is based on the paper Wavelet Turbulence for Fluid Simulation and associated sample code, and has been implemented in Blender by Daniel Genrich and is currently maintained by Janne Karhu.

The simulator uses a volumetric fluid-based model, with the end results output as voxel grids. This voxel data is visualized interactively in Blender's 3D view using custom OpenGL shading, and can be rendered using the Voxel Data texture.

 

Inflow

Smoke is added to the simulation by particles. To add smoke, add a smoke system set to Flow to an object with a particle system. For each frame of the simulation, smoke with initial velocity will be added to the simulation by each particle inside the smoke domain.

Collision and Forces

Smoke can collide with mesh objects, using the 'Collision' option in smoke. Currently only static collision objects are supported.

Blender's force fields (such as wind or vortex fields) are also supported, modifying the smoke simulation as they do for other physics systems such as particles.

left: standard, right: high resolution (wavelet)

High Resolution

The High Resolution option lets you simulate at low resolution and then uses noise techniques to enhance the resolution without actually computing it. This allows animators to set up a low resolution simulation quickly and later add details without changing the overall fluid motion.

Various methods for this are available, including the default: Wavelet, which is an implementation of 'Wavelet Turbulence for Fluid Simulation'.