On this page

Overview

The speed and emergent shape of a pyro simulation are controlled by a combination of many parameters. This page contains tips and tricks for effectively working with pyro tools and achieving different simulation looks.

Before you begin, the following help pages provide an in-depth explanation of pyro:

Visualization

Throughout the prototyping process, it is useful to examine the state of the simulation fields. The Smoke object has a vast array of visualization options for these fields. The help for the Scalar Field Visualization and Vector Field Visualization nodes provide more details about the various available options.

The most useful visualization mode is Multi Field, since it displays all of the volumes that would be seen when rendering. The help for Multi-Field Visualization contains through information about the parameters. The most important settings for affecting the look are outlined below.

Density Field

Used for smoke thickness. This should be set to density. To make the smoke appear thicker, increase the Density Scale.

Diffuse Field

Used to tint the smoke. For example, the Sparse Fireball shelf tool sets the Diffuse Field to density and the Diffuse Ramp to a constant color. As a result, the visualized smoke appears dark grey.

Emission Field

Used to emit light. This should be set to flame to ensure that the fiery parts of your simulation glow. Emission Scale controls the amount of emission. To get a sharper border for flames, enable Emit Range and set it to something narrow, such as 0.1-0.2.

Emission Color Field

Controls the color of the emitted light. This parameter should be set to temperature. In Physical Blackbody mode, the temperature values will get mapped to an emission color and intensity using the blackbody radiation model.

General workflow

Many parameters on the pyro solver have an effect on the simulation results. The solver’s help page contains a lot of useful information about its parameters. However, it’s easy to get overwhelmed with the sheer number of settings. It is best to break up the look development process into a sequence of tasks, each one concentrating on additional details that are unlikely to undo the effect of previous settings.

  1. Create the source geometry

  2. Set basic simulation parameters

  3. Set temperature and buoyancy parameters

  4. Set parameters related to the flame field

  5. Tune the shape operators

Each step of the above workflow focuses on a specific task, and subsequent steps have minimal effect on results achieved from previous stages. Therefore, the iteration process within each step is confined to a relatively small set of parameters, and iteration over the entire process is kept to a minimum.

Source Geometry

Source geometry has a large impact on the shape and behavior of newly-injected smoke. In this step, you should focus on creating sources that will introduce interesting variations to the simulation, without worrying about details of the final result.

  • For static smoke and fire simulations, add noise to the sourced values.

    • You can use the Attribute Noise SOP to add noise to the sourced point attributes.

    • With smoke, the noise will prevent constant, uninteresting emission.

    • Source noise for fire is important for capturing the look of the base. To get the cellular look for the fire base, use Worley (cellular) F2-F1 for the Noise Type.

  • For spreading fire, you should also ensure that the spreading behavior looks right before proceeding with the pyro simulation.

  • The shape and direction of the initial blast is largely dependent on the incoming source geometry for explosions.

    • Aside from adding noise to the source point attributes, deforming their shape can also greatly influence the explosion. For example, adding a prominent protrusion will cause a blast in its direction.

You should also determine the ranges of sourced values in this step, especially for temperature and flame sources. To this end, you can use the Attribute Promote SOP to calculate the maximum of the relevant point attributes (prior to rasterization). This information will be useful later for setting parameters on the solver.

Basic simulation parameters

Once sourcing is finalized, next step is to set the basic properties to ensure that the simulation works correctly. These settings can likely be set once and forgotten, assuming reasonable values are used.

Smoke Object

Voxel Size

Controls the simulation resolution, with lower values giving higher resolution. This value should be set relative to the simulation scale. For example, the default value of 0.1 makes sense for an explosion with a unit-sized base. On the other hand, if the base of the explosion is 100 units in size, then the Voxel Size should be increased accordingly.

Tip

You can rapidly experiment with different simulation settings with a larger voxel size before moving to higher resolution.

Boundary Conditions

If you need to add a ground plane or a solid wall to the simulation, use the parameters in this section.

Tip

Domain visualization on the Guides ▸ Visualization tab is useful for determining where the simulation will take place.

Pyro Solver

Max Timesteps

The maximum number of timesteps that the solver can take per frame. The default value of 1 should be sufficient for smoke, but this value should be increased if the simulated fluid will have fast velocities.

Padding

Specifies the amount of free space that the solver will try to maintain around the simulated smoke. It is important that this buffer is large enough to accommodate motion within a timestep. However, setting this parameter too large will slow down the simulations.

Temperature and buoyancy parameters

Through buoyancy, the temperature field has a large impact on the bulk motion of the smoke. To properly control this force, you need to specify the physical meaning behind the values in the field, by setting the Ambient Temp (K) and Reference Temp (K) parameters. From there, the buoyancy force can be further tweaked with Buoyancy Scale, without modifying the temperature range.

Smoke Object

Ambient Temp (K)

See the parameter of the same name on the solver for more information. The values of these two parameters should be linked.

Reference Temp (K)

See the parameter of the same name on the solver for more information. The values of these two parameters should be linked. You should adjust this parameter until emission colors look correct in the viewport.

Temperature Scale

Acts as a multiplier on the temperature field for emission color purposes. Ambient Temp (K) and Reference Temp (K) should be linked to their respective parameters on the pyro solver, so that changing their values will also affect the simulation. The Temperature Scale parameter allows you to tweak emission colors without affecting the solver’s settings.

