| On this page |
Note
Although COP Pyro is in COPs, you need DOP level permissions to use it. This means that COP Pyro is not available in Houdini Core, but only in Houdini FX, Houdini Apprentice, Houdini Indie, and Houdini Education.
Simulating fire and smoke is typically done by generating volumetric data in SOPs or DOPs. COP Pyro is a 3D method of creating very fast fire and smoke, optionally with an infinite timeline. It lets you create a sparse GPU Pyro solver and adjust the look and feel of the fire or smoke in realtime.
Blocks in Copernicus ¶
Blocks in the COP network act similar to compile blocks in the SOP network, as they encapsulate a bunch of nodes that you can treat as a single object. They typically consist of a Block Begin node and a
Block End, with other nodes in between. Turning on Simulate enables simulation mode, which ties the process to the frame bar, allowing for caching and checkpointing in memory for faster recooking and scrubbing.
Another important feature is Live Simulation, which allows Houdini to continuously animate in almost real-time, providing real-time feedback for changes. This is similar to a video game world, where things play whether or not you are actively pressing anything. This mode is not tied to the playbar, but it’s still recooking all the time. So if you make a change in the network, you will see its results being played back live in the viewport.
Understanding COP Pyro ¶
Pyro Blocks ¶
Pyro blocks function like Flow blocks. However, they include a comprehensive set of utilities such as Pyro Disturbance and
Pyro Turbulence that can be used to create realistic fire and smoke simulations.
Pyro blocks consist of a Pyro Block Begin and a
Pyro Block End with simulation mode turned on by default. Density, temperature, velocity, fire, and divergence are available as inputs and outputs.
The Begin node provides the inputs to the simulation, while the End node contains the primary controls for sourcing, simulation, boundaries, and forces. Most simulations can be configured entirely from the Pyro Block End node without requiring additional nodes inside the block.
By default, the Pyro Block End node uses a hidden connection back to the
Pyro Block Begin node for each field, instead of an explicit wire. This keeps the network clean rather than cluttered with duplicate wires. A small indicator on the wire shows where this hidden connection is active. To insert a node between the Begin and End nodes for a field, you can wire it in directly and the hidden connection is removed automatically.
Like other blocks, you can turn off simulation mode, run a fixed number of iterations, or enable live simulation. The area between the Begin and End nodes remains fully accessible, allowing additional Pyro nodes, force fields, or custom processing nodes to be inserted into the simulation pipeline when needed.
Once you use the tab menu to create a Pyro Block, a Pyro Configure node is also created. Unlike other COP nodes, VDBs used by Pyro require explicit activation because of their sparse nature. The
Pyro Configure node creates the reference VDBs used by the simulation and defines the resolution of the simulation through the Voxel Size and Resolution parameters. The default settings are intended to provide a balance between speed and quality. To increase the level of detail, decrease the Voxel Size.
The Pyro Configure node can also calculate voxel size automatically based on camera coverage. Provide a camera and the centroid of your simulation domain, then set a Pixel Coverage value describing how many voxels should cover one pixel at render time. The node calculates a matching voxel size and displays the resulting reference VDB and effective voxel size. This is useful for avoiding oversized simulations in cases where the domain is far from camera and would otherwise resolve to only a few pixels at render time.
Sourcing ¶
The Pyro Source Shape node provides a simple way to create simulation sources using built-in shape primitives. It can generate density, temperature, velocity, fire, and divergence fields without requiring custom source networks. Additional controls such as Noise and Distortion can be used to break up the source shape and add variation to the resulting simulation.
You can also source from VDBs imported from SOPs. Connect the VDB outputs to the corresponding inputs on the Pyro Block Begin node. The
Pyro Block End Source tab contains controls for adjusting how these fields are sourced into the simulation.
Visualizing ¶
Another advantage of COP Pyro over SOP or DOP Pyro is the ability to visualize within the network during simulation. For example, you can use a VDB Visualize Slice node to inspect an individual slice. Adjust the Offset parameter to move through the volume and scrub the playbar to view changes over time. You can also use a
VDB Visualize Velocity node to display velocity trails.
Lighting ¶
You can attach a Rasterize Volume COP after the
Pyro Block End to visualize the simulation, however you will need to manually set up lights. There are three types of Pyro lights:
Pyro Light Ambient (all direction light),
Pyro Light Scatter (internal scattering of light inside a VDB), and
Pyro Light from Points (directional point light). These lights can be chained together since their effects are cumulative.
Caching ¶
Copernicus flushes data to the CPU when memory runs out. You can control when this happens with the Video RAM, in Edit ▸ Copernicus Settings. For more information on memory management and caching, see Cooking.
Realtime adjustment ¶
When building a simulation, you can turn off Cache Simulation on the Pyro Block End node to allow realtime adjustment of Pyro nodes, such as
Pyro Disturbance. This allows changes to be evaluated immediately without relying on cached simulation data.
You can also enable Live Simulation on the Pyro Block End node to update the simulation interactively without advancing the timeline. Although these workflows require the simulation to recook when scrubbing backward, Copernicus is typically fast enough to handle this.
COP Pyro workflow ¶
The new Pyro workflow simplifies the process of creating fire and smoke simulations in Copernicus. Instead of building large simulation networks, most setups can be created using a small number of nodes centered around a Pyro Block. The workflow is designed to work with minimal setup while still allowing simulations to be customized when needed.
To create a simulation, use the tab menu to put down a Pyro Block. This creates a Pyro Configure, a
Pyro Block Begin, and a
Pyro Block End node. Connect a
Pyro Source Shape node to the
source_points input of the Pyro Block Begin node. Most simulation, sourcing, and boundary settings are controlled from the Pyro Block End node, similar to the Pyro Solver in SOPs.
Houdini ships with several preconfigured Pyro example networks that are available from the Copernicus tab menu. Similar to shelf tools, these examples provide complete fire and smoke setups that can be used as starting points for custom simulations.
Illustrates a minimal fire setup that can be used as a template for building fire in your scene.
Illustrates a rising fireball in a Pyro simulation.
Illustrates a slow moving candle flame with soot emission. It shows a more complex flame setup that can be used as a template for building flames in your scene.
Illustrates a simple rising dense smoke cloud. It can be used as a template for building smoke in your scene.
Pyro Configure Cigarette Smoke
Illustrates a simple rising wispy smoke. It can be used as a template for building wispy smoke in your scene.
Pyro Configure Large Smoke Plume
Illustrates a simple rising large and dense smoke cloud that is pulled by a strong wing. It can be used as a template for building smoke in your scene.
Illustrates a falling dry ice effect from a glass. It demonstrates setting up implicit surface colliders in Pyro, and shows how to add other nodes to the solver.