Exploring Spaces 4.5: 3D Rotations

elliot evans
May 28 2024

⚠️ Major Correction - May 29 2024 ⚠️
The 3D Rotation Space (SO(3) a.k.a. ℝℙ3) input was previously incorrect and has been completely redone.

See the Question & Answer section below for more info.

The Space of 3D Rotations: SO(3) a.k.a. ℝℙ3

r =

Rotating a Sphere Using Your Selected Point r


Question & Answer

So SO(3) is the same as ℝℙ3?

Yep. They wrap around in the same way. We talked about what "wraps around like" means in Sphere.

Why is SO(3) represented as a slider and a circular input that has edges that wrap around to the opposite edge?

You can think of a point in SO(3) as choosing how much to rotate, and an 3D axis to rotate around. The amount of rotation is chosen using the slider, and the axis to rotate around is chosen using the circular input.

The space of "how much to rotate" is a circle, which is represented as a slider that wraps around top to bottom.

The space of 3D axis to rotate around is the same as the space of lines through the origin in the 3D, and that space is ℝℙ2 which we explored in Twisted Taping.

Why do the point and shadow point in the slider swap when you move the point in the circular input across the edge of the circle?

Let me try to explain this without making another visualizer:

First, note that a 3D rotation by a certain amount around a vector is the same as a 3D rotation by the negative of that amount around the vector pointing in the opposite direction.

Second, axis/lines are like vectors, but unlike vectors they point in both directions, so they are their own opposite.

So, in order for the input to not have any jumps in the rotation it represents, the rotation amount must be negated when the axis selector point wraps around the edge of the input. The shadow point is there to show you what negative rotation amount you are close to by wrapping around the edge of the circle.

Why does the circular input grow and shrink as you move the slider?

The thing is, If you've chosen an amount of rotation close to 0, then moving the axis barely changes the rotation; and if you've chosen 0 rotation, then moving the axis doesn't change the rotation at all. This means that in the space of 3D rotations, there's no space to move around when rotation amount is zero, less space to move around when rotation amount is small, and more space to move around when rotation amount is close to a half turn.

I thought of two ways this could be visualized as the rotation amount decreases: 1. by shrinking the spherical inputs and leaving the point the same size, or 2. by making the point grow to fill the whole spherical input. I previously went with 2, but have changed the input to use approach 1. Do you know another way this could be visualized?

What changed in the Major Correction on May 29 2024?

The 3D Rotation input was previously:
I realized this input was incorrect while playing around with it and reading some more about the difference between SO(3) and SU(2). I realized that this input allowed you to selected a single 3D rotation in two different ways, meaning that it is actually an SU(2) input, not an SO(3) input. Specifically, given a selected 3D rotation you can get the same rotation by moving the point in the two circles to the same place in the opposite circle and vertically mirroring the point in the slider.

The new input is updated so that there is only one way to selected a 3D rotation, meaning it now accurately represents the space of 3D rotations called SO(3).

I also updated the question and answer section to match the redone input.
⚠️ Math-y and frustrated notes folow. Continue at your own risk. What is going on with how people work with 3D rotations ⚠️ 😵‍💫 ?

What about Unit QuaternionsGeometric Algebra RotorsSU(2) ≅ Spin(3) ≅ 3-sphere? Don't you need those for 3D rotations?

No, you don't need those.

The spaces listed in the question are popular for working with 3D rotations. I believe I understand that they are all the same1, but that they are not the same as SO(3). For every 3D rotation in SO(3), there are two points in each of the listed spaces!..

Unit Quaternions ≅ Geometric Algebra Rotors ≅ SU(2)Spin(3) ≅ 3-sphere are overly complicated for working with 3D rotations in that sense.

I still don't really understand why the listed spaces are more popular to work with than SO(3). Is it because they have nicer algebraic properties? Is it because they can more easily be interpolated? Is it because they are easier to represent? 2 Let me know if you know a good explanation.

1 isomorphic as lie groups?
2 I've heard that they avoid gimbal lock, are more numerically stable in numerical computing, are faster, require less memory, etc. but I don't think any of those are true because SO(3) is literally part of SU(2) so you could use SU(2) but ignore the difference between negative and positive points. Why doesn't anyone talk about using SO(3) directly!?

What about O(3)?

O(3) is cool. Its the space of all rotations of a sphere and all rotations of the mirror image of that sphere. Input wise, if you put a switch input with two options beside the SO(3) input above, then it would be O(3). I might make that and put it here at some point.

Exploring Spaces Comments