  What is the best representation for doing euclidean geometry on computers?
These notes from a SIGGRAPH 2019 short course entitled "Geometric algebra for
computer graphics" introduce projective geometric algebra (PGA) as a modern
framework for this task. PGA features: uniform representation of points, lines,
and planes; robust, parallel-safe join and meet operations; compact,
polymorphic syntax for euclidean formulas and constructions; a single intuitive
sandwich form for isometries; native support for automatic differentiation; and
tight integration of kinematics and rigid body mechanics. PGA includes vector,
quaternion, dual quaternion, and exterior algebras as sub-algebras, simplifying
the learning curve and transition path for experienced practitioners. On the
practical side, it can be efficiently implemented, while its rich syntax
enhances programming productivity. The basic ideas are introduced in the 2D
context and developed selectively for 3D. Advantages to traditional approaches
are collected in a table at the end. The article aims to be a self-contained
introduction for practitioners of euclidean geometry and includes numerous
examples, formulas, figures, and tables.
