Coupling
How rigid bodies, fluid, and cloth exchange forces inside a single substep.
Coupling is the suite's reason to exist: all body types integrate on the same clock, so forces exchange inside a substep instead of one frame late. A splash pushes the boat during the same step the boat displaces the water.
What couples with what
| Rigid | Fluid | Cloth | |
|---|---|---|---|
| Rigid | contacts, stacking | buoyancy, drag, splash | drape, collide |
| Fluid | displacement | — | soak weight, surface drag |
| Cloth | wraps, tears | porous flow-through | self-collision |
Enabling it
Coupling is on by default between bodies in the same solver. The switch that matters is the pair mask:
solver = op('matter_solver1')
solver.par.couplefluidcloth = False # banner ignores the rainPair masks are the first performance lever. A courtyard scene where rain never believably moves the flags can drop fluid→cloth and win the substep back.
Walkthrough: boat on water
Drop a Matter Solver, a Matter Fluid fed by a tank-shaped SOP, and a
Matter Rigid pointed at the boat mesh with Collision Shape: auto-convex.
Set boat Density below the fluid's rest density — 400 kg/m³ floats
convincingly against water's 1000.
Read the boat transform out of Matter Out into a Geometry COMP
instance. The camera never knows the hull is a proxy.
Coupled systems share the substep budget — a fluid at 2 substeps forces the rigids it touches down to 2 as well. If stacking gets soft the moment fluid enters the scene, raise the solver's substeps, not the rigid's stiffness.