PGA: Plane-Based Geometric Algebra  \(\mathbb{ R}^{d,0,1}\)

Leo Dorst


Steven De Keninck

Contents (ADAPT)

  • Plane-based: it's all done with mirrors
  • The algebra of multiple reflections
  • Specification by invariants
  • Objects and operators unified

PGA: Why, What's New?

  • Bullet One
  • Bullet Two
  • Bullet Three

It's All Done with Mirrors

  • Bullet One
  • Bullet Two
  • Bullet Three

Plane Reflection Algebra

Define a sensible geometric product such that reflection 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\) ).

A Plane is a PGA Vector

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\]





Commutation and Perpendicularity

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

Multiple Reflections Give Operator Elements

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!

Parallel Reflections: Translation Operators

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.

Tilted Plane Reflections: Rotation Operators

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 Is a Bivector

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

Bonus Material:

The Line Is Indeed Invariant Under Rotation

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!

A Point: a Trivector Common to Three Planes

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

Operators and Objects

Only Axis and Angle Matter




Automatic Equivariance





Exponential Representation of Motors

Just state it and the Log.

Wedge/Outer Product

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

3D Lines, 2D Points are Bivectors

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

3D Points are Trivectors

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

Decomposition of Motions

Chasles' Theorem & Lie Algebra

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.


The Other Part of the Geometric Product

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

All Things Project Alike

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

General Linear Transformations: No Matrices Please

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.

Ganja Coffeeshop Time!

For all your Geometric Products, visit

Newtonian Dynamics in PGA

Leo Dorst

Steven De Keninck


  1. Two Types of Lines
  2. Momentum and Inertia
  3. May the Forque Be with You
  4. Differentiating Motors
  5. Unified Dynamics
  6. Classical Mechanics Embedded
  7. Demos

Kinematics and Dynamics in PGA

Kinematics and Dynamics in PGA

1. Join Lines 

0. Kinematics

2. Mass in Motion

3. Forque Action

4. Derivatives

5. Dynamics

1. Two Types of Lines

Two planes meet in a line.

Two points join to form a line.

Are those lines the same type? No!

Points Move Along Lines

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.

  • (Join) lines in \(d\)-D are \((d-1)\)-vectors!
  • (Meet) hyperlines are 2-vectors in any dimension.

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.

Hyperlines vs Lines

2. Momentum and Inertia

The Momentum of a Moving Mass is a Line

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.

Inertial Momentum of a Point Cloud

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!

P = \Sigma_i \,m_i \,X_i \vee \dot{X}_i \\
= \Sigma_i \,m_i \,X_i \vee (X_i \times B) \\
\equiv I[B]

definition join line

moving by motor: bivector

defining inertia map

Masses Provide the Duality Map

to Convert Rates to Momenta

Rate \(B\) is for kinematics.

Momentum \(P\) is for dynamics.

Inertia \(I[\,]\) couples them.

momentum \(P\)

join line


P = I[B]

rate \(B\)



inertia \(I[\,]\)

duality map

The PGA Inertia Map is not Symmetric

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:

\begin{bmatrix} 0 & 0 & 0 & m & 0 & 0 \\ 0 & 0 & 0 & 0 & m & 0 \\ 0 & 0 & 0 & 0 & 0 & m \\ i_1 & 0 & 0 & 0 & 0 & 0 \\ 0 & i_2 & 0 & 0 & 0 & 0 \\ 0 & 0 & i_3 & 0 & 0 & 0 \\ \end{bmatrix} = \begin{bmatrix} {\sf O} & m {\sf I} \\ \sf{I}_C & {\sf O} \end{bmatrix}

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: 

\begin{bmatrix} 0 & m & 0 \\ 0 & 0 & m \\ i & 0 & 0 \\ \end{bmatrix} = \begin{bmatrix} {\sf O} & m {\sf I} \\ i & {\sf O} \end{bmatrix}

classical mechanics inertia matrix


May the Forque Be with You

A Force is a Line

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?

A Force Line Induces Torque Elsewhere

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)

Momentum and Forques: Both Screw Lines

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.




4. Differentiating Motors

M = e^{-B t/2}
X = M \, X_0 \, M^{-1}

Motors in World Frame or Body Frame

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.

Differentiating a Moving Element

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.

Coupling Forque to Motion

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.

5. Unified  Dynamics

Done: All in One

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):

\dot{B} = I^{-1}[B \times I[B] + F] \\ \dot{M} = -\frac{1}{2} \, M B

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


Kinematics and Dynamics in PGA

Elements of 3D PGA

In 3D lines and hyperlines look very similar, in coordinates.

This confusion held back integrated CM representation.

Screw Theory & Spatial Vectors


  • Neither employ bivectors, which complicates their math (some special products, in two dual spaces).
  • Neither contain geometric elements, to act on directly.
  • Perhaps because of that, they have remained specialized skills for too many years.
  • They are specific for 3D; we know it's just as easy to be \(d\)-D.

There are two other 6D frameworks also combining linear and angular aspects for 3D, both also correct:

  • screw theory (Ball, Study, 19th century)
  • spatial algebra (Featherstone, 20th century)

6. PGA Embedding of 3D Classical Mechanics 

Summary: Two for the Price of One

  • PGA needs only 4 quantities to do all, CM takes 8
  • PGA is coordinate-free: no descriptive basis needed
  • CM is a pre-split version of PGA, hiding the location
  • Conversion: name location \(.X\), use infinity \(\wedge {\sf e}\), simply add.

7. Ganja Coffeeshop Time!

For all your Geometric Products, visit


By Leo Dorst


  • 33
Loading comments...