Houdini 20.0 Nodes Geometry nodes

RBD Constraints From Curves geometry node

Creates rigid body constraint geometry from curves drawn in the viewport.

On this page
Since 17.5


This node lets you draw a curve in the viewport, and will create constraints between points on the geometry of nearby pieces within a specified search radius. Alternatively, you can provide a curve as the 4th input, so that you can use this node procedurally. Once the curve is drawn, you can choose the Connection Type to determine how the constraints are set up.

To...Do this

Draw a curve

⇧ Shift + LMB drag.

Delete the curve

⌃ Ctrl + MMB click the curve.

Edit a point on the curve

MMB drag the point.

Insert a point on the curve

⇧ Shift + MMB click the curve.

Delete a point on the curve

⌃ Ctrl + LMB click the point.

Edit hinge position

LMB drag the hinge.

Delete hinge

⌃ Ctrl + LMB click the hinge.

Slide hinge position along the constraint line.

MMB drag along the line.

Switch between curve and hinge tools

Press 1.

Switch between edit and transform handle

Press 2.



Input geometry to create constraints for.

Constraint Geometry

Constraint geometry to be merged with.

Proxy Geometry

Proxy geometry. The constraints will be built using this geometry when available.

Curve Geometry

Optional input geometry which gets resampled to create constraints within the given search radius.


Connection Type

Surface Points

Creates constraints connecting closest points from nearby pieces.


Creates 0 length 2 point prim constraints placed at the intersection of the 2 surfaces.

Center of Mass

Creates constraints connecting centroids of nearby pieces.

Hinge Length

Specify the length of the hinge constraint.

Group Type

Specifies how the created constraints should be grouped together. This can be used with the Constraint Group parameter on RBD Constraint Properties to easily alter specific constraints.

Group Name

Adds the created constraints to a primitive group with the specified name.


Assigns the specified name to the constraint_tag primitive attribute for each of the created constraints.

Clear Curves

Delete all drawn curves.

Clear Hinge Edits

Remove all hinge constraint edits.

Use Curve Geometry

Use second input geometry to create constraints within proximity.

Create Cluster Attribute

Creates an “cluster” integer point attribute corresponding to the curve index the constraint is the nearest to.

Points per Area

When connection type is Center of Mass, points are first seeded on the surface of all the objects. There must be enough points for close points to occur to detect close surfaces. This should be scaled down by the square of the geometry size. For example, if your geometry is 10× bigger, you should have 1/100 of the points per area.

Piece Attribute

String or Int primitive attribute name indicating piece boundaries - no constraints will be created between pieces with the same attribute value.

Search Radius

Specify the maximum allowed distance when searching for nearby points.

Max Search Points

Specifies an upper limit on the number of nearby points that can be inspected. Lower numbers will improve performance but run the risk that only points from the same piece will be detected rather than points on nearby pieces, causing connections to be missed.

Max Connections

Specifies an upper limit on the number of pieces that each seed point can be connected to.

Constraints Per Piece

Specify the maximum number of constraints between 2 pieces.

See also

Geometry nodes