Houdini 16.5 Pyro

Pyro effects (smoke and flames)

On this page

See how to set up the viewport and desktop. We highly recommend you use the technical desktop (Windows ▸ Desktop ▸ Technical) so you have quick access to the tree view and details view.

How to

To...Do this

Create a smoke or pyro effect

  1. Select the geometry object you want to use as the source for the smoke/flames.

    Houdini can use any kind of geometry, including volumes, as sources for pyro.

  2. Click one of the tools on the Pyro FX shelf.

  3. The shelf tools create three separate sets of nodes and selects the solver DOP.

  4. Play forward to view the simulation.

Increase the maximum size of the smoke/fire container

By default, the maximum size the automatically resizing box mirrors the size of the Pyro/Smoke object. Select the object in the dynamics network, click the Properties tab and set the Size parameter.

Adjust resizing for fast-growing simulations

Increase the Padding parameter on Bounds tab of the resize_container Gas Resize Fluid Dynamic node to add extra space around the current size of the simulation to keep a fast-growing simulation from hitting the edges of the container before the resize node can resize it.


See how to navigate between networks for tips on navigating between the three networks quickly. You may want to pin parameter editor pane tabs for the pyro object and solver so you can access them quickly.

See Pyro look development for information on how to use the various parameters of the source, object, and solver to achieve different smoke and fire looks.

Pyro node networks

Network Important nodes

Inside the source object, the tools add surface nodes for creating the source volume.

Fluid source node

Converts the initial geometry into volumes (temperature and fuel) suitable for sourcing a pyro simulation. You can use the parameters on this node to control the noise on the source volume, among others.

See Fluid sourcing for more information.

In the DOP network, the tools sets up the dynamics nodes to create the pyro/smoke object, import the source from the geometry network, connect them to the Pyro solver, and make the pyro container resize automatically.

Pyro/Smoke object

Controls the 3D resolution of the smoke/fire object, the maximum size of the resizeable container (by default), and whether the container is open on each side, among others. It also has extensive controls for visualizing the contents of the object.

Pyro solver or Smoke solver (depending on the effect)

Controls the rules for how the simulation develops (such how much buoyancy is created by heat), noise, the shaping of flames, among others. It also has extensive controls to visualizing the forces created by the solver (such as shredding).

The tools will also create another object that imports the output of the simulation for object-level display and rendering.

DOP Import

One DOP Import node imports all fields for rendering, and another imports only fast display-related fields for display in the viewport.

Source geometry

See Fluid sourcing for more information.


  • Multifield visualizes heat (flame) and density (smoke).

  • The source adds temperature and fuel to the simulation.

  • Where fuel exists and the temperature is above a certain point, "burn" is created.

  • Burn creates heat (visible flames).

  • Burn inefficiency leaves a certain percentage of fuel behind after burning.

  • Gas released = expansion

  • Cooling rate, dissipation

  • Velocity = start velocity + temperature * buoyancy

  • Advection affects temperature, heat, density, fuel*

In Houdini, temperature = buoyancy, velocity = momentum

Temperature is one of the most important fields for running a simulation (together with Velocity) and controls to great extend how the sim behaves and looks. Although it isn’t often used for rendering and visualization, internally it drives many forces and shape operators (such as Buoyancy, Shredding and Dissipation).

When creating a fire sim, that control is extended to the combustion model. Temperature Diffusion and Cooling Rate act directly on the temperature field and offer great control over the simulation’s decay in speed and simulated detail.

Collision and expansion fields

The Smoke/Pyro solvers allow you to add collision fields (areas the smoke/fire will avoid) and expansion fields (areas that add outward velocity to the simulation).

These tools create the same SOP volume setup as the Pyro tools use for fuel sources, but instead of provided a fuel field to the solver, the provide a collision or expansion field.

To...Do this

Turn an object into a collision field

  1. Create a pyro effect.

  2. Select the geometry object you want the effect to collide with.

  3. In the Populate containers shelf tab, click Make Collision.

  4. Select the container and press (Enter).

An expansion field adds outward velocity to the simulation within the field. That velocity is then advected, creating continuous outward force. This can quickly blow up your simulation.

If you're making an explosion, that can be desirable, but if want something more subtle, you can try the following:

You can also use DOP forces to push smoke/fire around. However, the effect of the force will be dampened by the solver’s project non-divergence step. Because you set up the expansion field as a direct input to the solver, the solver knows to exclude the expansion field from the project non-divergence calculations.

How to use pyro to advect points of DOP geometry

You can use the fields of a pyro simulation to advect the points of DOP geometry.

  • Attach editable Geometry data to the smoke container.

    To create editable geometry, import geometry using a SOP Geometry DOP and copy it using a Copy Geometry DOP. Then use an Apply Data DOP to attach the geometry to the smoke object DOP. Set the data name of the copied geometry to Geometry.

  • Connect a Gas Advect to the Advection input of the pyro solver (the third green input). Set the Gas Advect’s Geometry parameter to the data name of the editable geometry (Geometry) Set the Velocity field to vel and the Collision field to collision.

Smoke solver vs. Pyro solver

Houdini includes two solvers for grid-based smoke/fire simulations. The Smoke solver implements the basic fluid simulation engine. It simulates basic smoke effects but does not simulate fire. The Pyro solver is built on top of the smoke solver and adds fire and more controls.

The high-level effects created by the tools on the Pyro FX shelf tab use the Pyro solver.

Temperature diffusion and viscosity are blurs

Temperature diffusion is a blur on the temperature field. Increasing it will blur the boundaries between high and low temperature areas, and increase the diffusion of temperature from a source out into the system.

Viscosity is a blur on the velocity field. Increasing it will blur velocity variations, such as shredding and vorticles (small pinwheel-type eddies). If you have a look you like but it has a little too much velocity noise, you can try adding a bit of viscosity to blur it out.

Because these controls blur the fields, high diffusion/viscosity values will decrease the temperature/velocity in the system, because you are averaging together the areas of high temperature/velocity (for example, near the source) with the surrounding (usually much larger) areas of inactive space.

Rendering Pyro effects

  • You may want to decrease the division size (that is, increase the resolution) of your containers before rendering.

  • Render Pyro effects using the micropolygon engine (Mantra render node > Properties tab > Render tab > Rendering Engine).

  • Set up your lights' shadow parameters (Light object > Shadow tab), set Shadow type to Depth Map Shadows, Pixel samples to 2×2, and Shadow Quality to 2.

  • To get more detail in the render, you can try decreasing the renderer’s Volume step size (Mantra render node > Properties tab > Sampling tab). This will not make a difference if the reason the render lacks detail is the pyro volume’s container is low resolution.


Getting Started

Next Steps