Geometric algebra foundations

Geometric product and motion

Exterior algebra gave us oriented spans. The geometric product adds a metric and defines one multiplication law that works on whole multivectors. It can measure, orient, reflect, rotate, and eventually move PGA points and lines.

The wedge product gave us a clean way to build oriented spans: two independent vectors make a bivector, three independent vectors make a trivector, and parallel vectors collapse because they add no new direction. Now we want a product that keeps that oriented-span behavior and also knows about lengths, angles, and motion.

That product is the geometric product. It multiplies basis vectors, distributes over sums, simplifies repeated basis vectors with the metric, and then collects like blades. The hand-calculation model is: expand, reorder, substitute the metric, and collect.

In an orthogonal basis, different basis vectors still make the same oriented blade you saw in exterior algebra. Because e1 and e2 are orthogonal, e1e2 is exactly e1 ^ e2. We shorten that basis bivector to e12.

The new ingredient is what happens when a basis vector meets itself. In an orthogonal Euclidean 2D basis, the basic rules are:

e1² = 1
e2² = 1
e1e2 = e1 ^ e2 = e12
e2e1 = -e12

The square rules are metric rules. The order rules are orientation rules. Everything else follows from associativity, bilinearity, and repeatedly putting basis vectors back into canonical order.

Basis Blades Are Ordered Products

A basis blade is a product of distinct basis vectors in a chosen order. In the 2D Euclidean example, e12 means e1e2. In 2D PGA, e01 means e0e1, and e12 means e1e2.

When you multiply two blades, first concatenate the basis vectors and leave the metric aside. If you multiply e01e0, the raw basis product is:

e01e0 = e0e1e0

Next reorder that product into canonical order, flipping the sign every time two different basis vectors swap:

e0e1e0 = -e0²e1

Only now do you substitute the metric. This is the exact step where the signature matters:

// In PGA 2D, Algebra(2, 0, 1)
e0² = 0
e01e0 = -0e1 = 0

// If e0 squared to +1 instead
e01e0 = -1e1 = -e1

// If e0 squared to -1 instead
e01e0 = -(-1)e1 = e1

The e0 terms survive distribution and reordering. They disappear in PGA only when the metric substitution says e0² = 0.

Multiply Terms, Then Collect Blades

A multivector is a sum of blade terms. In 2D Euclidean GA a general multivector has scalar, vector, and bivector parts:

A = a0 + a1e1 + a2e2 + a12e12
B = b0 + b1e1 + b2e2 + b12e12

Multiplying A*B means distributing all sixteen term products. A single term looks like this:

(a12e12)(b2e2)
= (a12b2)(e12e2)
= (a12b2)(e1e2²)
= (a12b2)e1

The coefficient part multiplies normally. The basis part goes through the blade rules. When all distributed terms are simplified, terms with the same blade are added together:

A*B =
  (a0*b0 + a1*b1 + a2*b2 - a12*b12)
+ (a0*b1 + a1*b0 - a2*b12 + a12*b2)e1
+ (a0*b2 + a2*b0 + a1*b12 - a12*b1)e2
+ (a0*b12 + a12*b0 + a1*b2 - a2*b1)e12

The practical model is: expand, reorder, substitute the metric, collect. Numeric coefficients change the term values, but the rule order stays the same.

Metric Substitution Is The Signature Step

In Algebra(2, 0, 1), the null projective direction has e0² = 0. Products containing e0² disappear only at the metric substitution step.

The raw basis-product line is purely symbolic. It shows the basis vectors exactly as they appear after distribution. Reordering is metric-free; it only moves basis vectors into canonical order and records the sign from swaps. The metric-substitution line is the first place wheree0² = 0, e1² = 1, or e2² = 1can change the term.

If the square of e0 changes from 0 to+1 or -1, the raw and reordered products stay the same, while the metric substitution and final collected product change. That is the mental split to keep: order gives signs, the metric gives repeated-vector substitutions.

Small integer examples are enough to expose the rule order. The coefficients decide which distributed terms exist and how large their contributions are; the algebraic structure is in the blade rules and metric substitutions.

The Vector Product Splits Into Two Familiar Pieces

For two grade-1 vector inputs, the product has exactly a scalar part and a bivector part. The symmetric part is the dot product:

a . b = 1/2(a b + b a)

The antisymmetric part is the wedge product:

a ^ b = 1/2(a b - b a)

For vectors only, the geometric product splits into those two parts:

a b = a . b + a ^ b

This split applies to the vector-vector case. For arbitrary multivectors, use distribution, blade multiplication, metric substitution, and collection first; then project out the grade pieces you care about.

Where Dot, Wedge, And Contraction Fit

The wedge product is the top-grade, fully antisymmetric part of multiplying independent directions. It keeps the "span these together" meaning from exterior algebra. For two vectors, the bivector part ofa b is a ^ b.

The dot product is the scalar part of the vector-vector product. It is where length and angle appear when both inputs are vectors.

Contractions generalize "how much of this blade is contained in that blade" to higher grades. They are useful operations, especially for projections, measurements, and some formulations of duality. The geometric product is defined before contractions enter. The contraction is another derived operation that selects a meaningful grade-changing part of the full multiplication.

A practical rule is: multiply with the geometric product when you need the whole algebraic interaction; use wedge, dot, contraction, or grade projection when you specifically want one geometric question answered. Write the operation and the multivector it produces before translating the result into a familiar coordinate tuple.

The Product Extends Beyond Vectors

In 2D Euclidean GA, the unit bivector I = 1e12 is the oriented plane element. Multiplying a vector by that bivector still uses the same product:

v * I  // vector result
I * v  // opposite vector result in 2D
I * I = -1

The last line is the metric showing through: an oriented plane element can square to a scalar. In higher dimensions, bivector-bivector products can keep a bivector part, collapse to a scalar part, or create a 4-vector part when independent planes are multiplied. That is why the geometric product is better understood as a product on multivectors.

Reflection Is A Sandwich

A unit vector can act as a mirror. If m is the unit direction of a mirror line through the origin, then reflecting vector v across that line is:

v' = m * v * m

If you choose the unit normal n to the mirror instead, the same reflection is:

v' = -n * v * n

The important pattern is that the object sits between two copies of the operator. The PGA pages use the same sandwich idea for points, lines, and shapes.

Two Reflections Make A Rotor

Compose two mirror directions and their product is even grade:

R = mirrorB * mirrorA
v' = R * v * ~R

In 2D Euclidean GA, that rotor has a scalar part and an e12 bivector part. This is the same even-grade idea that becomes rotors, translators, and motors in projective geometric algebra.

Why PGA Adds A Projective Direction

Ordinary Euclidean vectors are attached to the origin, so Euclidean rotors rotate them around the origin. Graphics code often works around that with translate-to-origin, rotate, and translate-back.

PGA adds a degenerate projective basis direction, e0, so off-origin rotation centers, translation directions, and ideal elements can live inside the algebra directly. That is why the next article can say that 2D PGA lines are grade-1 vectors and finite points are grade-2 bivectors without changing the core sandwich-action pattern.