RBD BULLET SOLVERS
- Sammy Lyu

- Aug 5, 2025
- 2 min read
Updated: Dec 5, 2025
This section focuses on RBD BULLET SOLVERS
As of writing, my Houdini version is 20.5.614
Using "RBD Cluster" to create randomisation for VORONOI
When using voronoi fracture, the RBD cluster SOP helps to randomise the fracture points by combining them into bigger fractures, a good way to save processing power.
Using "TRANSFORM PIECES" to swap-in render geometry
A good way to work with fracture geometry is to simulate the destruction using PROXIES. When the simulation is done, the render geometry can be brought in to replace the proxy geometry using the NAME attribute, so make sure the names between the render and proxy geometry are identical for this to work.
It is also important to make sure that no "POINT NAME" attribute is present in the render geometry during the transfer. That is because the proxy geometry is already using point names, and they are expecting primitive names from the render geometry.
Using DEBRIS SOURCE to generate points
When using DEBRIS SOURCE to generate points on collisions and impacts, make sure you UNPACK the geometries first, as a packed geometry will not contain the point data you need. You should not see any points on the first frame, this can be achieved by activating REMOVE UNRELEASED at the bottom of the debris source properties.
Defining DATA TYPE when creating attributes for SOLVERS
When creating attributes such as ACTIVE and ANIMATED or DEFORMING. You would usually write:
@active = 1;
@animated = 1; Without specifying a DATA TYPE, these values default to a FLOAT. But for solvers like RBD, they only take INTEGERS for some attributes. So to make sure the right data type is selected for the attribute, always define it: i@active = 1;
i@animated = 1;
The "i" makes it so that the attribute is defined as an "INTEGER". Same goes for floats and vectors - "f" and "v".