The Pyro Solver is a wrapper around a DOP network to simplify the running of Pyro solves.
The first input provides the sources for the Pyro simulation. This should be a set of named volumes. The exact names required are determined by the Sourcing tab. The Pyro Source SOP and Volume Rasterize Attributes SOP are useful tools for creating source volumes.
The second input provides the collisions for the Pyro simulation. It
should be a SDF VDB, such as the second output of the Collision Source SOP or the main output of the VDB From Polygons SOP. If the collision
is animating, points with a
v attribute can be used to describe
the motion. The two outputs of the Collision Source SOP can be merged
and used as the second input to provide this.
Clears the entire simulation cache.
What frame on the Houdini playbar that the simulation should begin at.
The size of a voxel in the Pyro simulation. Cutting your voxel size in half will require eight times the memory and time, so a careful trade off between detail and pragmatism is required.
The origin of the pyro simulation. This is used as the center of the maximum size.
The maximum size the pyro sim can reach. This is measured relative to the center. This can be useful to avoid unexpectedly running out of memory from bad inputs.
By default smoke operates in an open container. When the maximum bounds are reached, the smoke just vanishes. Instead one can restrict by adding implicit walls past which the smoke cannot move. These form stronger collision boundaries than normal colliders, but are restricted in their shape. The smoke cannot be fully enclosed in a box, so either a floor or ceiling can be specified, but not both.
The collision will be built using the first volume or VDB in the
input, which will be treated as an SDF. Velocities will be
v attribute on the points of the input using
nearest point. You can merge the two outputs of the Collision Source
SOP to feed this.
SDF + Volume Velocity
The collision will be set to the
collision named volumes and
VDBs in the input which should be SDFs. The velocity will be set to
v named volumes and VDBs in the input. This requires more
manual setup but can provide the fastest and cleanest setting
Collision Voxel Size
In the end, collisions are always performed at the simulation resolution. However, often a lower fixed resolution can be used for the signed distance field of the object. This usually should be the same resolution that was used to generate the collision volume upstream.
Often if sourcing fire on the surface of an object one doesn’t want the fire to get stuck in the surface, so it is useful to shrink the object a bit. This can provide that by offsetting the collision distances.
NOTE: If the collision volume is a VDB it can only be shrunk so far before it will disappear entirely. This is usually around three times its voxel size. Adjust the bandwidth options to allow more extreme offsets or use a VDB Reshape SDF SOP.
Use Deforming Geometry
Controls if the collision geometry is rebuilt every frame or the first frame is used. Not rebuilding can result in faster simulations.
Collider Frame Range
Controls animation range of the collider. Frames from the
Collider Frame Range will be looped for simulation purposes. For
example, if this is set to
1-6, then simulation frames 4, 5, 6, 7, 8, etc.
will use the collider evaluated at frames 4, 5, 6, 1, 2, etc., respectively.
This parameter is only available when Minimal OpenCL Solve is enabled.
In this case, the second input is expected to contain
distance field for the collider) and
v (velocity field) volumes.
When working with a static collider, minimum and maximum of this range
should match. In this case, you also don’t need to provide a
Create Cd and Alpha Fields
When this option is enabled,
Alpha fields will be added to the
smoke object, containing the smoke color and color amount, respectively.
This parameter must be turned on to enable controls under the Color
subtab of the Solving tab.
This parameter specifies the default color of smoke and initial state of
Controls the initial (and minimum) value of the
Alpha field. Intuitively,
the fluid will contain Default Alpha amount of dye of Default Color
at the beginning of the simulation.
These buttons enable/hide the viewport visualization of the pyro volumes. The viewport visualizers are active at Object and SOP level viewports and will provide ways to inspect the values of the different volumes that go into a pyro simulation. The Modify buttons bring up the viewport visualization customization dialog to allow precise control over how the volumes are visualized. Because these are normal viewport visualizers, they can also be accessed from the Visualization toolbar in the viewport. Note that these do not appear in the contained DOP network.
See the Pyro Solver (Sparse) DOP for these parameters.
The solver has the ability to perform a Minimal OpenCL Solve, which is useful for very rapid prototyping. This checkbox is located on the Advanced tab, and allows for interactive manipulation of parameters during a running simulation, which can give you quick feedback of their effects on the simulation.
When this checkbox is turned on, some features of the solver are turned off to to ensure that all simulation data can stay in video memory, avoiding costly copies that are necessary when only Use OpenCL is turned on.
Turn on Live Parameter Display during Playback in the Edit menu to make sure the solver interface updates as you are tweaking parameters in the midst of a simulation.
To produce fast simulations, Minimal OpenCL Solve uses the OpenCL device and imposes the following limitations.
Simulation caching is disabled. This means that you cannot scrub the timeline to view saved results.
Advection-Reflection is not supported.
Only a dense simulation can be performed.
Dynamic resizing of the container is turned off. A static size needs to be set under the Setup tab.
The solver will not dynamically substep based on the CFL Condition.
Sourcing and collider support are more restricted. A frame range needs to be specified for both, and the solver will loop these input sources throughout the simulation. Additionally, the collider must be converted into a signed distance field (called
collision) and a velocity field (
Only the fields that are used for visualization will be exported by the SOP. These are specified in the Bindings section of the Look tab.
Best performance is achieved when the OpenCL device is set to the GPU that is responsible for rendering the viewport.
See the Pyro Post Process SOP for these parameters.
Specify which volumes of the first input should be merged into the
Pyro simulation each frame, and how to do the merging. The volumes
should have a
name attribute that is used to tie each input
volume to an operation.
See the Volume Source DOP for these parameters.
Source Frame Range
Controls the input range of frames for sourcing in Minimal OpenCL Solve mode. The first input will be evaluated at integer frames in this range for the purpose of sourcing.
Length of a single sourcing cycle when Minimal OpenCL Solve is turned on. If this value is larger than length of the Source Frame Range, then some simulation frames will have no sourcing applied. Otherwise, the sources will loop and continuously inject into the simulation.
As an example, suppose Source Frame Range is set to
Cycle Length is
120. Then source frames
1-6 will be applied to the
same-numbered simulation frames, whereas simulation frames
7-120 will get
no sourcing applied. As the cycle resets, source frames
1-6 will also be
applied to simulation frames
These settings can be useful in tuning parameters for a simulation. An explosion, for instance, needs to be sourced only for the first few frames. A larger Cycle Length will let the smoke develop before the sourcing restarts and the explosion loops again. In the meantime, shaping and simulations can be manipulated to see their effect on the simulation.
There are many internal fields in a Pyro simulation, not all of which you may need to save out or render. This controls which fields are brought out of the simulation and into SOPs.
When Minimal OpenCL Solve is enabled, all parameters in this tab are disabled; instead, only the fields used for visualization are exported. These are specified in the Bindings section of the Look tab.
See the Pyro Post Process SOP for the Conversion parameters.
Fields to Export
Toggles whether this specific field should be exported.
Controls how the volume will appear in the viewport. Ancillary data volumes like velocity and rest fields are often useful to mark as invisible so they are available to mantra but don’t get in the way of viewing.
The scalar or vector field to extract from the simulation. It
will be properly named, ie, the vel field will create
vel.z named volumes. It will also be in a group
named after the DOP object.
While this is designed around exporting fields, any geometry can actually be exported here.
Controls global substeps at the simulation level, as opposed to the pyro-specific substeps in the Solving::Advanced tab.
Global substeps are best used when one needs to export the substepped geometry. They will use more memory per frame, however, as all the substeps will be kept rather than just the final values each frame.
Controls if the simulation is cached to memory.
Cache Memory (MB)
Maximum size of the memory cache.