Using the ODE solver for RBD

See also: Houdini RBD solver

Overview

ODE (Open Dynamics Engine, home page) is an open-source RBD solver optimized for fast simulation of simple collision geometry (such as boxes, spheres, cylinders, and capsules). You can switch the Rigid Body Solver dynamics node to use ODE instead of Houdini’s more general RBD solver. This will often increase performance where the geometry matches ODE’s simplified assumptions, for example simulating the rectangular bricks in a collapsing brick wall.

You can of course attach different RBD solvers to different RBD objects, so some objects in the scene can be solved by the general Houdini solver and some by ODE.

  • Use ODE when simulating large numbers of simple objects.

  • Use RBD when you need more advanced features like glue, or complex geometry collisions.

  • For simple simulations, try them both, and pick the results you like best.

SolverAdvantagesDisadvantages
ODE
  • Very good at handling large numbers of simple objects. ODE is very fast in these situations, even when all the objects are stacked on top of each other.

  • Since it’s easy to switch between RBD and ODE, you can do a rough simulation using ODE before switching to RBD for a more detailed simulation.

  • ODE does not support glue or fracturing.

  • ODE only supports primitive collision geometry (boxes, spheres, etc.).

  • At this time, ODE only supports hard constraints and simple spring constraints (no damping or force limiting).

Houdini RBD
  • Supports all of Houdini’s rigid body simulation features (forces, constraints, glue, etc.).

  • Handles complex collision geometry of any shape.

  • Can be slow and somewhat unstable when modeling large numbers of objects stacked together.

The ODE library is compiled into Houdini. You do not need to install any additional software to use ODE.

Setting up ODE

  1. In the parameters of a Rigid Body Solver node, set the Solver engine to ODE. Use the parameters on the ODE tab to set ODE solver parameters (see the ODE documentation for information on these parameters).

  2. On the RBD object nodes connected to the ODE solver, click the Collisions tab, the click the ODE Primitive sub-tab.

    Use the Object type menu to set the collision shape (the default is a box). Turn on Display ODE primitive to visualize the object’s collision geometry in the viewer.

    By default, Houdini will fit the bounding box of the ODE collision shape to the geometry. For manual control of the collision shape, turn off Automatically fit geometry and use the parameters below it to manually define the collision shape.

Notes and limitations

  • The Rigid Body Solver node Houdini creates when you use the shelf tools is now an asset (rigidbodysolver) that encapsulates both the traditional Houdini RBD solver node (rbdsolver) and the ODE solver node. Scenes created with older versions of Houdini will have the traditional Houdini solver node, which does not have an option to switch to ODE. You can create the new Rigid Body Solver node using the Tab menu.

  • ODE works with Houdini’s rigid body objects, static objects, and RBD point objects.

  • ODE should work with all Houdini RBD forces.

  • ODE works with hard constraints and spring constraints (no damping or force limiting). ODE currently does not work with angular constraints.

  • ODE does not support glue or fracturing.