Pyro Solver

Ambient Temp (K)

Specifies temperature of the surrounding air. A value of 0 in the temperature field gets mapped to Ambient Temp (K).

Reference Temp (K)

Physical temperature corresponding to the value of 1 in the temperature field. The highest sourced temperature will equal Ambient Temp (K) + T * (Reference Temp (K) - Ambient Temp (K)), where T is the maximum incoming temperature value (as determined for sourcing, see above). Thus, Reference Temp (K) should be set so that this highest sourced temperature is physically sensible, and the emission colors look correct in the viewport.

Note

These parameter values are in Kelvin. The conversion formulas between Kelvin and other common temperature units are given in the table below.

To Kelvin

From Kelvin (K)

Degrees Celsius (C)

C + 273.15

K - 273.15

Degrees Fahrenheit (F)

(F - 32) * 5/9 + 273.15

(K - 273.15) * 9/5 + 32

Gravity

Magnitude and direction of the gravitational force, which affects strength of the buoyancy forces. You should adjust these parameters for the scene scale and then leave them alone. Buoyancy Scale can be used to fine-tune the effect of buoyancy.

Buoyancy Scale

Multiplier on strength of the buoyancy force. Use this parameter to tweak buoyancy to ensure that your smoke rises at the desired speed.

Cooling Rate

Rate at which the temperature field cools toward the ambient temperature. When searching for an appropriate value, watch for where the smoke’s rising rate begins to slow down.

Flames parameters

Parameters on the solver’s Flames tab have a significant impact on simulations that make use of the flame field. You should begin by tuning the Flame Lifespan parameter to ensure that the flame values persist for the desired amount of time. From there, you can enable the outputs that you want to generate from the flame field and tune their activation ranges. See the Flames page for more information about these outputs.

Tip

Knowing the incoming flame values from sourcing is very helpful when searching for flame ranges. You should calculate the maximum incoming values when working on the sources.

Shape operators

The previous steps are meant to determine the bulk shape and motion of the simulated smoke. Once you are happy with these bulk characteristics, you can use shape operators to add details to the simulation. The pyro solver has 4 built-in shape operators: dissipation, disturbance, shredding, and turbulence.

Dissipation

Reduces the density values over time, so that smoke fades and eventually disappears. It is important to set an appropriate value for the Clamp Below parameter when performing a sparse simulation. Otherwise, tiny density values will linger and unnecessarily inflate the active simulation region.

Disturbance and shredding

Applies random forces to break up the simulation. Disturbance exerts linear accelerations and is useful for breaking up smooth smoke caps. Shredding rotates velocities to redirect the flow. Shredding is effective for adding chaotic motion without speeding up or slowing down the flow. It is especially useful for fire simulations, which are dominated by vertical licks when no shredding is used.

Turbulence

Can be used to add powerful large-scale noise to the simulation velocities.

Each shaping operation has a checkbox to turn it on and a scaling factor to specify how strongly to apply it. There is also a tab containing further parameters for each built-in operator. A common theme here is the control field, which can be used to spatially attenuate strength of the shaping operator. When enabled, the value of the Control Field is fitted from the Control Range to 0-1. This is further passed through the Control Ramp if Remap Control Field is enabled. The remapped control value is then applied as a scaling factor on top of the global strength. Control fields allow you to build a mask out of desired regions and only apply a shaping operator there.

Tips and troubleshooting

  • Advection-Reflection can greatly help with vortex preservation.

    • Disabled turns off advection-reflection. This is the safest option for simulations that involve the divergence field (such as explosions).

    • Single-Project uses a cheap reflection method that does not add much overhead to the simulation.

    • Double-Project exhibits best vortex preservation qualities. However, this method effectively doubles the number of substeps and is significantly more expensive than Single-Project.

  • The Time Scale parameter can be animated. This can be especially useful with simulations of explosions, where a high time scale at the start can capture the violent initial blast.

  • When Mode for disturbance is set to Continuous, independent noise will be added at every voxel, creating disturbance at the highest representable scale. This is useful for an avalanche-type effect. However, if voxel size is too small, disturbance in continuous mode can lead to a noisy, undesirable look.

  • You can attach microsolvers to the pyro solver’s Forces input to apply custom forces to the smoke.

  • If you notice staircase-like artifacts in a sparse simulation, then there is insufficient padding. To fix this problem, increase Max Substeps and/or increase Padding on the Advanced tab.

  • If sources and simulation are very fast, than insufficient substepping will manifest as noticeable streaks. Increase Max Substeps to fix this problem.

  • If the smoke doesn’t seem to be interacting with collision geometry, increasing IOP Iterations on the Advanced ▸ Collisions tab may help.

  • If you notice thin axis-aligned streaks of smoke, enable hourglass filtering. Its controls can be found on the Advanced ▸ Hourglass Filtering tab of the solver.

  • Sparse solvers perform advection in batches to speed up the simulation time, which results in higher peak memory utilization. If you're experiencing issues with memory usage, you can limit the batch size in Advanced ▸ Advection ▸ Max Batch Size.

Pyro

Sparse Pyro

Legacy Pyro