Geometric Algebra:
a computational framework for geometrical applications
(part I: algebra).
Leo Dorst, Stephen Mann
Appeared in CG&A May/June 2002.
Geometric algebra is a consistent computational framework in which to
define geometric primitives and their relationships. This algebraic
approach contains all geometric operators and permits specification
of constructions in a coordinate-free manner. Thus, the ideas of
geometric algebra are important for developers of CAD systems.
This paper gives an introduction to the elements of geometric algebra,
which contains primitives of any dimensionality (rather than just vectors),
and an introduction to three of the products of geometric algebra,
the geometric product, the inner product, and the outer product.
These products are illustrated by using them to solve simple geometric problems.
Geometric Algebra:
a computational framework for geometrical applications
(part II: applications).
Stephen Mann, Leo Dorst
Appeared in CG&A July/August 2002.
Geometric algebra is a consistent computational framework in
which to define geometric primitives and their relationships.
This algebraic approach contains all geometric operators and
permits coordinate-free specification of computational constructions.
It contains primitives of any dimensionality (rather than just vectors).
This second paper on the subject uses the basic products to represent
rotations (naturally incorporating quaternions), intersections,
and differentiation. It shows how using well-chosen geometric
algebra models, we can eliminate special cases in incidence
relationships, yet still have the efficiency of the Pluecker
coordinate intersection computations.
Performance and elegance of five models of 3D Euclidean geometry
in a ray tracing application.
Daniel Fontijne, Leo Dorst
Appeared in CG&A March/April 2003.
Computations of 3D Euclidean geometry can be performed using various
computational models of different effectiveness. In this paper
we compare five alternatives: 3D linear algebra, 3D geometric
algebra, a mix of 4D homogeneous coordinates and Pluecker coordinates,
a 4D homogeneous model using geometric algebra, and the 5D conformal
model using geometric algebra. Higher dimensional models and models
using geometric algebra can express geometric primitives, computations
and constructions more elegantly, but this elegance may come at
a performance penalty.
We explore these issues using the implementation
of a simple ray tracer as our practical goal and guide.
We show how to implement the most important geometric computations
of the ray tracing algorithm using each of the five models and
benchmark each implementation.