Pyro, one of the most important elements for RBD destruction. No destruction is complete without smoke. Pyro is a set volume element in Houdini which represent smoke. The most crucial part for creating such pyro are points (volume) having the attributes of Temperature and Density. Hence, the first step for creating pyro stimulation is creating its smoke source.
For creating this source we start by taking the same source of Debris as smoke is created from the places things are broken. we then delete all the points whose velocity is less than 0.01 as we do not want smoke emitting from places not required. After this step, we replicate the points as we will need a larger surface instead of just points.
After this step, we add density, the vex that is used for this step was:
f@density = 2;
f@temperature = 2;
where f denotes Float value which is given to volumes specifically. And with the help of this vex the density and temperature value is set to 2 respectively. And later, we add some noise to create a swirly motion to the temperature.
Then, we rasterize the points in order to create the volume. Hence, the volume rasterize node. Adding volume to temperature, density and velocity creates our source for pyro.

Then we come to the dop network where the main calculation happen, “The Pyro Solver”. Similar to pop Solver, Pyro Solver is the element which deals with all the calculation given in the network for creating smoke/fire.
We add few various nodes to create the smoke. These are the nodes that I have used for Pyro solver:
Gas wind: Helped me with getting a wind direction and noises to the stimulation.
Gas Resize Fluid Dynamic: This node is used for the bounding region for the smoke. This node helps the solver to calculate smoke and its field in a given space itself. We can auto direct this box or create a max bound, where the solver wont calculate things outside of the bounds.
Volume Source: This is the nodes which brings in the pyro source which we created earlier.
Smoke Object: The Smoke object helps us to give definition to the stimulation. The lower the value of this the better result we get. For this instance, I have used the value of 0.005. The pyro stimulation is extremely heavy and hence we have to insure that the system does not collapse at the time of stimulation.
Ground Plane: This node creates artificial ground which acts as a collusion barrier.
Static Object: Similar to ground plane, static object is a object which is used for collusion. The difference is that, we can assign any geometry with volume for collusion with the help of this node. The part which sets apart this node from ground plane is that the geometry can be static or deforming. For this instance I have used the RBD and its volume so that is collides with the smoke and we get much more natural result.

In pyro solver the things that we have to look out for are:
Dissipation: this calculates how fast the smoke is going to disappear. When this value is higher, the smoke disappear slower.
Disturbance and Turbulence: These node are specifically used create noisy field for the pyro. These nodes are best to break the mushroom effect that we typically get in pyro. It break the smooth effects is various block sizes resulting into a more natural and disturbed feel.
Sharpening: The node which helps in getting sharper result in the smoke. With the usage of this node, we get a much more natural and crispy effect.


For the pyro wind, I have also animated the directions for the wind as in a natural case, the smoke outside always have some wind turbulence.

