Setting up rigid body simulations
To get started with rigid body dynamics, you can start with one of the RBD examples in the Bifrost Browser and adapt it. If none of those are a good starting point, you can start with one of the basic RBD graphs: basic_rigid_body_graph or basic_rigid_body_instance_graph.
basic_rigid_body_graphis a good starting point when you have individual "hero" meshes that you want to simulate.basic_rigid_body_instance_graphis a good starting point when you want to simulate multiple copies of the same mesh shapes.
Note that the rigid body solver always operates on instances. You can use both meshes and instances of meshes as inputs for either of these graphs, and they automatically create RBD instances if needed. They can also both be customized as much as desired — the difference is simply a matter of convenience.
- Make sure that rigid bodies do not intersect. Intersections can cause extremely strong forces that result in explosive behaviour.
- Rigid bodies may disappear if the instances'
point_sizeis 0. Be careful when merging instances thatpoint_sizeexists on all instance objects and is not being set to the default value.
basic_rigid_body_graph
Add a basic_rigid_body_graph node, then right-click on it and select Explode.

Connect the meshes that you want to simulate into the
geometryport ofcreate_rigid_bodiesand set the properties as desired. If you want some meshes to have different properties (for example, to act as kinematic objects or to activate at a different time), then use additionalcreate_rigid_bodiesnodes and connect all their outputs to theinstancesport ofsimulate_rigid_bodies.For static colliders like floors and permanent walls, connect meshes to the
meshesport ofcreate_static_collider. Use solid meshes like cubes instead of planes. If you want different colliders to have different friction or other properties, use additionalcreate_static_collidernodes and connect all their outputs to thestatic_collider_instancesport ofsimulate_rigid_bodies.Use the
rigid_body_solver_settingsnode to adjust general settings like gravity and substepping.Do the following:
- Connect forces such as wind or drag and other general influences into the
influencesport ofsimulate_rigid_bodies. - Connect constraint influences such as
constraint_strength_influenceinto theconstraint_influencesport. - Connect the
out_instancesoutput port to anoutputnode at the top level of the graph, or to aterminalnode.
- Connect forces such as wind or drag and other general influences into the
basic_rigid_body_instance_graph
Add a basic_rigid_body_instance_graph node, then right-click on it and select Explode.

Connect the mesh shapes that you want to instantiate into the
geometryport ofrigid_body_instanceand set the properties as desired. If you want some meshes to have different properties (for example, to act as kinematic objects or to activate at a different time), then use additionalrigid_body_instancenodes and connect all their outputs to theinstance_geometriesport ofcreate_instances.Connect the points object for the starting positions of the instances into the
pointsport ofcreate_instances, and select how to assign shapes to the point positions.Set properties as desired on the
set_rigid_propertiesnode.For static colliders like floors and permanent walls, connect meshes to the
meshesport ofcreate_static_collider. Use solid meshes like cubes instead of planes. If you want different colliders to have different friction or other properties, use additionalcreate_static_collidernodes and connect all their outputs to thestatic_collider_instancesport ofsimulate_rigid_bodies.Use the
rigid_body_solver_settingsnode to adjust general settings like gravity and substepping.Do the following:
- Connect forces such as wind or drag and other general influences into the
influencesport ofsimulate_rigid_bodies. - Connect constraint influences such as
constraint_strength_influenceinto theconstraint_influencesport. - Connect the
out_instancesoutput port to anoutputnode at the top level of the graph, or to aterminalnode.
- Connect forces such as wind or drag and other general influences into the
