The aim of this effect was to create a procedural system that can be applied to any object you wish to set violently on fire. It works by creating a density map, restricted by desired angle of attack, with controllable buildup and cool down. This is then fed to a dopnet to source particles from, with an altered pop source to allow for a change in number of scattered particles depending on the change in overall density.
Start with a rock shape, and set the velocity on each point to a desired direction. Set a tangent variable on each point and initialise a temperature float. Next, calculate the temperature value. This is done by creating a threshold value, larger angle means more widespread temperature buildup. Calculate the angle between the velocity and the tangent, and if the angle is lower than the threshold, feed the value into a ramp. You can choose to also make a colour ramp to help visualise.
In order to get the buildup working, we need a solver. Using the previous frame, specify a rate of increase for the currently affected points, and a rate of decrease for the points which have a temperature higher than 0, but are no longer in angle range. If you want to slow the increase more naturally, you can apply a log transformation. Finally, transfer this value back to the current geometry on the first input.
Now create a DOP net, wire in the output of the solver to the first input, and the rock to the second input for collision geometry. For the pop source, set the emission attribute to your temperature buildup. In order to get the increasing density to be represented, a slight modification needs to be made to the pop source itself. Unlock it, then jump inside the sop source, then sop solver. Look at the scatter node connected to remove_unwanted_attribute. Turn off force total count. You can also wire in a switch, set this as a separate scatter, and promote the switch input and density scale to be able to make changes without diving inside again. Now as the density increases, the number of spawning particles will also increase. Connect to some wind, collision detect, and any other nodes to influence the particles as you like.
From here, the smoke simulation is relatively standard. Check out the HIP to see how this is done. Also check out Matt Estella’s post for how to setup volumes to emit like fire in Renderman. This effect was created to make a reentry burn-up for a spaceship, so it is quite flexible with the geometry it is attached to. Have fun!