Houdini 16.5 Pyro

Pyro look development

On this page

You should try reading how the Pyro solver works to understand the relationship between the different fields used by the solver. The speed or shape isn’t controlled through a single parameter but a combination of many parameters.

Before you begin


See pyro sourcing for information on how pyro networks use source geometry.

  • For more interesting fire/smoke, try a more interesting source geometry shape. For example, using a tube might give more interesting results than a sphere because of the vertical sides of the tube producing stacked fire/smoke.

  • In the pyro network, try pulsing the source: animate the Scale source volume parameter on the Source Volume DOP up and down.

  • On the Fluid source node in the source geometry network, use the parameters on the Noise tab to increase or decrease the amount of noise in the sourcing of the smoke/fire. For example, in the Noise ▸ Turbulence setting subtab, increase Amplitude to boost to create sharper blobs in the noise.

Container resolution

The resolution of the fluid container is controlled by the Division Scale parameter on the Smoke object node. Increase the division scale for a lower resolution simulation, or decrease it for a higher resolution simulation. Houdini’s pyro solver produces smoke/flames with the same general character regardless of resolution, so you can experiment quickly with looks at lower resolutions before moving to higher resolutions. You will not, of course, see details such as shredding and turbulence if they are smaller than the division size.

Main smoke and fire controls

  • For overall artistic control of flame height, use the Flame Height parameter (Pyro solver > Combustion tab > Flames tab).

  • The Buoyancy lift parameter (Pyro solver > Simulation tab) controls the lift applied at each step to the temperature field. Increasing or decreasing this will change the speed at which the temperature field rises.

  • Increasing or decreasing the amount of fuel in the simulation will change the size of the flames. On the source_fuel node, use the Scale Source Volume to scale the amount of fuel imported into the system from the source volume.

  • Turn down temperature dissipation (Pyro solver > Shape tab > Dissipation tab) to make the flames hotter, which by default will also make them rise a bit higher.

  • Use Timescale (Pyro solver > Simulation tab) to make the effect develop slower or faster overall (it changes how much advection happens at each time step).

External forces

In addition to the physical properties on the smoke object and pyro solver, can use standard DOP forces such as the Fan force and Drag force to control the simulation.

The parameters on the Advanced ▸ External forces tab of the pyro solver control how external forces affect the simulation. By default the pyro solver scales all forces by the values in the density field. Scaled forces is a list of forces that should be multiplied by the value of the density field. The default is *, meaning all forces are scaled by density. Absolute forces is a list of forces that should be applied to the simulation without scaling by density.


If external forces do not seem to affect your simulation, it may be because the Scaled forces parameter is * and your density field is empty, so the forces are being multiplied by 0. To make all forces apply to all fields, clear Scaled forces and set Absolute forces to *.

When you create a pyro effect using the shelf tools, they usually set the Scaled forces field on the created effect to * ^Gravity so gravity does not apply to the simulation. While technically unrealistic, it is usually much easier to simulate combustion and smoke effects without gravity.

Gas bombs

  • Turn on Advect fuel (Pyro solver > Combustion tab > Fuel tab). The Fuel speed is a scaling factor on how much of the velocity field should move the fuel. You can increase this to get a much faster/bigger explosion.

  • Play with the fuel source scaling (Source volume > Scale source volume parameter). Use keyframing to pulse the source, and/or pump a lot of fuel into the system at the start and then cut it off.

Adding noise only in certain areas

You can attach DOP nodes that modify velocity fields, such as Gas Turbulence, to the fourth ("Advection") input of the Pyro solver node. Most field-modifying nodes have some way to scale the effect by a mask field.

  1. Create a geometry object in the shape of the area you want to affect.

  2. On the Model shelf tab, use the Volume tool to convert the object into a fog volume object.

  3. In the DOP network, add a SOP Scalar Field node after the Pyro object.

    • Turn on Use SOP Dimensions.

    • Set the SOP path to the path of the fog volume object (for example /obj/mask_object). Make sure Use Object Transform is on.

    • Set the Data Name to something indicating the purpose of this field, for example NoiseMask.

    This attaches the fog volume as field data on the Pyro object with the given name.

  4. Create a Gas Turbulence node and connect it to the fourth ("Advection") input of the Pyro solver.

    • On the Bindings tab, set the Density Field to the name of the mask data, for example NoiseMask. The effect of the node is multiplied by the value of this field.

    • Use the controls on the Turbulence Settings tab to control the amount of turbulence added.

