pyro collisions houdini

General / 22 May 2020

Something that a lot of people have trouble with is pyro and collisions. Often smoke will be “eaten” by the collision object then just disappear all together.  This happens pretty much all the time if you have a large object moving quickly into small amounts of smoke. I spent some time trying to figure out how to solve this problem and I found some pretty interesting things about pyro and collisions. The smoke solver doesn’t seem to have “real” collisions. I came to that conclusion after adjusting the incoming velocity on my static object. Take a look at the gif. After disabling the velocity, literally nothing happens. Actually, the collision object will just delete the density inside the collision, but I disabled correct collisions for this illustration. After doing additional tests, it seems pyro collisions are doing two main things: 

1. Delete any density that gets inside the collider.
2. Use the velocity of the collider to affect the motion of the simulation.

That being said, if your static object is moving you need to make sure your velocities are setup correctly otherwise the collision won’t work as it should. To help solve the problem of the density being “eaten”, I usually will add more substeps, add more multigrid iterations, and multiply the incoming velocity on the static object to a higher value. If all else is failing, I will turn off the “use correct collisions” feature.