Rigid Body Dynamics

Before jumping into ABD, let's review the traditional approach to simulate rigid body dynamics.

Let’s begin by reviewing Newtonian mechanics — specifically, Newton’s second law for a particle at position with mass :

Now, compute :

Here, is called the angular momentum, and is the torque.

For a rigid body , we can integrate over its volume:

where is the mass density of at position .

Now let denote the center of mass (COM) of . Then:

Combining both:

Since , we can further simplify:

where the right-hand side is the torque about the center of mass.

Denoting the right-hand side as the torque , compute the left-hand side:

Here, the inertia tensor is defined as:

Since depends on , so does . Letting be the rotation matrix (the rotation of from time to ). It's easy to verify that:

Differentiating yields:

Thus, the rigid body dynamics law becomes:

These equations resemble Newton's second law. The first describes how forces affect the linear momentum of the rigid body, while the second describes how torques influence its angular momentum.

With a simple explicit integrator, we can simulate rigid body motion via:

Here, is the unit quaternion representing the body’s rotation. Its update is based on a first-order approximation:

which leads to:

where ; is the composition of the rotation represented by the rotation vector and the rotation represented by .

Remark 25.1.1 (Rotation Vector to Quaternion). A rotation of angle around the axis defined by the unit vector can be represented by the quaternion