⚠️ 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
↓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 ⚠️ 😵💫 ?
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.