I was able to vastly improve my understanding of quaternions by trying to figure out how to represent rotational velocity and angular momentum quaternionically. The key insight for me was a general understanding of Lie groups and their corresponding Lie alegbras. After getting the commuting diagram between H_0 (quaternion angular velocities), so_3 (axis-angle/cross product matrix velocities), SO_3 (3D rotation matrices) and Versors (unit quternions, representing 3D rotations), it was easier for me to treat quaternions in a non-mystical way. Lie groups are good for more than that, but this way of looking at it definitely helped me with quaternions. You can probably run through the same process if you just google variations on “quaternions SO3” and “quaternion Lie algebra” and start grabbing PDFs.
I don’t know about anyone else, but I found this substantially more complicated than it needed to be.
First, read the intro to “How to Fold a Julia Fractal.” The whole thing is long, but you only need the part that explains imaginary numbers. They’re “numbers that turn.”
Then, look at how a quaternion is represented: (1, i, j, k). The 1 is a scalar value indicating that no scaling is happening. Then i, j, and k are just “numbers that turn,” being used to describe rotation in three distinct axes. So altogether, a quaternion is a compact way to describe three-dimensional rotation.
(1, i, j, k)
There’s nothing special about the fact that three imaginary components are being used, except that we live in three dimensional space, and so real-world things rotate in three dimensions. If you wanted to model a higher-dimensional world, you could imagine rotation (say, with 8 dimensions) being represented like this: (1, i, j, k, l, m, n, o, p), with each of the imaginary number representing one dimension of rotation.
(1, i, j, k, l, m, n, o, p)
Note of course that none of this gets much into the math. It’s just a way for understanding quaternions intuitively.