Houdini 20.0 Pyro

Packed RBD sources

On this page

The Pyro Source Pack node supports both volumes and rigid body pieces. You can find this option in the node’s Input dropdown menu. With Rigid Body Pieces it’s possible to group, for example, fractured pieces and make them interact with pyro sources. When you fracture and simulate an object, each piece is considered as an individual rigid body by the RBD Bullet Solver. The interaction between fractured pieces and pyro sources was possible before Houdini 19.5, but not so easy to achieve. With the new Pyro Source Pack input for Rigid Body Pieces you can directly connect fractured pieces and feed them to the Pyro Solver.

With packed RBD pieces and pyro you create two simulations and connect them.

The following step-by-step guide demonstrates the creation of a conceptual simulation with packed rigid body pieces.

Pyro simulation

For the pyro simulation you can create your own network or use one of the preconfigured setups.

  1. On obj level, create a Geometry node and dive into it.

  2. In the Network Editor, press ⇥ Tab and enter pyro configure to see the available setups. A good choice is Pyro Configure Billowy Smoke. The setup macro creates all necessary nodes for you, including a Pyro Solver.

Of course, you can make adjustments to the operators, e.g. change the Torus node’s Uniform Scale to get a bigger smoke source. In this example, the scale is 1.5.

  1. For fast test simulation cycles, change the Pyro Source node’s Particle Separation to 0.1.

  2. Use the same value for the Pyro Solver’s Voxel Size in the Setup tab.

Rigid body simulation

The rigid body simulation also happens inside the Geometry node and uses a fractured sphere.

  1. Inside the Geometry node, create a Sphere.

  2. Add a RBD Material Fracture and wire its first input to the output of the Sphere. You can go on with the default settings.

  3. A RBD Configure is optional, but nevertheless a good addition if you want to make physical changes on the bodies. Connect the first three inputs with the outputs of the RBD Material Fracture.

  4. Add the RBD Bullet Solver and wire the first three inputs to the outputs of the RBD Configure node.

  5. In the solver, open the Collision tab and choose Ground Plane from the dropdown menu. The ground plane can only be seen by the fragments, not the smoke, but that’s not relevant in this example.

  6. Set the ground plane’s Position.Y to -1.

The idea is to make a Grid a collider and break the sphere apart. The fragments will then fall into the smoke.

  1. Add the Grid node and wire its output to the solver’s 4th input.

  2. Set Center to -6,8,0.

  3. Set Rotate.Z to -50 degrees.

  4. Go to the Sphere node and change Center to -4,12,0.

  5. For Uniform Scale, enter 6.

  6. Increase Rows and Columns to 39 and 72 to get a smoother sphere.

  7. Press in the playbar to see the rigid body simulation. Make adjustments, if necessary.

Creating packed rigid body pieces

  1. Add a Pyro Source Pack node and wire its input to the RBD Material Fracture’s 3rd output.

  2. Set Input to Rigid Body Pieces.

  3. You can also adjust Voxel Size to match it the Pyro Solver’s Voxel Size parameter.

  4. The following step is not mandatory, because the scene contains only one fractured sphere. But for the sake of a consistent workflow, it’s a good idea to add a Merge node and connect it with the Pyro Source Pack. Set the Merge node’s name to LIBRARY.

Connecting the networks

In this step, the two simulations are brought together.

  1. Wire the RBD Bullet Solver’s 4th output (Simulation Points) with the Pyro Solver’s 2nd input (Collision Geometry/Volumes).

  2. Open the Pyro Solver’s Collision tab.

  3. Set the Collision Type parameter’s first dropdown to SDF + Volume Velocity. Change the other menu to Packed Sets.

  4. Under Collider Library, enter ../LIBRARY to establish the connection between smoke and packed fragments.

For the final simulation and more details, decrease the Particle Separation and Voxel Scale parameters, e.g. to 0.035.

Pyro

Sparse Pyro

Pyro instancing

Legacy Pyro