top | item 43234510

Rotors: A practical introduction for 3D graphics (2023)

77 points| bladeee | 1 year ago |jacquesheunis.com

20 comments

order

chombier|1 year ago

Geometric Algebra supporters keep advertising that rotors are great since they work in any dimension, which makes me wonder: would an arbitrary n-dimensional SVD-like decomposition benefit from using rotors instead of rotation matrices, and if so how? And if not, why?

thesz|1 year ago

There are 2^n coefficients in the general GA transform (versor). One should be very, very careful dealing with GA versors of high dimensions.

rsp1984|1 year ago

If you take the Matrix logarithm of an SO(3) (3x3 rotation matrix) you get a 3-vector that represents the axis of rotation, scaled by the rotation amount (in radians). This is also a cheap operation using the inverse Rodrigues formula [1].

The 3-vector is not a bijective representation (starts repeating after length == 2*pi) but otherwise is the most elegant of them all, IMO. No need for rotors or quaternions. Plus you can simply use Rodrigues to get a rotation matrix back.

[1] https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula

mecsred|1 year ago

Thanks for the link to the Rodrigues form, that's quite interesting. Slightly confused by your comment though, shouldn't the matrix logarithm produce another matrix?

nyrikki|1 year ago

SO(3) is nonabelian, and isn't simply connected, which is why the surjective homomorphsin to SU(2) is valuable, particularly in 3D graphics.

itishappy|1 year ago

Composing axis-angle representations gets real weird real fast. You can convert them into 9 element rotation matrices, but then you lose the benefits of storing them using only 3 elements in the first place.

koolala|1 year ago

Saying quaternions require thinking in 4 dimensions seems like a lie with no proof. The geometric product is just the quaternion product broken up into scaler and vector parts.

itishappy|1 year ago

It's no lie, quaternions do actually have 4 dimensions. The part I take issue with is that rotors also require 4 dimensions to represent 3d rotations, they're just labeled slightly more intuitively.

    quaterions:
    0*1 + b*i + c*j + d*k

    rotors:
    0*1 + b*xy + c*yz + d*zx
I've included real components, but when representing rotations they'll always be zero. (They'll be non-zero during intermediate calculations though, so you need to consider them!)

Now... rotors do have some unique powers in that they're incredibly general. You don't need to hop from complex numbers to quaternions when you move between spaces and beyond, you can just use rotors for everything:

    2d:
    complex numbers
    rotors

    3d:
    quaternions
    rotors

    4d:
    octonions
    rotors

    Minkowski spacetime:
    ???
    rotors

adrian_b|1 year ago

You are right.

Quaternions are a concept specific to the 3-dimensional (Euclidean) space, in the same way as "complex" numbers (for whom "binions" would be a more appropriate name) are a concept specific to the 2-dimensional (Euclidean) space.

Neither quaternions nor "complex" numbers have anything to do with a 4-dimensional space of vectors.

Quaternions are a field that is a subset of the 2^3 = 8-dimensional geometric algebra associated with a 3-dimensional space of vectors, while the "complex" numbers are a field that is a subset of the 2^2 = 4-dimensional geometric algebra associated with a 2-dimensional space of vectors.

While vectors are associated to transformations of the corresponding affine space that are translations, quaternions/complex numbers are associated to transformations of the space that are rotations or similarities.

JadeNB|1 year ago

> Saying quaternions require thinking in 4 dimensions seems like a lie with no proof.

How could one even subject a statement like that to proof? If you insist that you thought about quaternions without thinking in 4D, and the author insists that you're just so used to thinking in 4D that you didn't even notice it, then who's to arbitrate that dispute?

(I'm sensitive to these issues because I'm a mathematician of the "visualizing 4D is just visualizing n dimensions and setting n = 4" variety, so I have no idea when I'm particularly thinking in 4, or any other specific number, of dimensions ….)

ColinHayhurst|1 year ago

> The geometric product is just the quaternion product broken up into scaler and vector parts.

The geometric product works in any dimensions. They have a clear geometric intepretation. Rotations and translations can done using the same algebraic operations.