RBD vs Bullet Solver in Houdini

Rigid Body Solver in Houdini

Rigid Body Solver in Houdini

In a destruction tutorial video I posted on my Youtube channel, I demonstrate how to setup a simple RBD (rigid body dynamics) simulation for a destruction scene. I use the Rigid Body solver to calculate the collision dynamics between the objects in the scene. The Rigid Body solver has the option to choose between using the Bullet solver engine or RBD solver engine to calculate the dynamics of the simulation.

 
Spheres representing the volume of the Rubber Toy in Houdini

Spheres representing the volume of the Rubber Toy in Houdini

Bullet Solver

The Bullet Solver approximates all colliding objects by representing the volume of these objects using simple geometries like spheres and boxes. Try to picture a pixelated rubber toy that made up of cubes like its built out of Lego bricks. The Bullet Solver will convert all the objects in the simulation into mini-cubes or mini-spheres before running it through the simulation and before it starts calculating collisions between objects.

Cubes representing the volume of the Rubber Toy in Houdini

Cubes representing the volume of the Rubber Toy in Houdini

This makes it a lot easier to calculate collisions between objects because the shape of the objects are now predictable and sometimes this may reduce the poly count of the geometry. This is a huge performance improvement making the Bullet Solver very fast to use. Unfortunately there’s always a down side to things and because of the approximation of the geometry is not accurate, this results in inaccurate collisions as well.

 

RBD Solver

The RBD Solver uses a more precise way of calculating the collision dynamics of the objects. According to SideFX’s documentation, it’s best to accompany the simulation with a volumetric representation of the objects being simulated. This is similar to the proxy volume I demonstrate in a previous tutorial video on FLIP Fluids simulations.

The RBD Solver engine results in a more accurate simulation at the cost of computation time because this is must slower than the Bullet Solver engine.

Best Practices

It’s a good idea to use the RBD Solver if you have complex geometry in your simulation, but if the scene consists of simple shaped geometry the Bullet Solver will be more efficient. If there are any hesitations, try using the Bullet Solver engine first and cook a few frames of the simulation and examine the collisions and see if it appears good enough for what you’re doing. If it isn’t good enough, then simply switch to the RBD Solver and recook the simulation to see it improves the scene.

Houdini RBD Packed geo doesn’t work with RBD Solver

Houdini RBD Packed geo doesn’t work with RBD Solver

RBD Packed Object

When fracturing objects for destruction it’s usually a good practice to packed the geometry so it’s memory efficient, but the RBD Packed Object in DOPS is only compatible with the Bullet Solver. The tricky thing about this is that it won’t throw an error if you accidently hook up the RBD Packed Object with Rigid Body Solver. And in fact there won’t be any warning messages or anything, but it won’t work as expected either!

 
Houdini RBD Packed geo Works nicely with Bullet Solver

Houdini RBD Packed geo Works nicely with Bullet Solver

RBD Packed Object in DOPS only works with the Bullet Solver!

I found a small blub in Houdini’s documentations that support this. Please click here and it’s in the first paragraph that says, “This object representation is currently only understood by the Bullet Solver.”