Deborah R. Fowler

RBD | Bullet Basics

Posted 2013 Updated July 9 2024
The Solver

If you have forgotten the rules of physics you may want a Physics Review.

Starting with the shelf tool, if you take a sphere and make it into an RBD object, this will create a dopnet. The dopnet can be thought of as a calculator that given the object and forces, it "solves" where the sphere will be at the next time step. Similar to the documentation, this pdf outlines the anatomy of dynamics in Houdini.

Try a simple solver: create a sphere, inside the geometry container add a Solver node, connect the sphere as the first input and inside the solver add a transform node with 0 1 0 and connect it to Prev_Frame. The solver keeps track of the previous position and adds 1 in y. This differs from a transform node at the SOP level which simply sets it to 1.

Example File ↓ sopSolver.hipnc Simple SOP-level solver demo
↑ Back to top
Bullet Assumptions

The recommended solver to calculate RBD is the Bullet solver due to its speed. However, in order to be fast, Bullet makes some assumptions. Most obvious is with collision objects — convex hulls for everything is default and collision padding is added. This makes the Bullet solver excellent for scenes of massive destruction. For more background I highly recommend Mike Seymour's Dec 2011 article "Art of Destruction".

The Bullet solver makes two assumptions regarding collisions to be more efficient:

  • Convex hulls — essentially everything can be "shrink wrapped"
  • Collision padding — may be added
Example File ↓ convexDemoStart.hipnc Sphere and box — convex hull demonstration

The above hip file shows a sphere and a box. Start with this and create a static object (under Collisions tab) and an RBD object (under Rigid Body tab). You will notice that the sphere stops at the opening to the box — because Bullet assumes collision objects are convex. There are two ways around this: break up the pieces into convex shapes (worth it for building destruction), or use the concave selection on the collision.

Convex hull example Concave example Convex hull Bullet settings

There is more information on the Bullet solver, but for now we will move on to the node most useful for layout: the RBD Instanced Object. You can display your collision geometry but do not leave that display on when you are simming or it will slow things down.

↑ Back to top
RBD for Layout

Including rendering using Redshift / Mantra / Karma and simming to points using transform pieces.

Also on YouTube at https://youtu.be/bFtT3hqBuJI

↑ Back to top
RBD Instanced Objects

This is similar to the concept in SOPs of a copy or instance. The RBD Instancing Node takes points and instances objects on those points. In the DOP the objects act like individuals. Click the images below for examples.

RBD Instanced Objects example Instagram inspired RBD example
Simple spheres example Example File ↓ exampleRBDInstancedH18.hipnc Simple example of spheres dropping on the ground
Jelly beans example Example File ↓ jellyPileH18.hipnc Jelly beans falling on a plate — introduces caching for layout purposes
Fill container example Example File ↓ rbdFillPillBottleH18.hipnc Filling a container
↑ Back to top
DOP Copy Objects
Galton Board Marble Machine
↑ Back to top
More Examples

A few examples of using the Bullet solver — brief descriptions here and here.

Wheel of dropping spheres Magnetic slopes illusion

An example of a static object turned into a deforming and active object (two checkboxes):

Example File ↓ deformAndActive.hipnc Static object turned deforming and active (two checkboxes)
Deform and active example
↑ Back to top