joint-multibody-capability#

Code

JT.001

Validator

Compatibility

openusd

Tags

🔑

Summary#

Rigid bodies which are not free floating should be connected using joints.

Description#

Rigid bodies that need to move in relation to each other or are fixed in the world, should use a UsdPhysicsJoint prim or one of its subtypes to properly constrain their motion.

Why is it required?#

  • To describe constraints between rigid bodies for simulation in a physics engine.

Examples#

# Invalid: No joint between rigid bodies
def RigidBody "Box" (
   prepend apiSchemas = ["PhysicsRigidBodyAPI"]
)
{
}

def RigidBody "Sphere" (
   prepend apiSchemas = ["PhysicsRigidBodyAPI"]
)
{
}

# Valid: Joint between rigid bodies
def PhysicsFixedJoint "FixedJoint"
{
   rel physics:body0 = </Box>
   rel physics:body1 = </Sphere>
}

# Valid: Joint between rigid body and World
def PhysicsFixedJoint "FixedJoint"
{
   rel physics:body0 = </Box>
}

How to comply#

  • Use a UsdPhysicsJoint prim or one of its subtypes to constrain rigid bodies together.

  • Use a UsdPhysicsJoint prim or one of its subtypes to constrain a rigid body to the World.

For More Information#