Matter

Operators

The eight Matter operators and the network shape they expect.

Eight operators, one pattern: the solver owns time, everything else declares state or reads it back.

OperatorFamilyRole
Matter SolverCOMPThe clock — owns substeps, gravity, budget
Matter RigidCOMPRigid body set from SOP instances
Matter FluidCOMPSPH fluid volume
Matter ClothCOMPCloth / soft shell from a mesh
Matter ConstraintCOMPJoints, motors, pins between bodies
Matter ForceCOMPField forces — wind, vortex, attractors
Matter EmitterCOMPStreams new particles / bodies at rate
Matter OutCHOPReadback — transforms, velocities, contacts

Network shape

Typical wiring
matter_solver1
 ├─ matter_rigid_crates     (SOP: crate instances)
 ├─ matter_fluid_tank       (SOP: emission volume)
 ├─ matter_cloth_banner     (SOP: banner mesh)
 ├─ matter_force_wind
 └─ matter_out1             (CHOP → instancing network)

Bodies register with the solver whose path their Solver parameter names — parenting in the network editor is for humans, the path is what binds.

One solver per interacting system. Two solvers never exchange forces — use that deliberately to isolate a background sim from a hero sim at different budgets.

Reading results

Contacts drive audio
contacts = op('matter_out1')['contact_impulse']
if contacts.eval() > 4.0:
    op('audio_hit').par.play.pulse()

Matter Out exposes contacts as CHOP events with impulse magnitude — collision-driven sound and lighting cost one export, no Python per frame.

On this page