How to visualize Projective Geometric Algebra's pseudoscalar
e0123, aka "I", really is just "eye"
The dual quaternions, aka the double cover of rigid motions in 3D, involves this weird thing called e0123. The rest of the dual quaternions makes sense to me - there’s the scalar part, and the 6 factors (e01,e02,e03,e12,e13,e23) that give you the line that is preserved by the motion if it’s a pure rotation. The pseudoscalar e0123 has something to do with screw motions, but what is it?
This post assumes familiarity with Euclidean Projective Geometric Algebra in 2 and 3 dimensions, also known as Cl(2,0,1) and Cl(3,0,1). If you’re not familiar with these, I recommend this presentation:
This post also involves talking a bit about “what things would be like in 4D”. In general I steer clear of talking that way, because it really isn’t necessary (quaternions in particular do not need to be introduced with reference to the sphere in 4D!).
But this post assumes you’re a bit hardcore and you really want to understand e0123. It involves stepping down a dimension to 2D (2,0,1), but we are going to SIMULTANEOUSLY keep our (2,0,1) picture and our (3,0,1) picture. The way I want to do this is to imagine our (2,0,1) stuff happening "in the e3 plane". So, e3 exists and you can picture it - but if we do any operations with e3, we are momentarily cheating.
Ok, (2,0,1). We have e1 and e2 and e0 as usual, and we can take any linear combination of those up to get our ordinary reflections:
(3,0,1) goggles on: they are all planes orthogonal to e3. e0 is a sphere at infinity
(2,0,1) goggles on: they are all lines sitting in the plane. e0 is a circle at infinity.
Alright, next up is points and rotations. We can make e12 as usual, and e01 and e02, and add them to our scalar to make rotations:
(3,0,1) goggles on: they are all lines orthogonal to e3, and rotations around them
(2,0,1) goggles on: they are all points sitting in the plane, and rotations around them
How about translations, eg rotations around e01, which is at infinity? They're a bit interesting:
(3,0,1) goggles: they are lines at infinity. They're still orthogonal to e3. It's kinda helpful to see them as circles, circles that cut e3 in two points, for example e01 touches e3 at the points e013 and -e013. Translations around e01 preserves the points e013 and -e013.
(2,0,1) goggles: they are points at infinity. They're still in the plane we consider. e01 and -e01 both look like points to us, and translations around e01 preserve them. With 2D goggles on, we can't see a difference between e013 and e01.
This should all be very familiar - if it isn’t, go back to your De Keninck videos!
The pseudoscalar of 2D helps perform transflections, which are like a 2D version of screw motions
Aside from the above there's one more operation we can perform in 2D, which is a transflection, aka glide reflection. As a graphics developer I've never explicitly coded a transflection anywhere. But we make screw motions frequently (every 4x4 matrix is potentially one!), and transflections are very analogous with screw motions. The relationship between transflections in 2D and the 2D pseudoscalar (e012) is the same as the relationship between screw motions and the 3D pseudoscalar (e0123).
First a review of rotoreflections, aka “improper rotations”, and transflections in 3D. Both of these things are mixed grade objects, containing both grade 1 and grade 3. Here's a construction of a rotoreflection:
R = 0.96 + 0.28 * e12 (slight rotation)
Q = e3 (reflection)
R*Q = 0.96 * e3 + 0.28 * e123 (slight rotation followed by reflection)
Note that e123 = e3^e12, eg it is a point in the e3 plane, and the transformation will involve a rotation around that point (usually 3D rotations are around a line).
And here's a transflection:
T = 1 + e01 (translation in x direction)
Q = e2 (reflection in y axis)
T*Q = e1 + e012
WAAAAIT A MINUTE! e012... that's the PSS of (2,0,1)!
But we were picturing that translation-reflection in 3D, right? Yes. e012 is a point, specifically a point at infinity. You could say it is “where the line e12 meets the sphere at infinity, e0”, or alternatively it is “where the plane e1 meets the line e02”.
And now we have our way to make sense of the Euclidean PGA pseudoscalar!
(3,0,1) goggles: e1 + e012 is a plane together with e012, which is a point. It’s where the plane e1 meets the line e02. So the operation that e1+e012 performs is a reflection followed by a translation, all preserving the point e012
(2,0,1) goggles: e1 + e012 is a line together with e012, which is… something. It’s where the line e1 meets the point e02, and geometrically that’s… weird. It’s something which, well, it isn’t visible to me, it’s... I. I is not visible to me... I is where I am, where my eye is... it is… the place where I sit, from where I see the plane e3!
(3,0,1): I can get e012 by taking the plane at infinity, and the line e12, and meeting them
(2,0,1): I can get e012 by taking the circle at infinity, and the origin point e12, and... meeting them... what the hell? But they don't meet! Ohhhh, but I guess they do in 3D space! Because everything is cutting through my I up there.
Apply this logic to e0123 and it works fine! Just with screw motions instead of transflections.
In defence of the PGA pseudoscalar
There’s a nice trick you can do with the PGA pseudoscalar in any dimension. In 2D you can get the point at infinity that is faced at by a line, by multiplying that plane by the PSS (e012), eg
(e1+e0)*e012 = e02
Where (e1+e0) is a line in 2D one unit displaced from the origin. e02 is a point at infinity - specifically, it is the “normal” to that line, which can be useful to know! Briefly thinking back to the transflection thing, it also happens to be the point around which you would translate if you were doing a transflection along (e1+e0).
Now a 3D example. Suppose you have a line, L, in 3D (and it isn’t a line at infinity). And you may (promise!) want the line at infinity that encircles L. Well, you can get that by multiplying L by the 3D PSS (e0123), eg:
(e13+e01)*e0123 = e02
That operation there is quite useful! A screw motion around e13+e01 will involve a translation around e02 (aka e02 will be part of its logarithm).
Some people say that the euclidean PGA pseudoscalar is bad because it's degenerate, so you can’t use it for many nice things. In elliptic PGA your PSS can do the Poincare dual, and that’s nice. In CGA (aka hyperbolic PGA) you can use it to get the sphere surrounding a point - also nice. I don’t know if e0123 is as nice as that. But this trick is nice, and it’s also very specific to euclidean space. So it shouldn’t surprise us that the dual quaternions have this factor in it!