Geometric Algebra is a line of Mathematics which treats vectors as first-class citizens rather than arrows defined by coordinates on a specific coordinate system.

For a flat Euclidean space, the most interesting aspects of Geometric Algebra can be understood from a single rule that the square of the magnitude of any vector \( \v{a} \) is equal to the square of the vector itself.

With this one rule we can introduce addition and multiplication of two-dimensional vectors, as well as a simple rotation.

The square of the magnitude of an arbitrary vector \( \v{a} \) is equal to the square of the vector itself:

\[ |\v{a}|^2 = \v{a}^2 \]

This is similar to the more familiar dot-product of a vector with itself defining the Euclidean magnitude-squared of a vector, but as we will see, much more powerful.

Starting with a single dimension, we define a normal basis vector \( \v{x} \) (bold will indicate a vector) as having a magnitude of one:

\[ \v{x}^2 = 1\]

Any other vector \( \v{a} \) within this single dimension can be represented as a scalar multiple of \( \v{x} \), such as \( 5\v{x} \) or \( -3.141579\v{x} \) or, more generally,

\[\v{a} = \vcOne{a}\]

where \( a_x \) is a real number (\( a_x \in \reals \)).

Evaluating the magnitude-squared of \( \v{a} \) results in:

\[ \v{a}^2 = (\vcOne{a})^2 = \vcOne{a}\vcOne{a} = a_x^2\v{x}^2 = a_x^2 = |a_x|^2 \]

as we would expect.

To describe vectors in two dimensions we need to add a second basis vector \( \v{y} \) with the similar property of unit-magnitude, so when multiplied by itself,

\[ \v{y}^2 = 1 \]

We also need to ensure that this second vector \( \v{y} \) is orthogonal to \( \v{x} \), though we don't yet know how to represent this orthogonality. Nonetheless, by defining a general two-dimensional vector \( \v{a} \) as

\[ \v{a} = \vcTwo{a} \]

we can derive orthogonality by using the rule that the magnitude-squared of any vector is equal to the vector squared, to evaluate that:

$$ \begin{aligned} \v{a}^2 &= (\vcTwo{a})(\vcTwo{a}) \\ &= a_x\v{x}a_x\v{x} + a_x\v{x}a_y\v{y} + a_y\v{y}a_x\v{x} + a_y\v{y}a_y\v{y} \\ &= a_x^2 + a_y^2 + a_x a_y(\v{xy} + \v{yx}) \\ &= a_x^2 + a_y^2 + 2a_x a_y(\frac{1}{2}(\v{xy} + \v{yx})) \end{aligned} $$So the square of the magnitude of the vector, \( |\v{a}|^2 \), will only equal the square of the vector if \( \v{xy}+ \v{yx} \) is also a scalar number. If you are familiar with the Law of cosines you may recognise the formula and in particular that \( \frac{1}{2}(\v{xy} + \v{yx}) \) is likely to be \( \cos(\theta) \) where \( \theta \) is the angle between the two vectors. For now we will simply note that if,

\[ \v{xy} = -\v{yx} \]

then,

\[ \v{a}^2 = a_x^2 + a_y^2 \]

which is exactly what we are used to - Pythagoras' theorem. So for now let us make the tentative definition of orthogonal vectors: orthogonal vectors anti-commute. For any two vectors \( \v{x} \) and \( \v{y} \), the vectors are orthogonal if they anti-commute so that \( \v{xy} = -\v{{yx}} \).

The algebraic addition of two arbitrary two-dimensional vectors is straight forward,

\[ \begin{aligned} \v{a} + \v{b} &= (\vcTwo{a}) + (\vcTwo{b}) \\ &= (a_x + b_x)\v{x} + (a_y + b_y)\v{y} \\ &= \v{b} + \v{a} \end{aligned} \]

The order in which the vectors are added is not relevant which means that vectors are associative under addition (and subtraction), as \(\v{a} + \v{b} = \v{b} + \v{a}\).

\[ \begin{aligned} (\v{a} + \v{b})^2 &= (\v{a} + \v{b})(\v{a} + \v{b}) \\ &= \v{a}^2 + \v{ab} + \v{ba} + \v{b}^2 \end{aligned} \]

We can't yet go any further as we haven't yet defined what a multiple of two general vectors means. But soon we'll see that our solution here is actually the law of cosines.

The geometric product of two vectors may be a little less familiar:

\[ \begin{aligned} \v{a} \v{b} &= (\vcTwo{a})(\vcTwo{b}) \\ &= a_x\v{x}b_x\v{x} + a_x\v{x}b_y\v{y} + a_y\v{y}b_x\v{x} + a_y\v{y}b_y\v{y} \\ &= a_x b_x + a_y b_y + a_x b_y \v{xy} + a_y b_x \v{yx} \\ &= a_x b_x + a_y b_y + \v{xy}(a_x b_y - a_y b_x) \\ \end{aligned} \]

While the reverse is,

\[ \v{ba} = a_x b_x + a_y b_y - \v{xy}(a_x b_y - a_y b_x) \]

The general vector product is not commutative, as \(\v{ab} \ne \v{ba}\) nor is it anti-commutative, as \(\v{ab} \ne -\v{ba}\). If you are familiar with the traditional vector dot and cross products, you may recognise \(\v{ab}\) as some combination of both, but what is relevant is that it is a combination of a scalar (a pure number) and a bi-vector (the \(\v{xy}\) term, which is not scalar, nor is it a vector, more on this later).

Based on the above, we can add or subtract the two products to end up with either a scalar or bivector respectively:

\[ \begin{aligned} \frac{1}{2}(\v{ab} + \v{ba}) &= (a_x b_x + a_y b_y) \\ \frac{1}{2}(\v{ab} - \v{ba}) &= \v{xy}(a_x b_y - a_y b_x) \end{aligned} \]

Of particular interest is that the bivector \(\v{xy}\) has the property that:

\[ (\v{xy})^2 = \v{xyxy} = -\v{xyyx} = -1 \]

It is worth noting briefly that the product of two vectors, \(\v{ab}\) appears to define a scale and rotation. We will look at this in more detail later, but we can already see that if \(\v{a}\) and \(\v{b}\) are perpendicular and have a magnitude of 1:

\[ \begin{aligned} \v{a} &= \v{x} \\ \v{b} &= \v{y} \end{aligned} \]

so that

\[ \v{ab} = \v{xy}\]

then this vector product will rotate any other two-dimensional vector \(\v{c}\). To simplify things, let's multiply the unit vector \(\v{x}\):

\[ \begin{aligned} \v{abx} &= \v{xyx} \\ &= -\v{xxy} \\ &= -\v{y} \\ \v{xy}(-\v{y}) &= -\v{x} \\ \v{xy}(-\v{x}) &= -\v{xyx} \\ &= \v{xxy} \\ &= \v{y} \\ \v{xy(y)} &= \v{x} \\ \end{aligned} \]

But we will first need to understand Euler's formula to appreciate this rotation in its general form.