---
title: "Projective geometric algebra: A new framework for doing euclidean geometry"
authors: ["Charles G. Gunn"]
year: 2019
venue: "arXiv"
arxiv: "1901.05873"
doi: null
source: "https://arxiv.org/abs/1901.05873"
topics: [curiosity]
seed_rank: 1053
seed_batch: "curiosity-2026-08-17"
reviewed: "2026-08-17"
pool: "graphics"
relevance_score: 9
lineage: geometric-algebra
cites:
  - title: "Die lineale Ausdehnungslehre"
    url: "https://archive.org/details/dielinealeausde00grasgoog"
    year: 1844
    arxiv: null
    doi: null
  - title: "Applications of Grassmann's extensive algebra"
    url: "https://doi.org/10.2307/2369379"
    year: 1878
    arxiv: null
    doi: "10.2307/2369379"
  - title: "Geometric Algebra for Computer Science"
    url: "https://www.geometricalgebra.net/"
    year: 2007
    arxiv: null
    doi: null
  - title: "Geometry, Kinematics, and Rigid Body Mechanics in Cayley-Klein Geometries"
    url: "https://doi.org/10.14279/depositonce-3058"
    year: 2011
    arxiv: null
    doi: "10.14279/depositonce-3058"
see:
  - "918-dual-numbers-reverse-ad-for-functional-array-languages"
  - "1028-discrete-exterior-calculus"
  - "5-radiance-cascades-a-novel-approach-to-calculating-global-ill"
  - "97-mesh-shaders-in-the-vulkan-ecosystem"
  - "99-compiling-to-categories"
---

# Projective geometric algebra: A new framework for doing euclidean geometry

## One-sentence takeaway

Euclidean geometry wants the *dual* exterior algebra with degenerate metric \((n,0,1)\): planes as 1-vectors, lines as 2-vectors, points as 3-vectors; isometries are sandwiches; dual quaternions sit inside the even subalgebra; dual numbers give native forward-mode AD.

## Why it matters here

Why you might love this: Anoptic already fights the VLAAG zoo (points vs vectors, ad-hoc Plücker lines, separate codes for rotation and translation). PGA is one graded algebra where meet of parallel planes just works, a motor \(e^{t(\Omega+p\Omega^\perp)}\) is a screw, and the same sandwich \(gX\tilde g\) hits points, lines, and planes. Bridge: dual-number AD (card 918) is the scalar-plus-pseudoscalar subalgebra; rigid-body Euler equations live on bivectors with a 2-dimensional constraint instead of Lagrange multipliers.

## Key ideas

- Dual exterior algebra \(\mathrm{G}^*\) (planes primitive, \(\wedge\) = meet, \(\vee\) = join imported by Poincaré duality). Projective coordinates make parallels first-class: they meet on the ideal plane.
- Inner product of signature \((n,0,1)\) on hyperplanes — degenerate on purpose, because Euclidean angle between lines ignores the translational coordinate. The geometric product \(ab = a\cdot b + a\wedge b\) extends to the whole algebra \(\mathbf{P}(\mathbb{R}^*_{n,0,1})\).
- Normalization: Euclidean \(k\)-vectors with \(\mathbf{X}^2=\pm 1\), plus a second *ideal* norm on null elements. Together they make polymorphic formulas (intersecting vs parallel lines: \(\sin\alpha\) vs distance, same expression).
- Isometries as sandwiches generated by reflections in planes. Rotors \(e^{\alpha\Omega}\) and translators \(e^{d\Omega^\perp}\) unify; the even subalgebra is the dual quaternions. Bivectors in 3D are the Lie algebra of \(E^+(3)\); free-top Euler equations integrate in 14D with a cheap normalize back to the 12D solution manifold.
- Automatic differentiation: \(\{1,I\}\) with \(I^2=0\) is the dual numbers; evaluating \(p(x+I)\) yields \((p(x),p'(x))\).

## Caveats

- Degenerate metrics are often dismissed in the GA literature; Gunn's claim is that *only* a degenerate metric models Euclidean geometry (CGA is a complementary, heavier \((n+2)\)-coordinate model).
- This is a practitioner introduction (arxiv 2019), not a journal article; the 2011 thesis and the 2017 AACA papers are the deeper sources.
- GPU/SoA layout is not free: 8-D (2D) / 16-D (3D) multivectors want a packed even-subalgebra path in hot loops.

## Links

- arXiv: [1901.05873](https://arxiv.org/abs/1901.05873)
- Interactive PGA: [ganja.js examples](https://enkimute.github.io/ganja.js/examples)