Shaping tips

  • All force DOPs work on pyro simulations. For example, you can use a Fan force to blow smoke around.

  • The first basis of an interesting effect is an interesting source (see above).

  • The parameters on the Pyro solver's Shape tab give you extensive control on how your effect develops. See the help on the Shape tab for information on using these controls.

  • Shredding is the main method for adding the kind of high-frequency details and licks typical of, say, a campfire. You can use the shredding controls (Pyro solver > Shape tab > Shredding tab) to control the amount of shredding detail. Turning shredding off gives an extremely smooth, laminar flame, possibly similar to a butane torch flame or perhaps a fire in space.

  • You should Turbulence (Pyro solver > Shape tab > Turbulence tab) to create large-scale swirling/churning motion, for example to add character to a fast-moving simulation, and rely on shredding to create smaller-scale high-frequency details.

  • The Temperature diffusion parameter (Pyro solver > Simulation tab) blurs the temperature field. Turning this down will make the temperature field sharper. This will increase the sharpness/frequency of effects such as shredding. Turning it up will make the flames/smoke smoother.

  • The Viscosity parameter (Pyro solver > Simulation tab) blurs the velocity field. Turning this up will give a smoother, more laminar flow to the flame/smoke. It will also tend to spread the flame/smoke’s motion out slightly (by blurring the default upwards movement).

  • Using sharpening (Pyro solver > Shape tab > Sharpness tab) with shredding tends to give too high frequency noise, creating a hash. However, if you've turned down shredding for some reason, you can add sharpening to add back detail.

Tips for interesting looks

  • For faster moving effects, increase the amount of energy in the system by increasing temperature (creating more temperature and/or decreasing cooling). You can make the effect rise faster by increasing buoyancy. You can also use the Time scale parameter on the Pyro solver to make the effect appear speeded up.

  • Pulse the fuel source on and off.

  • Try seeing what happens when you increase one parameter to a very large number, or crank up two parameters that normally "fight" each other (such as shredding and sharpening). Sometimes forcing the solver to cope with "insane" values creates interesting looks.

  • Vortex confinement Pyro solver > Shape tab > Confinement tab) tends to tear the velocity field up over time, but doesn’t look as good as shredding. Using shredding and vortex confinement at the same time will give a fractal hash. Confinement is off by default, but you can try adding a little confinement, perhaps using the control field ramp to add it at certain sizes.

  • Interesting smoke plume looks happen at the boundaries between the "layers" of high and low temperature and/or velocity. Increasing the differences in temperature and velocity between the source and the ambient space (for example, by setting high initial velocity on the source) can create interesting smoke plumes.

General tips

  • Try using takes to organize you explorations of pyro looks.

  • You can create pinned parameter editors for the Smoke object DOP and Pyro solver.

  • The Smoke object DOP has visualization options for different fields, and the Smoke solver and Pyro solver have visualization options for the shaping effects.

  • On the Smoke object in the dynamics network, click the Initial data tab. The default for Velocity sampling is "Faces". This gives more accurate collisions, but unless you will be colliding the smoke/fire with another dynamic object, set Velocity sampling to "Centers" for faster and more interesting pyro effects.

  • To get the exact temperature range of your effect, import the temperature field into a geometry network using the DOP Import Fields or DOP I/O surface node and turn on Compute Min/Max on the node. This creates primitive attributes on the field containing the minimum and maximum value of the field. You can then view the values of the attributes in the details pane.

  • You will sometimes hear different effects described as more laminar or more turbulent. Laminar or streamline flow is when fluid moves smoothly, with velocity vectors in parallel, with little or no disruption. Turbulent flow is when a fluid moves chaotically, with swirls, fluctuations, and disruptions. A mix between laminar and turbulent flow is sometimes called transitional flow.

  • By default pyro simulates motion without resistance, so for example smoke that doesn’t dissipate away will continue moving forever with its momentum. Add a Drag force DOP to the simulation to add resistance.

  • Increasing the Transparent Samples when rendering will help if you have a problem with too much noise.


Getting Started

Next Steps