Rigid Constraints


Constraints limit an rigid body's movement. This is useful for manipulating objects. An example of a constraint would be a hinged door, limited to rotate only along the Y axis.
Constraints could also define a maximum range of movement, like a door being able to rotate only 150 degrees.
Constraints can be combined to form a joint between two Things. This is the model that the ODE (Open Dynamics Engine) uses. Joints can simulate joints in the real world (like hinges, ball and socket joints, a car axle, etc). They can also be used for collisions. For example, a ContactJoint would be applied between two Things when they collide, and the joint would prevent the two Things from penetrating each other's space. It also facilitates the transfer of force between Things.
A good test case for the constraints system would be simulating that desk ornament with the hanging steel balls that clack together.