Deprecated v1 guide
Projective geometric algebra for graphics v1
This section is a reference for geometric algebra in graphics. It starts with exterior-algebra and geometric-product foundations, then moves into 2D projective geometric algebra: points, lines, intersections, reflections, motions, shape intersections, and coordinate frames.
The foundation pages build the missing mental model for grades, blades, wedge, and the geometric product. The PGA examples then use ganja's plane-based PGA convention. For 2D pages that means Algebra(2,0,1), grade-1 lines, grade-2 finite points, ^ for wedge,& for vee, and ganja sandwich action with >>>.
Each article starts from a concrete graphics question, keeps the algebraic representative in multivector form, and normalizes only when that clarifies the geometry.
Learning sequence
Articles
- 01Foundations: Grades and wedgeScalars, vectors, bivectors, trivectors, blades, multivectors, and wedge as oriented span.
- 02Foundations: Geometric product and motionMetric, geometric product, reflection sandwiches, two-reflection rotors, and PGA motion setup.
- 03PGA 2D: Points, lines, and homogeneous scaleThe 2D convention: lines, finite points, homogeneous scale, normalization, and incidence.
- 04PGA 2D: Meet and joinLine-line meet, point-point join, and finite, ideal, or degenerate result states.
- 05PGA 2D: ReflectionsA normalized off-axis line reflects a point and polygon through ganja sandwich action.
- 06PGA 2D: Two reflectionsTwo mirrors produce rotations around their meet point or translations from parallel lines.
- 07PGA 2D: Motors and exponentialsEven multivectors, generators, half-angles, nilpotent translations, and direct point action.
- 08PGA 2D: Shape intersectionsConvex polygon clipping with edge lines, meets, half-space tests, and tolerances.
- 09PGA 2D: Frames, coordinates, and change of basisActive motion versus passive frame changes, with world/local/model/view vocabulary.
- 10PGA 2D: OverviewA compact synthesis of scale, meet/join, reflections, motors, and frames.
Reference tools
Interactive Checks
Dependency graph
Ideas
- Ordinary Euclidean vector
- Cartesian coordinates
- Basic algebraic manipulation
- Cartesian line equation
- Euclidean distance and angle
- Rigid transform matrix
- Oriented span
- Vector independence
- Projective coordinates as representatives
- Convex polygon clipping
- Grade
- Metric
- Wedge product
- Geometric object versus coordinate tuple
- Homogeneous scale equivalence
- Scalar
- Vector as grade-1 element
- Bivector
- Trivector
- Blade
- Orientation sign
- Projective ray
- Degenerate result
- Collapsed wedge for dependent directions
- Wedge bilinearity
- Normalization as display choice
- Basis bivector
- Repeated-vector wedge is zero
- Multivector
- Near-degenerate numerical sensitivity
- Bivector component slots
- Grade projection
- Unit bivector
- Even multivector
- Wedge computation rules
- Geometric product
- Basis-vector square rule
- Basis blade
- Dot product
- Wedge component formula
- Bivector addition
- Orthogonal basis product
- Contraction
- Reflection sandwich
- Order-dependent vector-bivector product
- Metric signature
- Reverse
- Pseudoscalar
- Canonical basis order
- Vector product split
- Projective null direction e0
- Sandwich action
- Metric substitution
- Rotor
- 2D PGA convention
- Physical 3D PGA object grades
- Geometric product expansion
- Bivector square
- Ganja.js plane-based PGA convention
- 3D PGA convention
- 3D line as grade-2 element
- 3D point as grade-3 element
- Poincare dual
- Collect like blades
- Homogeneous 1-up visualization
- 2D line as grade-1 vector
- 2D finite point as grade-2 bivector
- Ganja algebra template
- Line normal and offset components
- Ganja dual operator
- Vee product
- Point homogeneous weight
- Ganja sandwich operator
- Dual point representative
- Point-line incidence
- Ganja blade literal syntax
- Unit-normal line
- Point chart coordinate extraction
- Ideal point
- Incidence construction
- Line normalization
- Incidence pseudoscalar e012
- Shared 2D PGA helper functions
- Point normalization
- Meet
- Join
- Normalized mirror line
- Clipping tolerance
- Line-line meet by wedge
- 3D rotation axis from point join
- Point-point join by vee
- Non-convex clipping limitation
- Normalized incidence signed distance
- Point reflection
- Coincident-line meet degeneracy
- Parallel lines meet at ideal point
- Finite meet normalization
- Joined-line incidence check
- Clip edge as line join
- Subject edge as line join
- Coincident-point join degeneracy
- Polygon reflection
- Nested two-reflection action
- Reflection reverses orientation
- Meet/join result classification
- Half-space test from incidence
- Signed area orientation check
- Two-reflection motion as even multivector
- Two reflections restore orientation
- Parallel mirrors translate
- Intersecting mirrors rotate
- Motor
- Candidate clipping vertex from meet
- Translation direction from mirror separation
- Double-angle rotation from mirrors
- Rotation center as mirror meet
- Unit motor normalization
- Generator
- Motor point action
- Exponential map to motor
- 2D PGA common data shape
- Matrix comparison for motor motion
- Ideal translation generator
- Rotation generator stores center point
- Motor half-angle
- Nilpotent translation generator
- 3D translator along axis
- Translator exponential truncation
- 3D rotor from line generator
- Frame motor
- Screw-motion motor
- Inverse frame by reverse
- Local-to-world active action
- Grade-3 point motor action
- Passive coordinate change
- World/local/model/view vocabulary
- View transform as inverse camera frame