Double cover of SO(3), the belt trick, and quaternion rotations
SU(2), the group of 2×2 unitary matrices with determinant 1, is topologically a 3-sphere S³. It maps onto SO(3) in a 2-to-1 fashion: every rotation corresponds to exactly two unit quaternions, q and −q. This double cover is not just a mathematical curiosity — it's the reason spin-½ particles need a 720° rotation to return to their original state.
The famous belt trick demonstrates this physically: a plate connected to a frame by belts can't undo a 360° twist, but a 720° twist unwinds perfectly. Quaternions also provide the smoothest interpolation between rotations via SLERP, which is why they're the representation of choice in computer graphics and aerospace.
The unit quaternions form a 3-sphere S³ in 4D space. Using stereographic projection, we can visualize this as a point cloud in ℝ³, colored by distance from the identity. Toggle the display to highlight antipodal pairs — each pair (q, −q) represents the same rotation in SO(3).
This demonstration shows why SU(2) is a double cover of SO(3). A plate connected to a frame by ribbons is rotated. After a 360° rotation, the belts are twisted and cannot be untwisted without rotating further. But after a full 720° rotation, the belts miraculously untwist — proving that the loop in SO(3) lifts to a closed path in SU(2) only after going around twice.
Key insight: The fundamental group π₁(SO(3)) = ℤ/2ℤ means there is exactly one non-trivial class of loops in SO(3). The 360° loop is non-contractible; the 720° loop is contractible. SU(2), being simply connected, resolves this by “unrolling” the ambiguity.
A unit quaternion q = a + bi + cj + dk encodes a rotation: the vector (b,c,d) gives the axis scaled by sin(θ/2), and a = cos(θ/2). Adjust the four components (auto-normalized to unit length) and see the rotation applied. Toggle −q to verify that both quaternions give the same rotation.
Interpolating between rotations using Euler angles produces uneven, jerky motion with possible gimbal lock artifacts. Quaternion SLERP, by contrast, traces a geodesic on S³, giving perfectly smooth constant-speed interpolation. Compare the two side-by-side and watch the angular velocity graph to see the smoothness difference.