Leo Dorst
l.dorst@uva.nl
Steven De Keninck
enkimute@gmail.com
Define a sensible geometric product such that reflection becomes:
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\) ).
You may have used the homogeneous coordinates, \(\[vec{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\]
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:
\(e_1\,e_2 = -e_2 \, e_1\) etc.
We also demand it for the special plane \(\mathsf{e}\): \(e_i \, \mathsf{e} = -\mathsf{e}\, e_i\).
Of course, parallel planes commute: \(e_i \, e_i = e_i \, e_i \).
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!
Double reflection in two parallel planes:
\(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- \mathsf{e} \,\mathbf{t}/2 + \frac{1}{2!}(-\mathsf{e} \,\mathbf{t}/2)^2+\cdots\)
\(= e^{-\mathsf{e} \,\mathbf{t}/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.
Let us choose handy local coordinates so that the two planes are \(p_1= e_1\), and \(p_2 = e_1 \cos\phi' + e_2\sin\phi'\). Then
\(p_2\, p_1 =\) \((e_1 \cos\phi' + e_2\sin\phi')\,e_1\)
\(= e_1^2 \cos\phi' + e_2e_1\,\sin\phi'\)
\(= \cos\phi' - L \sin\phi' \)
\(= e^{-L\phi/2}\)
with \(e_1e_2 =\)\( L\) the common line and \(\phi\) the rotation angle.
Note that a line has a negative square:
\(L^2 = e_1e_2e_1e_2 = - e_1^2e_2^2 = -1\),
motivating the exponential notation.
The line common to two planes \(a\) and \(b\) is the element
\(L = a \wedge b = \frac{1}{2} (a \, b - b\, a)\).
It is not normalized, but the norm \(|L| = \sin(\angle(a,b))\) is a useful numerical quantity.
Element \(a \wedge b\) is called a bivector or 2-vector.
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\) ).
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!
Standard example:
\( X \) \(= (e_1+x_1\mathsf{e}) \wedge (e_2+x_2\mathsf{e}) \wedge (e_3+x_3\mathsf{e})\)
\( = e_1e_2e_3 + x_1 \mathsf{e}e_2e_3 + x_2 \mathsf{e} e_3e_1 + x_3 \mathsf{e} e_1e_2\)
\( = e_1e_2e_3 - (x_1e_1 + x_2 e_2 + x_3e_3)\,\mathsf{e}e_1e_2e_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 \([e_1e_2e_3, -ee_2e_3, -ee_3e_1, -ee_1e_2]\).
The trivector \(a \wedge b \wedge c\) is the point
common to three planes \(a, b, c\).
REFER TO GAUGE FREEDOM, REPLAY DEMO?
DESIRE TO REPRESENT THAT WAY
TWO ISSUES: LINE REPR, AND EXP
SHOW PRINCIPLE
CONSEQUENCES:
THEORY - SIMPLE DERIVATIONS
PRACTICE - UNIVERSAL CODE IN TWO WAY: NOT JUST ANYWHERE, BUT ALSO ANYTHING
Just state it and the Log.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
For all your Geometric Products, visit
Leo Dorst
l.dorst@uva.nl
Steven De Keninck
enkimute@gmail.com
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 the same type? No!
The line from point \(A\) to point \(B\) is the PGA element \[A \vee B \]
It is defined using the JOIN product \(\vee\), which is (in a Hodge sense) dual to the MEET \(\wedge\) (and, like it, a linear combination of geometric products).
One can derive from this that the line from \(A\) in direction \({\bf v}\) is: \[ {\bf v} \cdot A\]
The join in \({\mathbb R}^{d,0,1}\) of two \(d\)-vector points is a \((d-1)\)-vector.
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.
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 (X-{\bf v}\mathcal{I})=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.
We defined the linear inertia map \(I[\,]\), taking a 2-vector and producing a \((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!
definition join line
moving by motor: bivector
defining inertia map
Rate \(B\) is for kinematics.
Momentum \(P\) is for dynamics.
Inertia \(I[\,]\) couples them.
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.
In 2D, also from hyperlines \((e_{12},e_{01},e_{02})\) to lines \((e_0, e_2, e_1)\), it is:
classical mechanics inertia matrix
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?
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)
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
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\):
\(\dot{M}\) = \(-\frac{1}{2} B_w M\) = \(-\frac{1}{2} M B_b\).
Either can be used to solve \(M\), it is a choice of convenience.
When an element is moved with a time-dependent motor \(M(t) = e^{-B t/2}\), we have
\(\partial_t X(t)\) \( = \partial_t (M(t) X_0 M(t)^{-1}) \)
\(= - \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.
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\) changes also.
From \(F = \dot{P} = \partial_t {I}[B] = I[B] \times B + I[\dot{B}]\) and the motor equation, 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).
INSERT SOME DEMOS HERE
In 3D lines and hyperlines look very similar, in coordinates.
This confusion held back integrated CM representation.
However:
There are two other 6D frameworks also combining linear and angular aspects for 3D, both also correct:
For all your Geometric Products, visit