Skip to content(if available)orjump to list(if available)

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

rsp1984

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

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?

rsp1984

You're correct. The logarithm produces what's essentially a cross product matrix, 0 on the diagonal and symmetric off-diagonal. The off-diag elements are the 3-vector I was talking about. Thanks for pointing that out.

itishappy

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.

nyrikki

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

chombier

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?

koolala

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

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

itishappy

I'm wrong. Too late to edit, correction below:

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

    rotors:
    a*1 + b*xy + c*yz + d*zx
The representations I shared previously with zero real component are for the points under rotation, not the rotors themselves which have real components in the general form. Apologies for misinformation!

The exceptions are 0 degrees and 180 degree rotations (and 360, 540, etc...), which will have one and zero as the real components, respectively.

adrian_b

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.

HelloNurse

Applications of quaternions to 3D geometry do not matter: as a field or vector space over real numbers quaternions are four dimensional because 1, i, j, k are linearly independent. Over complex numbers they are a two dimensional vector space instead.

aap_

And 3x3 matrices are 9 dimensional, yet usually you can interpret them perfectly fine with a 3d perspective. The dimension of the algebra is usually not very meaningful if you're trying to gain some intuition about it.

adrian_b

An unfortunate fact in mathematics in that the term "vector" is ambiguous.

There are vectors in the wide sense, i.e. elements of a linear space. Linear spaces are a.k.a. vector spaces, where "vector" is used in the wide sense.

Then there are vectors in the strict sense, which is the sense corresponding to the etymology of the word "vector", which have additional properties over the axioms of a linear space.

Vectors in the strict sense are elements of some particular linear spaces that are associated with the translations of affine spaces, and which are also associated with geometric algebras, where the dimensions of the geometric algebras as linear spaces over the real numbers are 2^N, where N is the dimension of the set of vectors as a linear space over the real numbers.

Quaternions as a linear space over the real numbers happen to be 4-dimensional, but this 4-dimensional space has no relationship whatsoever with a 4-dimensional space that would be an extension of the familiar 3-dimensional space of the Euclidean geometry, which models the space in which we live.

Since the quaternions are means for describing transformations of the 3-dimensional space of Euclidean geometry, all applications of the quaternions include the 3D geometry in a more or less disguised form, in the same way as any application of complex numbers includes the geometry of the Euclidean plane, even if that is not obvious because the applications are described in an abstract way, using only the axioms of the field of quaternions or of the field of complex numbers.

Many applications of complex numbers in electronics or digital signal processing become far more easier to understand when one thinks about the geometric transformations of a plane that correspond to complex numbers, instead of thinking only about the axioms of the field of complex numbers. The same happens for quaternions.

The physical space in which we live and that we can imagine, is modeled mathematically as an affine space, i.e. as a space of points. We can also imagine affine spaces with more dimensions than 3.

Some linear spaces are vector spaces in the strict sense, being sets of the translations of an affine space. Other linear spaces, like the set of quaternions, are not vector spaces in the strict sense. In order to help our perception of such abstract linear spaces, we may use tools like graphs or drawings that map some part of the abstract linear space to an affine space that we can visualize, e.g. on a computer display, but we must keep in mind that this is just a mapping and that the nature of that abstract linear space is different from the spaces that we can see.

ColinHayhurst

> 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.

JadeNB

> 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 ….)