# Principal Axes of Inertia. Sometimes Things Rotate in Weird Ways.

If you take a block and toss it in the air, it might do something weird — it could tumble such that the angular velocity vector is not constant. Here’s an example.

Notice that once the eraser leaves my hand, it doesn’t rotate just one way. Instead, it flips over. If you think about this, it’s pretty weird.

# Ball and Spring Model

One way to model the rotation of a rigid object is to not have a rigid object. I know that seems crazy, but it’s going to work. Trust me. Imagine that I have three masses in space and each masses is connected to the other masses with a stiff spring. Something like this.

Each mass (I’m going to call them A, B, C) have two forces acting on them from the two springs. I can calculate the vector values of these spring forces. In general, the vector spring force can be calculated as:

In this expression, k is the spring constant and L is a vector from one side to the other side of the spring (and L_0 is the unstretched length). If you use this method (along with the unit vector L-hat) you get a VECTOR value for the spring force. It’s kind of a big deal since it allows us to model the motion of these mass in 3D.

I’m not going to go into ALL the details of this build (because I want to focus on the results) but here is a video going over some of the important stuff.

Here’s part of the code (full code here).