## The Construction of Space

When we think about space, particularly in a computational setting, we usually deal with matrices (linear algebra) and vectors where the matrices represent transformations and the vectors are frequently a conflation of direction and location. Even in the typical mathematics education and much of the literature, we very rarely encounter ideas about how to move up and down dimensions and between different spaces be they spherical, Euclidean, hyperbolic, projective, affine, or even conformal. The structure of space is incredibly rich, but to understand it, you have to undo in your mind what you think you know about space, shedding years and years of intuition to replace it with a proper algebraic conceptualization of space, namely Geometric (Clifford) Algebra.

Geometric Algebra (GA) is simply the geometric interpretation of Clifford Algebra. They two terms can be interchanged freely. GA is a **geometric extension** of the real number system to provide a complete description of **direction and magnitude**. GA starts with the concept of a **k-blade** where k is the dimensionality of space a quantity exists in. For example, a 1-blade is a vector and a 2-blade is a plane. The number ‘k’ in k-blade is called the **grade**.

### GA Basics

The fundamental operation in GA is called the** geometric product**. The geometric product relates blades of different grades to each other, providing algebraic relationships between the different spaces they represent. The geometric product itself can be broken down into two other products: the **inner product** and the **outer product**. The inner product is a grade-lowering operation while the outer product is a grade-raising operation. In other words, these two products can be used to move up and down different dimensions of space. The inner product can be thought of as a generalization of the familiar dot product in vector math. The outer product can be similarly thought of as a generalization of the cross product.

### Learning GA

The basis for GA is straightforward, but it can quickly feel overwhelming at first because of all of the unfamiliar terminology and the very different spatial logic required. Even in normal 3D space, things can quickly get complicated. Just think about how alien quaternions seem at first. The best way to approach learning GA is to read a couple of introductory articles and books to get a feel for the terminology and basic structure even if you don’t fully understand it. The two I recommend are Geometric Algebra for Computer Science and Geometric Algebra for Computer Graphics. It helps to have a rough image of what it’s all about before doing any detailed studying. Next, I would start with the simplest setting for GA, which is the plane (2D Euclidean space). There is an excellent document on planar GA called Treatise of Plane Geometry Through Geometric Algebra by Ramon González Calvet, which is geared toward people just learning GA. It helps to have a decent understand of complex numbers first, but it’s not entirely necessary.

### The End of Conflation

The case of GA in plane geometry is enlightening in a number of ways. Frequently when we think of plane geometry, we think of 2D points and vectors and perhaps even complex numbers, but that’s all. In physics and many engineering disciplines, complex numbers are used to describe rotations and phases and sometimes duality transformations (through conjugation). Describing all of these operations with complex numbers conflates what are actually different operations with different structures and objects. It’s especially confusing when different modes are mixed in the same equation.

The same observation can be made with pairs of numbers used to represent both vectors and points. There is a huge different between a point and a vector, yet we freely mix them even giving a second thought. The key oversight here is that there is a fundamental difference between a scalar and a **scalar with direction**. The GA framework properly treats scalars with direction, giving rise to a rich structure for handling not just directions like vectors, but directed areas, directed volumes, and higher dimension directed spaces. Vectors in GA are pairs of directed numbers, not pairs of scalars.

In the plane, we can construct a vector space with two orthogonal bases (axes). Usually we say the x- and y-axis, but in GA the convention is to say the bases {**e1**, **e2**}. This is because we can construct spaces of very high dimension in GA, so it makes sense to just number them instead of using the x, y, z convention.

I’ll leave the details out as they’re in the plane geometry details, but suffice to say that the GA of the plane consists of {1, e1, e2, e12}. Here 1 is the scalars, e1 and e2 the directions, and e12 the fundamental area element, which can also be thought of as the imaginary number in complex numbers. These elements are related by the geometric product, forming the algebra Cl2 (Clifford Algebra in 2D). The reason we have an e12 element as area is that the outer product of the bases e1 and e2 gives an area e1e2, which we can simply write e12.

Think about the cross product in 3D and how it gives a normal to a plane. It’s a similar idea here, where 2 vectors through an outer product describe a plane, but its not a plane in 3Dspace, but the space itself (the unit element of the entire Euclidean plane).

Above is the multiplication table for the geometric product in Cl2 and its sub-algebra for the complex numbers. By attaching the concept of direction to the scalars, we get a much richer structure.

## The Big Picture

The really interesting part about GA is that it is completely coordinate free. In it, we can formulate algebraic expressions describing, for instance, the intersection point of 2 lines, the distance of a point from a line, the common subspace of 2 subspaces, etc. All of the formulations can be made without referring to the dimensionality of the space we’re working in, so they’re dimension and coordinate independent. This means that through coordinate free operations, it’s possible to fully describe a manifold, be it scalar, vector, or of higher dimensionality. As a result, we can describe the precise structure of a 2-manifold surface embedded in Euclidean 3-space without having to refer to coordinates in the 3-space.

Describing a surface, as mentioned in previous posts, requires referring to extrinsic descriptors and formulating a shape operator. We can describe a shape operator in terms of GA, but of course we also have to dip into differential forms. This means developing a calculus over GA, the so-called Geometric Calculus (GC). All GA spaces are linear, so this is completely doable, but like GA it requires reconstructing our intuitions. GC is essentially a coordinate free way of treating differential geometry, which is exactly what we need to describe the evolution of a surface.