Leo Dorst
l.dorst@uva.nl
Steven De Keninck
enkimute@gmail.com
SIBGRAPI 2021, Brazil
Define a sensible geometric product such that reflection of an oriented plane \(x\) in a plane mirror \(a\) becomes:
\[x ~~\mapsto~~-a \, x \, a^{-1}\]
The mirror plane reflects to its negative:
\[a \mapsto -a\,a\,a^{-1} = -a\]
So planes are oriented, they have sides.
To make the geometric product work in the right way, it needs to be bilinear, associative, not generally commutative, and square to a scalar (which is \(a^2 = a \cdot a\) ).
1.1
mirror \(a\)
\(x\)
\(-axa^{-1}\)
You may have used the homogeneous coordinates, \([\mathbf{n},-\delta]\) for a plane. In PGA we use:
$$p = \mathbf{n} + \delta\,{\sf e}.$$
Here \({\sf e}\) is a basis vector for the extra dimension.
It can be interpreted as the plane at infinity and satisfies
\({\sf e}^2 = 0\).
That explains the notation \(\mathbb{R}^{d,0,1}\) for PGA: there are \(d\) Euclidean dimensions, plus an extra null dimension.
1.2
A plane \(b\) perpendicular to a mirror \(a\) reflects to itself: \( -a \,b \, a^{-1} = b\). So we have:
algebra \(\rightarrow\) \(a \,b = - b \, a \Longleftrightarrow b \, \bot a\) \(\leftarrow\) geometry
perpendicular planes anticommute
This holds especially for the Euclidean coordinate planes:
\(\mathbf{e}_1\,\mathbf{e}_2 = -\mathbf{e}_2\,\mathbf{e}_1\), etc.
We also demand it for the special plane \(\mathsf{e}\):
\(\mathsf{e}\,\mathbf{e}_i= -\mathbf{e}_i\,\mathsf{e}\).
Of course, identical planes commute: \(\mathbf{e}_1\,\mathbf{e}_1 = \mathbf{e}_1\,\mathbf{e}_1\).
1.3
\(a\)
\(b\)
Perform two reflections in succession:
\(x ~~~\mapsto~~-a_2 \, (-a_1\, x \,a_1^{-1})\, a_2^{-1}= (a_2\,a_1)\, x\, (a_2\,a_1)^{-1}\)
This shows that elements of the form \((a_2\,a_1)\) act as rotation/translation operators. We can clearly continue this with more reflections.
A geometric product of planes produces a motion, when applied as sandwiching. We call it a motor.
Motors are computational elements of the plane-based geometric algebra PGA: Euclidean motion operators are thus naturally included!
1.4
\(a_1\)
\(a_2\)
\(a_1\)
\(a_2\)
REFER TO GAUGE FREEDOM, REPLAY DEMO?
DESIRE TO REPRESENT THAT WAY
TWO ISSUES: LINE REPR, AND EXP
actually this is better shown as demo only, the math is not very helpful. creating the awareness is enough
Double reflection in two parallel plane mirrors:
\(p_2\,p_1 =\) \((\mathbf{n} + \delta_2 \mathsf{e}) \, (\mathbf{n} + \delta_1 \mathsf{e}) \)
\(= \mathbf{n}\,\mathbf{n} + \delta_2\, \mathsf{e} \,\mathbf{n} + \delta_1\,\mathbf{n}\,\mathsf{e} + \delta_2\delta_1 \,\mathsf{e}\,\mathbf{n}\,\mathsf{e}\,\mathbf{n} \)
\(= 1 - (\delta_2-\delta_1) \mathbf{n}\, \mathsf{e}+ 0\)
\(= 1 - \mathbf{t} \mathsf{e}/2\)
\(= 1- \mathbf{t} \,\mathsf{e}/2 + \frac{1}{2!}(-\mathbf{t} \,\mathsf{e}/2)^2+\cdots\)
\(= \exp({-\mathbf{t} \,\mathsf{e}/2})\)
Translations are additive:
\((1-\mathbf{t}_2\mathsf{e}/2)\,(1-\mathbf{t}_1\mathsf{e}/2)\) \( = 1 - (\mathbf{t}_2+\mathbf{t}_1)\mathsf{e}/2 + \mathbf{t}_2\mathsf{e}\,\mathbf{t}_1\mathsf{e}/4\) \(= 1 -(\mathbf{t}_2+\mathbf{t}_1)\,\mathsf{e}/2\)
You see how \({\sf e}^2 = 0\) is crucial to making this work.
2.1
\( \mathbf{t} = 2 (\delta_2-\delta_1)\,\mathbf{n} \)
\(p_1\)
\(p_2\)
2.2
...and \((\mathbf{e}_2\mathbf{e}_3)^2 = (\mathbf{e}_3\mathbf{e}_1)^2=-1\).
Shades of quaternions? Yes!
Let us choose handy local coordinates so that the two mirrors are \(p_1= \mathbf{e}_1\), and \(p_2 = \mathbf{e}_1 \cos(\phi/{\small 2}) + \mathbf{e}_2\sin(\phi/{\small 2})\). Then
\(p_2\, p_1 =\)\(\big(\mathbf{e}_1 \cos(\phi/{\small 2}) + \mathbf{e}_2\sin(\phi/{\small 2})\big)\,\mathbf{e}_1\)
\(= \mathbf{e}_1^2 \cos(\phi/{\small 2}) + \mathbf{e}_2\mathbf{e}_1\,\sin(\phi/{\small 2})\)
\(= \cos(\phi/{\small 2}) - L \sin(\phi/{\small 2}) \)
\(= \exp({-\phi L/2})\)
with \(e_1e_2 =\)\( L\) the common line and \(\phi\) the rotation angle.
Note that a line has a negative square:
\(L^2 = \mathbf{e}_1\mathbf{e}_2\mathbf{e}_1\mathbf{e}_2 = - \mathbf{e}_1^2\mathbf{e}_2^2 = -1\),
motivating the exponential notation.
\(p_2\)
\(p_1\)
\(\phi/{\small 2}\)
\(L\)
(Steven showed you
that \(\mathbf{e}_1\mathbf{e}_2\) is a line \(L\).)
(Note that the exponential notation has no gauge ambiguities, unlike \(p_2p_1\). Yet the operators still combine correctly!)
The line common to two non-orthogonal planes \(a\) and \(b\) is the bivector
\(L = a \wedge b \equiv \frac{1}{2} (a \, b - b\, a)\).
The line norm \(\|L\| = \sin(\angle(a,b))\) is a useful numerical stability measure.
The wedge product \(\wedge\) (also known as the meet or outer product) is bilinear, anti-symmetric, and extended to be associative. Note that \(a \wedge a = 0\).
(Associativity by defining \(x \wedge A = \frac{1}{2}(x \, A + \hat{A}\,x)\), with \(\hat{A}\) giving minus sign for odd \(A\) ).
2.3
(This is the geometry of Plücker coordinates.)
Example: \(\Big(\mathbf{e}_1 \cos(\phi/{\small 2}) + \mathbf{e}_2\sin(\phi/{\small 2}) + \delta \mathsf{e}\Big) \wedge \mathbf{e}_1 = \underbrace{\mathbf{e}_2 \wedge\mathbf{e}_1\,\sin(\phi/{\small 2})}_{direction} + \underbrace{\delta \, \mathsf{e} \wedge \mathbf{e}_1}_{location}\)
\(a\)
\(b\)
\(L\)
The element \(a \wedge b\) commutes with the rotation operator \(a \, b\).
\( (a \wedge b)\, (a\,b) = \frac{1}{2} (a \, b \, a \, b - b\,a\,a\,b) \)
\(= \frac{1}{2} (a \, b \, a \, b - 1) \)
\(= \frac{1}{2} (a \, b \, a \, b - a\,b\, b\,a)\)
\(= (a \, b) \, (a \wedge b) \)
Therefore, the element \(L = a \wedge b\) is invariant under the rotation \(R_{L\phi} =a \, b\), for
\( R_{L\phi}\, L \,R^{-1}_{L\phi} = L\, R_{L\phi}\,R^{-1}_{L\phi} = L\).
So it must be the common line. Circular reasoning is OK for rotations!
2.3a
Standard example:
\( X \) \(= (\mathbf{e}_1+x_1\mathsf{e}) \wedge (\mathbf{e}_2+x_2\mathsf{e}) \wedge (\mathbf{e}_3+x_3\mathsf{e})\)
\( = \mathbf{e}_1\mathbf{e}_2\mathbf{e}_3 + x_1 \,\mathsf{e}\,\mathbf{e}_2\mathbf{e}_3 + x_2 \,\mathsf{e}\, \mathbf{e}_3\mathbf{e}_1 + x_3 \,\mathsf{e} \,\mathbf{e}_1\mathbf{e}_2\)
\( = \mathbf{e}_1\mathbf{e}_2\mathbf{e}_3 - (x_1\mathbf{e}_1 + x_2 \mathbf{e}_2 + x_3\mathbf{e}_3)\,\mathsf{e}\,\mathbf{e}_1\mathbf{e}_2\mathbf{e}_3\)
\(= O - \mathbf{x} \, \mathcal{I}\)
Just like with homogeneous coordinates, a point \(X\) is characterized as \([1, x_1, x_2, x_3]\), but now on the PGA trivector basis \([\mathbf{e}_1\mathbf{e}_2\mathbf{e}_3, -\mathsf{e}\mathbf{e}_2\mathbf{e}_3, -\mathsf{e}\mathbf{e}_3\mathbf{e}_1, -\mathsf{e}\mathbf{e}_1\mathbf{e}_2]\).
The trivector \(a \wedge b \wedge c\) is the point
common to three planes \(a, b, c\).
2.4
\(O\) and \(\mathcal{I}\) are pseudoscalars for Euclidean and PGA space
We can use the point \(X\) as a point reflector: \(y ~\mapsto~-X\,y\,X^{-1}\).
Ultimately, the elements of \(\mathbb{R}^{d,0,1}\) can be expressed on a standard multivector basis, of \(2^d\) basis elements. All elements are used!
For 3D, there are thus sixteen 'geometric numbers' on a basis:
\(\{ 1,\) \(\mathsf{e},\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3,\)\(~ \mathbf{e}_2\mathbf{e}_3,\mathbf{e}_3\mathbf{e}_1, \mathbf{e}_1\mathbf{e}_2,\)\(\mathsf{e}\mathbf{e}_1,\mathsf{e}\mathbf{e}_2,\mathsf{e} \mathbf{e}_3,\) \(\mathbf{e}_1\mathbf{e}_2\mathbf{e}_3,\)\(\mathsf{e}\mathbf{e}_3\mathbf{e}_2,\mathsf{e}\mathbf{e}_1\mathbf{e}_3,\mathsf{e}\mathbf{e}_2\mathbf{e}_1,\) \(\mathsf{e}\mathbf{e}_1\mathbf{e}_2\mathbf{e}_3\}\)
2.5
We can multiply rotation and translation motors to produce a motor for any Euclidean motion. These general motors:
2.6
All elements are basically made from a weighted sum of geometric products.
Therefore they all transform in the same way, by sandwiching:
\[ M\,(x\,y)\,M^{-1} = (M\,x\,M^{-1})\,(M\,y\,M^{-1}).\]
A motor moves a composed element as the composition of the moved constituents; so exactly as you would want!
2.7
No more need to spell out motions depending on argument type.
This simplifies code enormously!
\(M= R_{\phi L} \, T_{\delta L\mathcal{I}} = T_{\delta L\mathcal{I}}\, R_{\phi L}\)
\(L\)
Any Euclidean motion can (locally) be seen as a rotation
around an axis \(L\), combined with a translation along it.
In PGA, two ways of seeing this:
Either leads to a way to compute the logarithm of a motor
\(\log(M) = \log(e^{-Bt/2})= -\frac{t}{2} (\phi\, L + \delta\, L\mathcal{I})\)
The logarithm helps to split the motor into independent parts:
\(e^{-\frac{t}{2}(\phi\, L + \delta\, L\mathcal{I})} = e^{-\phi t L /2} \, e^{-\delta t L\mathcal{I}/2} = e^{-\delta t L\mathcal{I}/2} \, e^{-\phi t L/2}\)
Now we can interpolate motors: \({}^{{}^n} \!\!\!\!\sqrt{M} =e^{\log(M)/n}\) etc.
3.1a
( many hidden subtleties! we solved them for you...)
We retrieve the invariant bivector by the PGA logarithm:
\(\log(M) = \log(e^{-Bt/2})= -Bt/2\)
Bivectors form a linear space in which we can use all the usual interpolation techniques, like: \({}^{{}^n} \!\!\!\!\sqrt{M} =e^{\log(M)/n}\) etc.
3.1
The bivectors form the Lie algebra of the motions in PGA.
We made the motors originally as multiple reflections in planes.
\(p_2\)
\(p_1\)
\(\phi/{\small 2}\)
\(L\)
But in practice we use their exponential form, based on the line (or screw) they keep invariant:
motor = exp(invariant bivector)
You are effectively interpolating in the Lie algebra.
3.2
3.3
We have seen that the anti-symmetric meet product
\[a \wedge b \equiv \frac{1}{2}(a\,b-b\,a)\]
generates objects by intersection. It is non-metric.
The symmetric part of the geometric product
\[a \cdot b \equiv \frac{1}{2}(a\,b+b\,a)\]
is the usual dot product. It is metric and can be extended to all elements. (According to \(x \cdot A \equiv \frac{1}{2}(x \, A - \hat{A}\,x)\) and \( (X \wedge y) \cdot Z \equiv X \cdot (y \cdot Z)\) etc. )
The geometric product is basic, all the rest is derived from it.
4.1
To project an element \(X\) orthogonally onto an element \(A\), do
\[ X ~~\mapsto~~ (X \cdot A)\, A^{-1}\]
Projection is thus universal. Some results are intriguing...
4.2
\(L\)
\(p\)
\((p \cdot L)\,L^{-1}\)
\((L \cdot p)\,p^{-1}\)
\(X\)
\(p\)
\((p \cdot X)\,X^{-1}\)
\((X \cdot p)\,p^{-1}\)
point \(X\) and plane \(p\)
line \(L\) and plane \(p\)
4.3
With the universal orthogonal projection, you can express any linear operator, and make it act on any element.
However, if you have a defining type of motion, better move to a geometric algebra that represents that as its motors.
Motion | Algebra | Signature | Vector |
---|---|---|---|
Re-Orientation | GA | Direction | |
Euclidean | PGA | Plane | |
Conformal | CGA | Sphere | |
Special Relativity | STA | Event | |
3D Projectivities | LGA | 3D Line | |
et cetera |
\(\mathbb{R}^{d}\)
\(\mathbb{R}^{d,0,1}\)
\(\mathbb{R}^{d+1,1}\)
\(\mathbb{R}^{1,d}\)
\(\mathbb{R}^{3,3}\)
\(\mathbb{R}^{p,q,r}\)
4.4
PGA contains the elements of Euclidean geometry
(objects, operators, and their computational representations)
in one compact package, with clear mutual relationships.
For all your Geometric Products, visit
5.1
5.2
Leo Dorst
l.dorst@uva.nl
Steven De Keninck
enkimute@gmail.com
SIBGRAPI 2021, Brazil
1. Join Lines
0. Kinematics
2. Mass in Motion
3. Forque Action
4. Derivatives
5. Dynamics
Two planes meet in a line.
Two points join to form a line.
Are those lines of the same type? No!
\(L_\infty\)
\(L\)
\(L\)
\(L\)
The line from point \(X\) to point \(Y\) is the PGA element \[X \vee Y \]
It is defined using the JOIN product \(\vee\), which is (in a Hodge sense) dual to the MEET product \(\wedge\) (and, like it, a linear combination of geometric products).
One can derive from this that the line from \(X\) in direction \({\bf u}\) is: \[ {\bf u} \cdot X\]
The join in \({\mathbb R}^{d,0,1}\) of two \(d\)-vector points is a \((d-1)\)-vector.
1.1
Consider a 2D picture of a tricycle in a plane, made of points and lines. Analyze and program up, then pop up the third dimension.
Some points remain points (2-vectors to 3-vectors), but the turning points become extruded to axis lines; they were 2D hyperlines.
Some lines remain lines (they were join lines), but the boundary lines become planes (they were 2D hyperplanes).
We need them all!
PGA encodes them all properly, so they extrude correctly to \(d\)-D.
1.2
A point with mass \(m\) moving with velocity \({\bf v}\) through a point \(X\) has as momentum \(P\) the join line:
\[ P=m\,X\vee \dot{X}=m\,{\bf v}\cdot X\]
Note that the inclusion of the point \(X\), where things happen, is more specific than in Classical Mechanics (CM).
It is precisely this practice that makes the PGA momentum into an element of geometry, which allows PGA to be coordinate-free.
2.1
We defined the linear inertia map \(I[\,]\), taking a bivector and producing a dual bivector (i.e. \((d-1)\)-vector). It contains all required information on the mass distribution.
PGA inertia is additive: it can be evaluated anywhere. Inertia of union is sum of inertias. No parallel axis theorem needed!
2.2
definition join line
moving by motor: bivector rate
defining inertia map
We will show that \(\dot{X}_i = X_i \times B\) a little later.
Rate \(B\) is for kinematics.
Momentum \(P\) is for dynamics.
Inertia \(I[\,]\) couples them.
2.3
momentum \(P\)
join line
\((d-1)\)-vector
rate \(B\)
hyperline
\(2\)-vector
inertia \(I[\,]\)
duality map
On a basis of principal frame bivectors \((e_{23},e_{31},e_{12},\)\(e_{01},e_{02},e_{03})\), the 3DPGA inertia map acts like the matrix:
Note the dual nature: converts Euclidean to ideal and vice versa.
It changes a meet line to a join line, intuitively
from an 'around' axis to an 'along' flow line.
(NOTE: not from rotation to translation; translation is also 'around' an infinity line!)
classical mechanics inertia matrix
2.4
Classically, you speak of a force vector \({\bf f}\) attached at a location \(X\), but ultimately only compute with \({\bf f}\) (and leave \(X\) in the text).
In PGA, we compute with the
force line \(F = {\bf f}\cdot\!X\)
This is a geometric object, free from convention on origin or choice of coordinates.
What does that mean, and why does it help enormously?
3.1
In PGA, we compute with the force line \(F = {\bf f}\cdot\!X\).
Consider the same force line \(F\) from another point \(Y\):
\(F = {\mathbf f} \cdot X = {\mathbf f} \cdot (O - \mathbf{x} \, \mathcal{I})\)
\(= {\mathbf f} \cdot (O - \mathbf{y} \, \mathcal{I}) + {\mathbf f} \cdot \big( (\mathbf{y}-\mathbf{x}) \, \mathcal{I} \big) \)
\( = {\mathbf f} \cdot Y + \big((\mathbf{y}-\mathbf{x}) \times {\mathbf f}\big) \wedge\mathsf{e}\)
force at \(Y\) torque at \(Y\)
Force and torque are unified in \(F\), how you experience them depends on where you are. No need for parallel axis theorem!
Let us call this element of physical geometry: forque.
(Yes, \(F\) is like a wrench from screw theory)
3.2
With both total momentum and total forque in the same format of \((d-1)\)-vectors, we are ready to work with Newton/Euler in a geometric, coordinate-free way, in any dimension.
There is a slight (and necessary) subtlety: a sum of lines is not a line but a screw line.
HARD TO DO COMPACTLY, JUST MENTION IT?
OR IS IT ALREADY IN THE PREVIOUS TALK
3.3
We can represent a given motor \(M\) (with initial state \(M_0\)) either in a world frame:
\(M\) = \(e^{-B_wt/2}\) \(M_0\),
or in the body frame:
\(M\) = \(M_0\) \(e^{-B_bt/2}\).
We then get a left or right bivector differential equation for \(M\):
\(\frac{d}{dt}M \equiv \dot{M}\) = \(-\frac{1}{2} B_w M\) = \(-\frac{1}{2} M B_b\).
Use either to solve \(M\) given \(B\), it is a choice of convenience.
4.1
When an element is moved with a time-dependent motor \(M(t) = e^{-B t/2}\), we have
\(\partial_t X(t)\) \( = \partial_t \big(M(t) X_0 M(t)^{-1}\big) \)
\(= - \frac{B}{2} \, X(t) + X(t) \, \frac{B}{2}\)
\(= X(t) \times B\)
employing the commutator product: \(A \times B \equiv \frac{1}{2}(A\,B-B\,A).\)
Differential motions are thus determined by commutators with the bivectors of their motors.
This incorporates the Lie algebra of motions into GA.
4.2
Finally, some physics! Newton/Euler states that
the total forque gives the change of total momentum:
\[F = \dot{P}\]
and this fully determines the motion.
We thus need the time derivative of the momentum:
\[ \dot{P} = \partial_t {I}[B] = I[B] \times\!B + I[\dot{B}]\]
Masses move by \(M\), so inertia changes by \(\times B\) ...
... but \(B\) also changes with time.
4.3
From \(F = \dot{P} = \partial_t {I}[B] = I[B] \times B + I[\dot{B}]\) and the motor differentiation, we have (in the body frame):
This is all of Newton/Euler dynamics, both linear and angular.
These equations can easily be integrated by numeric methods (and in some situations by hand).
5.1
5.2
nDHooke for cube
3D Hooke for block
More demos in talks 5&6: A New Hope
5.2
nDHooke for cube
3D Hooke for block
More demos in talks 5&6: A New Hope
5.3
In 3D lines and hyperlines look very similar, in coordinates.
This confusion may have hampered integrated CM representation.
5.4
6.1
However:
There are two other 6D frameworks also combining linear and angular aspects for 3D, both also correct:
6.2
For all your Geometric Products, visit
Text