Relationships
Overview
Relationships are a special type of data that describe which objects affect which other objects.
You can establish relationships in the network using the Merge node. Parameters on the merge node establish what kind of relationship the merged objects have, and whether it creates one way relationships (objects to the left in the input order affect objects to the right) or mutual relationships. It also has an Activation parameter, which you can use to animate the relationship.
The important thing to remember about relationships is that they take time to calculate, so to optimize the simulation, you should only create relationships between objects that really need to interact, and you should look for ways to use one-way relationships (where one object affects another but not the other way around) instead of mutual relationships (where two objects affect each other). Of course in the real world all objects affect all other objects, but in the simulation you should set up relationships only as needed to decrease the work Houdini has to do to run the simulation.
Types of relationships
Some common relationships in Houdini simulations are collision (one object will bounce off another), constraint (one object is constrained by some aspect of another, for example, to stay within a certain distance), fluid sinks (an object removes volume from a fluid object) and fluid sources (an object adds volume to a fluid object).
Rigid body collision relationships
If two objects have no collision relationship, they will pass through each other.
If two objects have a one way collision relationship, the affector object will not change, but the affected object will bounce off. Because this only requires the solver to calculate the effect of the collision on one object instead of two, this is more efficient than a more realistic mutual collision.
This is useful for efficiently representing modeling between light and heavy or immobile objects, where the light object’s impact would have no visible effect on the position of the heavy object.
If two objects have a mutual collision relationship, they will bounce off each other. This requires simultaneous solving (see below).
To speed up the simulation, you should try to only set up collision relationships between objects can actually collide, and look for opportunities to use one-way collisions instead of mutual.
Note | To manually set up collision relationships, you must first turn off the Make objects mutual affectors option on the RBD Solver node. When this option is on (the default), it automatically makes all active objects collide with each other, for the sake of convenience (so you don’t have set up relationships manually). |
Constraint relationships
A constraint relationship establishes a relationship between an object and an anchor.
A pin constraint constrains an object to stay a certain distance from a goal anchor (as if it was connected to the anchor by a rigid stick, but could otherwise swing freely). A spring constraint applies forces to try to keep an object anchor a certain distance from a goal anchor. Goal anchors can be the location of another object, or world space locations.
In Houdini 8, the only type of relationship was a collision relationship. Since Houdini 9, constraints are also relationships. If the interaction you're modeling doesn’t need collision detection (for example, you're modeling a chain as series of object-to-object constraints but you don’t care about whether the chain self-collides), you can set up constraint relationships without collision relationships, which will solve much faster than with collisions.
Fluid sinks and sources
Source and sink relationships establish relationships between objects and fluid boxes, so that the object creates or removes fluid from the box.
The affector matrix
The details view includes an item in the left-side tree called Affector matrix which shows relationships in the simulation as a table.

| Empty | No relationship. |
| Blue | One-way relationship (the row object affects the column object). |
| Green | Mutual relationship (the row object and the column object affect each other). |
| Yellow | Relationship with no effect. For example, if you have a static RBD object (its Make active object parameter is off), and you merge it together with other objects with mutual collisions (or one way collisions affecting the static object), the collision relationship has no effect, because static objects don’t move. |
Relationships and solve order
Relationships are largely arbitrary — what they do depends on what the solver chooses to do with them — but they do affect solve order. See solving for more information on how relationships affect how Houdini solves the simulation.
