This FAQ is maintained by Leo Dorst.
WHAT IS GEOMETRIC ALGEBRA?
Geometric algebra is a consistent framework for all mathematics related to geometry. It incorporates and relates the frameworks of linear algebra, vector calculus, differential geometry (and more). It moreover embeds and extends computational techniques and oddities such as homogeneous coordinates, quaternions, Plücker coordinates. It is more practical than it sounds!
HOW DOES IT EMBED AND EXTEND FAMILIAR TECHNIQUES?
Geometric algebra allows more than vectors and matrices to represent objects and operators. It has a 'span' (outer) product, which makes general subspaces elements of computation. It has an invertible `geometric product', which allows you to divide by subspaces. It has a `versor product' which allows you to use subspaces as operators (e.g. a plane for reflection).
(By the way, all of these are just different aspects of one basic product, the geometric product.)
IS GEOMETRIC ALGEBRA VERY DIFFICULT?
No, when explained in the right way geometric algebra is quite accessible, and immediately usable (assuming you know a bit of linear algebra to begin with). You can get an overview in 2 hours by reading this two-part tutorial: (I, II). You can learn much in a day by doing one of our interactive tutorials . At the very least, it will immediately enrich your understanding an usage of linear algebra, and give a straightforward way of looking at quaternions and Plucker coordinates (i.e. 3D line representations).
WHAT ARE ITS DISADVANTAGES?
Geometric algebra achieves its simplified structure by representing subspaces as basic elements of computation. We get simpler operations, but on more involved objects.
A general element of the geometric algebra of an n-dimensional vector space needs 2^n numbers to be specified. (So for 3D, 8 numbers -- but the nicest algebra to deal with 3D Euclidean space is actually the GA of a 5-dimensional space, which requires 32 numbers for every entity.) This is not as bad as it seems, because geometrically useful objects have structure we can explore to reduce their representation. Still, any practical application software needs to overcome this. (To give an indication, it looks like the 5D model of 3D Euclidean space would be about 2 times slower than doing 3D linear algebra.) assembly?
HOW DOES IT RELATE TO LINEAR ALGEBRA?
Geometric algebra enriches linear algebra. Classical linear algebra is very efficient when you can represent your objects by vectors (by duality, vectors can also denote hyperplanes), but has to use rather specific tricks to bring other objects within this straightjacket. Those tricks (e.g. the 3D cross product) confuse the actual geometrical and computational structure.
Even elementary knowledge of geometric algebra helps you separate those tricks from the essence, and this is very helpful to do your linear algebra better (even without actually using GA in your code). A bit more familiarity and you find that you start specifying your operations in GA, then reduce them to LA; and soon after, you may substitute parts of your code by a GA-based implementation. That is what happened to us, and it was fun all the way. (Whenever I now use classical linear algebra in a sophomore class, it really feels like specifying an algorithm or solution in assembly language, with coordinates being the registers. Fast but unwieldy, and mixing up representation and geometrical essence.)
ARE THERE GOOD IMPLEMENTATIONS OF GA AVAILABLE?
The practically minded computer science part of the GA community is working on generally available implementations. Check out the current status : here.
IS GA DONE YET?
The basic structure of GA is clear (no matter what mathematicians say). But as to how to use it efficiently to model applications, we're still learning. The conformal model of Euclidean geometry, which looks like the most powerful new technique to come out of GA, is still in vigorous development, with new tools being recognized every month. Still, those are only ways of doing things even better, with what is there now you can already improve your applications, or your thinking about them (see HOW DOES IT RELATE TO LINEAR ALGEBRA?).
HOW CAN I LEARN IT?
We have tutorial material for you, aiming to strike the right balance between the basic mathematics, and the use in modelling applications. Look here.
IS IT TRUE THAT QUATERNIONS ARE REAL IN GEOMETRIC ALGEBRA?
Yes. Quaternions represent rotations in 3D. The mathematics of rotations requires certain elements that 'square to -1': these are the 90-degree turns in any plane, since when done twice on a vector v they result in -v. In geometric algebra, the real rotation planes themselves have this property -- the square of their bivectors under the geometric product is negative.
Therefore the appropiate algebra, identical to the quaternion algebra, is expressed completely in real geometric elements (no need at all for some strange kind of 'complex vectors'). Moreover, the resulting rotors can be applied on any object (not just vectors) and this construction works in any dimension (not just 3-D).
IS GEOMETRIC ALGEBRA COORDINATE-FREE?
Depending on how you use it, GA is coordinate-free at different levels. The outer product for spanning spaces allows you to compactly formulate things in which linear algebra would have to resort to a coordinate-based specification, even at the lowest level of representing 3D Euclidean space by 3D GA.
Homogeneous coordinates allow you to reduce the special role of the origin, as usual, and the techniques get much extended, naturally incorporating homogeneous line representation in 3D by using a 4D GA.
But only in the conformal model of Euclidean geometry (5D GA for 3D Euclidean) does GA allow fully coordinate-free computations.
HOW IS IT DIFFERENT FROM CLIFFORD ALGEBRA?
It is basically the same, although Clifford algebra (in the way mathematicians look at it) neglects the geometrical semantics of its objects and operations. My pet peeve is that allowing addition as a construction operation to create elements of Clifford algebra inhibits consistent geometrical interpretation. I find that if I do only multiplicative constructions starting from scalars and vectors, I can maintain geometric interpretability, and that we get stronger theorems and techniques. So I like to think of geometric algebra, vaguely mathematically, as the factorizable part of Clifford algebra. This is still an open issue, but a bit too subtle to be important on a first acquaintance.
HOW IS IT DIFFERENT FROM GRASSMANN-CAYLEY ALGEBRA?
Grassmann-Cayley algebra also uses subspaces as basic elements of computation, but is not as explicit in introducing a metric (it does something similar but weaker through its duality operator). As a consequence, it does not have an invertible product, and this makes using it much less flexible. For certain applications (such as projective geometry) it has just enough structure, and people have used it succesfully for that. Since geometric algebra contains GC-algebra, I prefer using the larger framework throughout, with the application automatically limiting the set of operations actually required. (Being simpler and older, GCA has been straightened out more, and concise introductory texts are available in application books such as this by Faugeras et al.)