Content uploaded by Giorgio Vassallo

Author content

All content in this area was uploaded by Giorgio Vassallo on May 02, 2014

Content may be subject to copyright.

Content uploaded by Giorgio Vassallo

Author content

All content in this area was uploaded by Giorgio Vassallo

Content may be subject to copyright.

Università degli studi di Palermo

Dipartimento di Ingegneria Informatica

Viale delle Scienze, Edificio 6, 90128 Palermo (Italy), email: info@dinfo.unipa.it – Codice Fiscale: 80023730825

Technical Report N. 2/2010

A brief introduction to

Clifford algebra

Silvia Franchini, Giorgio Vassallo, Filippo Sorbell

o

February 2010

1

A brief introduction to Clifford algebra

Silvia Franchini

(1)

, Giorgio Vassallo

(1)

, Filippo Sorbello

(1)

(1) Dipartimento di Ingegneria Informatica - Università degli Studi di Palermo

Viale delle Scienze, Edificio 6, 90128 Palermo (Italy)

Corresponding author e-mail: franchini@dinfo.unipa.it

February 2010

Abstract

Geometric algebra (also known as Clifford algebra) is a

powerful mathematical tool that offers a natural and

direct way to model geometric objects and their

transformations. It is gaining growing attention in

different research fields as physics, robotics,

CAD/CAM and computer graphics. Clifford algebra

makes geometric objects (points, lines and planes) into

basic elements of computation and defines few

universal operators that are applicable to all types of

geometric elements. This paper provides an

introduction to Clifford algebra elements and operators.

1. Introduction

Many research fields, such as robotics, CAD/CAM, machine vision and

computer graphics, rely on geometric models of external world. In these

applications geometric objects and their transformations are traditionally

formalized using linear algebra [2]. The limitation of the traditional approach is

that its primitives are too low-level and all geometric concepts have to be

represented by vectors and matrices. This creates a separation between

geometric reasoning and matrix-based algorithms, which in turn leads to

implementation errors [10]. Geometric algebra (also known as Clifford algebra

from its main contributor, W. K. Clifford [1]) is an interesting alternative for

its natural and intuitive way to model and manipulate the geometric objects.

Compared with traditional linear algebra, geometric algebra introduces

primitives (subspaces) of any dimensionality (not only vectors) and defines the

operators to make calculations with them. Geometric entities, such as lines,

planes and volumes, become basic elements of the algebra and can be

manipulated by a rich set of algebraic operators that have a direct geometric

2

significance [5] - [9]. While linear algebra lacks universal geometric operations,

in Clifford algebra the unified treatment of subspaces of any dimensionality

makes many operators of the algebra universally applicable to all types of

elements. Furthermore, several mathematical theories, such as projective

geometry, complex numbers and quaternions, are naturally integrated in

geometric algebra providing a unified framework.

This paper gives an introduction to Clifford algebra theory. The rest of the

paper is organized as follows. Section 2 introduces geometric algebra

subspaces, while in section 3 the Clifford operators are detailed. In section 4

the basic operators of geometric algebra are used to solve simple geometric

problems in three-dimensional space, such as reflections and rotations. The

models of geometry commonly used in computer science applications, that is

the homogeneous model and the conformal model, are described in sections 5

and 6, respectively. Finally section 7 contains conclusions from this work.

2. Clifford algebra elements

This section uses a natural and intuitive way to introduce Clifford algebra

basic objects.

2.1. Multiplication of vectors in R

2

Considering an orthonormal basis {e

1

, e

2

} of a Euclidean vector space R

2

,

two generic vectors a and b of R

2

can be expressed as linear combinations of

the basis elements:

a = a

1

e

1

+ a

2

e

2

b = b

1

e

1

+ b

2

e

2

Multiplying the two vectors a and b, it is obtained:

ab = (a

1

e

1

+ a

2

e

2

) (b

1

e

1

+ b

2

e

2

) =

a

1

b

1

e

1

e

1

+ a

1

b

2

e

1

e

2

+ a

2

b

1

e

2

e

1

+ a

2

b

2

e

2

e

2

(2.1)

By defining the following axioms:

e

1

e

1

= e

2

e

2

= 1 (2.2)

e

2

e

1

= - e

1

e

2

equation (2.1) can be written as:

ab = (a

1

b

1

+ a

2

b

2

) + (a

1

b

2

– a

2

b

1

)e

1

e

2

(2.3)

The product between two vectors results in the sum of a scalar term (a

1

b

1

+ a

2

b

2

) and a term (a

1

b

2

– a

2

b

1

)e

1

e

2

composed of a numeric coefficient and e

1

e

2

.

How can e

1

e

2

be defined?

3

Considering two orthogonal vectors ae

1

and be

2

in R

2

, their product is

abe

1

e

2

. The coefficient ab represents the area of the rectangle defined by the

two vectors, as depicted in Figure 1. With respect to e

1

e

2

, two considerations

can be introduced. First, (e

1

, e

2

) define the plane in which the area lies. Second,

the sign inversion in the second axiom of (2.2) can be interpreted by assigning

an orientation to the area. Let us explain this concept.

A vector is defined by its magnitude and direction; given a vector a, -a is

the vector with the same magnitude, but with opposite direction. Similarly, an

orientation can be assigned to an area. e

2

e

1

= -e

1

e

2

is the area element whose

orientation is opposite to e

1

e

2

, as depicted in Figure 2. Ultimately, e

1

e

2

represents the oriented area element in R

2

and it is called a bivector. While the

vector is a one-dimensional oriented subspace, the bivector is a two-

dimensional oriented subspace.

e

1

e

2

ae

1

be

2

ab

e

1

e

2

ae

1

be

2

ab

Figure 1. Product of two orthogonal vectors

e

1

e

2

a

-a e

1

e

2

e

2

e

1

= -e

1

e

2

e

1

e

2

a

-a e

1

e

2

e

2

e

1

= -e

1

e

2

Figure 2. Oriented subspaces

As described in (2.3), the product between two vectors in R

2

results in the

sum of a scalar term and a bivector term. If the idea to add heterogeneous

elements is accepted, the following expression (obtained by adding a scalar, a

vector and a bivector) can be written:

a

0

+ a

1

e

1

+ a

2

e

2

+ a

12

e

1

e

2

4

It represents the most general object that can be obtained combining the

basis vectors of R

2

and it is called a multivector.

The space containing all the 2D multivectors is called two-dimensional

Clifford space (Cl

2

) and represents an extension of the Euclidean vector space

R

2

. The sum and product operations between multivectors are defined in Cl

2

.

The algebra based on multivector operations is called Clifford algebra or

geometric algebra. The basis elements of Cl

2

are listed in Table 1 along with

their grades and multiplicities.

Table 1. Basis elements in Cl

2

Basis element

Grade

Multiplicity

1

0

1

e

1

, e

2

1

2

e

1

e

2

2

1

The grade of each element indicates the number of basis vectors it

contains. The multiplicity of each element represents the number of elements

of the same grade contained in the generic multivector. A 2D multivector is a

linear combination with real coefficients of the basis elements listed in Table 1.

2.2. Multiplication of vectors in R

3

In section 2.1 the product between two vectors in R

2

has been calculated.

In this section the product between two vectors in R

3

is introduced.

Considering an orthonormal basis {e

1

, e

2

, e

3

} of a Euclidean vector space R

3

,

two generic vectors a and b of R

3

can be expressed as linear combinations of

the basis elements:

a = a

1

e

1

+ a

2

e

2

+ a

3

e

3

b = b

1

e

1

+ b

2

e

2

+ b

3

e

3

Multiplying the two vectors a and b, it is obtained:

ab = (a

1

e

1

+ a

2

e

2

+ a

3

e

3

) (b

1

e

1

+ b

2

e

2

+ b

3

e

3

) = (2.4)

a

1

b

1

e

1

e

1

+ a

1

b

2

e

1

e

2

+ a

1

b

3

e

1

e

3

+

a

2

b

1

e

2

e

1

+ a

2

b

2

e

2

e

2

+ a

2

b

3

e

2

e

3

+

a

3

b

1

e

3

e

1

+ a

3

b

2

e

3

e

2

+ a

3

b

3

e

3

e

3

By introducing the following axioms:

e

1

e

1

= e

2

e

2

= e

3

e

3

= 1 (2.5)

e

2

e

1

= - e

1

e

2

e

3

e

1

= - e

1

e

3

e

3

e

2

= - e

2

e

3

equation (2.4) can be written as:

5

ab = (a

1

b

1

+ a

2

b

2

+ a

3

b

3

) + (a

1

b

2

– a

2

b

1

)e

1

e

2

+

(2.6)

(a

1

b

3

– a

3

b

1

)e

1

e

3

+ (a

2

b

3

– a

3

b

2

)e

2

e

3

In three dimensions, the product between two vectors also results in the

sum of a scalar term and a bivector term. Each of the terms e

1

e

2

, e

1

e

3

and

e

2

e

3

can be interpreted as the oriented area element which lies on the plane defined

by the basis vectors (e

1

,e

2

), (e

1

,e

3

) and

(e

2

,e

3

), respectively (see Figure 3). In R

3

another element can be introduced which derives from the product of the

three basis vectors: e

1

e

2

e

3

.

How can e

1

e

2

e

3

be defined?

e

1

e

2

e

3

represents the oriented volume element in R

3

and it is called a trivector

(see Figure 3). While the vector is a one-dimensional oriented subspace and the

bivector is a two-dimensional oriented subspace, the trivector is a three-

dimensional oriented subspace.

e

3

e

2

e

3

e

1

e

2

e

1

e

3

e

1

e

2

e

3

e

2

e

1

e

3

trive c to r

e

3

e

2

e

3

e

1

e

2

e

1

e

3

e

1

e

2

e

3

e

2

e

1

e

3

trive c to r

Figure 3. Oriented subspaces in 3D Clifford space

In R

3

the generic multivector can be written as:

a

0

+ a

1

e

1

+ a

2

e

2

+ a

3

e

3

+ a

12

e

1

e

2

+ a

13

e

1

e

3

+ a

23

e

2

e

3

+ a

123

e

1

e

2

e

3

The space containing all the 3D multivectors is called three-dimensional

Clifford space (Cl

3

) and represents an extension of the Euclidean vector space

R

3

. The basis elements of Cl

3

are listed in Table 2 along with their grades and

multiplicities. A 3D multivector is a linear combination with real coefficients of

the basis elements listed in Table 2.

Table 2. Basis elements in Cl

3

Basis element

Grade

Multiplicity

1

0

1

e

1

, e

2

, e

3

1

3

e

1

e

2

,

e

1

e

3

,

e

2

e

3

2

3

e

1

e

2

e

3

3

1

6

2.3. Subspaces of the n-dimensional Clifford algebra

In this section the concepts intuitively introduced in the sections 2.1 and

2.2 are formalized and generalized in the case of an n-dimensional vector

space.

Considering an orthonormal basis {e

1

, e

2

, … , e

n

} of a Euclidean vector

space R

n

, the corresponding basis of n-dimensional Clifford space Cl

n

consists

of all k-dimensional subspaces with k ≤ n, for all the possible combinations of

the n basis vectors, as listed in Table 3.

Table 3. Basis elements in Cl

n

Basis element

Grade

Multiplicity

1

0 (scalar)

!

!

"

#

$

$

%

&

0

n

=1

e

1

, e

2

, e

3

,…, e

n

1 (vector)

!

!

"

#

$

$

%

&

1

n

=n

e

1

e

2

, e

1

e

3

,…, e

1

e

n

,…, e

2

e

3

,…,

e

2

e

n

,…, e

n-1

e

n

2 (bivector)

2

)1(

2

−

=

"

"

#

$

%

%

&

'

nn

n

e

1

e

2

e

3

, e

1

e

2

e

4

,…, e

1

e

2

e

n

,…, e

n-

2

e

n-1

e

n

3 (trivector)

6

)2)(1(

3

−−

=

"

"

#

$

%

%

&

'

nnn

n

…

…

…

e

1

e

2

e

3

…e

n

n (pseudoscalar)

!

!

"

#

$

$

%

&

n

n

=1

Clifford algebra subspaces are called blades: for example, bivectors are

blades of grade 2 (or 2-blades); trivectors are blades of grade 3 (or 3-blades) and so

on. According to this formalism, vectors are 1-blades and scalars are 0-blades. In

Cl

n

the total number of these subspaces is 2

n

, while the number of k-

dimensional subspaces is given by the binomial coefficient

)!(!

!

knk

n

k

n

−

=

"

"

#

$

%

%

&

'

It can be observed that in the n-dimensional space the multiplicity of the

scalar and the multiplicity of the element of grade n are equal to 1;

consequently, the blade of grade n e

1

e

2

…e

n

is called the pseudoscalar.

The generic element of the algebra or multivector is a linear combination

with real coefficients of the 2

n

basis elements listed in Table 3.

7

3. Clifford algebra operators

This section introduces the basic operators of Clifford algebra: the

geometric product, the outer product, the left and right contractions and the

unary operators (dual, reverse, coniugate and grade involution).

3.1. The geometric product

Clifford algebra introduces a linear, invertible product called geometric product

or Clifford product that is the fundamental product of the algebra, since other

useful products, as the inner product and the outer product, can be derived

from it.

Table 4 lists the axioms of the geometric product.

Table 4. Geometric product axioms

e

i

e

i

= ±1

i = 1, 2, …, n

e

i

e

j

= - e

j

e

i

i ≠ j = 1, 2, …, n

λe

i

= e

i

λ

i = 1, 2, …, n

The geometric product is an operator for multivectors. Though the rules

that are introduced in this section are general, the demonstrations are

presented for the two-dimensional case. In the two-dimensional Clifford

space Cl

2

, two generic multivectors can be written as:

a = a

0

+ a

1

e

1

+ a

2

e

2

+ a

12

e

1

e

2

b = b

0

+ b

1

e

1

+ b

2

e

2

+ b

12

e

1

e

2

The geometric product between two multivectors is performed multiplying

each component of an operand with each one of the other operand and

simplifying the resulting terms by means of the set of axioms listed in Table 4.

Using the geometric product to multiply a and b, it is obtained:

ab = (a

0

+a

1

e

1

+a

2

e

2

+a

12

e

1

e

2

)(b

0

+b

1

e

1

+b

2

e

2

+b

12

e

1

e

2

) = (3.1)

a

0

b

0

+ a

0

b

1

e

1

+ a

0

b

2

e

2

+ a

0

b

12

e

1

e

2

+

a

1

b

0

e

1

+ a

1

b

1

e

1

e

1

+ a

1

b

2

e

1

e

2

+ a

1

b

12

e

1

e

1

e

2

+

a

2

b

0

e

2

+ a

2

b

1

e

2

e

1

+ a

2

b

2

e

2

e

2

+ a

2

b

12

e

2

e

1

e

2

+

a

12

b

0

e

1

e

2

+ a

12

b

1

e

1

e

2

e

1

+ a

12

b

2

e

1

e

2

e

2

+ a

12

b

12

e

1

e

2

e

1

e

2

Studying equation (3.1), it can be observed that the geometric product of

two generic multivectors can be expressed as a linear combination of

geometric products of basis blades. Therefore, it is sufficient to understand

how to calculate geometric products between basis blades.

This section explains the rules to calculate the Clifford algebra products

between two arbitrary basis blades. Let A be the index set of basis vectors of

the first blade and B the index set of basis vectors of the second blade.

8

Considering the geometric product between two basis blades, the result

contains the basis vectors that are present only in one of the basis blades.

Thus, if an index i is present in both A and B, it is not present in the result,

while the result contains the basis vectors whose indices belong to A, but not

to B and vice versa.

Returning to equation (3.1), the products between two arbitrary blades can

be calculated by a three-step process. First, the scalar values associated to the

input blades are multiplied to yield the coefficient of the result. Second, the

blade of the result is computed according to the rules described above. Third,

the sign of the result depends on the input blades, according to the axioms

listed in Table 4. Hence, the sign is the result of three contributions: coefficient

signs, algebra signature and blade multiplication. The algebra signature is the

pair of integers (p, q), where p is the number of basis elements which square to

+1 and q is the number of basis elements which square to -1.

Finally, equation (3.1) results in

ab = (a

0

b

0

+ a

1

b

1

+ a

2

b

2

– a

12

b

12

) + (3.2)

(a

0

b

1

+ a

1

b

0

– a

2

b

12

+ a

12

b

2

) e

1

+

(a

0

b

2

+ a

2

b

0

+ a

1

b

12

– a

12

b

1

) e

2

+

(a

0

b

12

+ a

12

b

0

+ a

1

b

2

– a

2

b

1

) e

1

e

2

that is the geometric product of the two multivectors a and b.

3.2. The other products

The other products of Clifford algebra are the outer product (∧), the left

contraction (" ) and the right contraction ( #).

3.2.1. The outer product

The outer product can be interpreted as the opposite of the traditional dot

product from linear algebra. While the dot product of two vectors projects a

vector onto the other one, the outer product of two vectors extends a vector

along the other one. The ∧ (wedge) symbol is used to denote this operator that

is also called wedge product. As depicted in Figure 4a, the outer product of

two vectors a and b results in a two-dimensional subspace or bivector. It has

an area equal to the size of the parallelogram spanned by a and b and an

orientation depicted by the clockwise arc.

The outer product is anticommutative, which means that

a ∧ b = - b ∧ a

From this it derives that

a ∧ a = 0

9

a ∧ b

a ∧ b ∧ c

a)

b)

Figure 4. The outer or wedge product

The outer product of two vectors consists in extending a one-dimensional

subspace along another to obtain a two-dimensional subspace or bivector.

Similarly, if we extend a two-dimensional subspace a ∧ b along a third vector c,

we obtain a three-dimensional subspace or trivector, which represents an

oriented volume element, as depicted in Figure 4b.

The outer product of two vectors is a blade of grade 2 or a bivector. The

outer product of three vectors is a blade of grade 3 or a trivector.

In general, a generic blade of grade k is an outer product of k vectors.

As the geometric product, the outer product is distributive and linear. The

outer product of two generic multivectors can be expressed as a linear

combination of outer products of basis blades. Therefore, we provide the rules

to calculate the outer product between two arbitrary basis blades.

Let A be the index set of basis vectors of the first blade and B the index set

of basis vectors of the second blade. The rules to calculate the outer product

between the two blades can be expressed as follows: if A and B have a non-

empty intersection, the result of the outer product is 0, otherwise the result

contains the basis vectors whose indices belong to A, but not to B and vice

versa.

3.2.2. The left and right contractions

The left contraction and the right contraction are two of the various

versions of the so called inner product, which in turn is the generalization of the

traditional dot product (·) defined for vectors in linear algebra. In this paper, we

use the left contraction as the specific inner product. In the equations

involving only vectors, the left contraction is sometimes written as a dot

product.

We use a geometric intuition to explain how the left contraction works.

Figure 5 shows how to compute the left contraction between a vector a and a

2-blade B. First, a is orthogonally projected onto B (Figure 5a); then the

oriented orthogonal complement with respect to B of the projection is

10

computed (Figure 5b). Figure 5c shows the orthogonal angle between the

projection and the left contraction a " B.

a)

b)

c)

Figure 5. The left contraction [10]

As the geometric product and the outer product, the left and right

contractions are distributive and linear. The left (right) contraction of two

generic multivectors can be expressed as a linear combination of left (right)

contractions of basis blades. Therefore, we provide the rules to calculate the

left and right contraction between two generic basis blades.

Let A be the index set of basis vectors of the first blade and B the index set

of basis vectors of the second blade.

The result of the left contraction between two basis blades contains the

basis vectors whose indices belong to B, but not to A, while the result is 0 if

there are elements of A that do not belong to B. Conversely, the result of the

right contraction between two basis blades contains the basis vectors whose

indices belong to A, but not to B, while the result is 0 if there are elements of

B that do not belong to A.

3.2.3. The relation between the algebra products

Let us consider two vectors a and b of the two-dimensional Clifford space

Cl

2

:

a = a

1

e

1

+ a

2

e

2

b = b

1

e

1

+ b

2

e

2

The geometric product, outer product and inner product of a and b can be

expressed as:

ab = (a

1

b

1

+ a

2

b

2

) + (a

1

b

2

– a

2

b

1

)e

1

e

2

(3.3)

a ∧ b = (a

1

b

2

– a

2

b

1

)e

1

e

2

(3.4)

a · b = a

1

b

1

+ a

2

b

2

(3.5)

Equation (3.4) shows that the outer product of two vectors a and b is a

bivector representing the oriented area of the parallelogram spanned by a and

b (see Figure 4a).

It is possible to express the outer product and the inner product of two

vectors in terms of their geometric product:

11

a ∧ b = ½ (ab – ba) (3.6)

a · b = ½ (ab + ba) (3.7)

Equations (3.6) and (3.7) are true only for vectors. From (3.6) and (3.7) the

following equation can be derived:

ab = a ∧ b + a · b (3.8)

The geometric product for vectors can be expressed as a combination of

the outer and inner products. The outer product is anti-commutative, while the

inner product is commutative, which means that:

a ∧ b = - b ∧ a (3.9)

a · b = b · a (3.10)

It is observed that the geometric product is, in general, not commutative

(ab ≠ ba), nor is it anti-commutative (ab ≠ -ba). This is a consequence of the

fact that the anti-commutative outer product and the commutative dot product

are both part of the geometric product.

3.3. The unary operators

3.3.1. Dual

The dual of a generic blade A is defined as:

A

*

= A " I

n

-1

(3.11)

where I

n

is the blade with respect to which the dualization is performed. I

n

is often the pseudoscalar of the space.

The dualization of a blade consists in taking the orthogonal complement of

the blade. The dual of A is the part of the space I

n

that is not contained in A.

3.3.2. Reverse

The reverse of an arbitrary blade consists in reversing the order of the

factors of the blade. For instance, the reverse of a blade a ∧ b is

(a ∧ b)

†

= b ∧ a

The reversion only changes the orientation of a blade that is its sign.

In general, the reverse of a blade A

k

of grade k is defined as

A

k

†

( )

k

2

)1k(k

A1

−

−=

(3.12)

12

3.3.3. Coniugate

The coniugate of a generic blade A is defined as

( )

k

conk

A 1)( −=

A

k

†

(3.13)

3.3.4. Grade involution

The grade involution toggles the orientation of a blade if its grade is odd:

( )

k

k

k

A1A

ˆ

−=

(3.14)

3.4. Implementation of Clifford blades and operators

How can the basis blades of a Clifford space be represented?

Considering an orthonormal basis {e

1

, e

2

, e

3

,…, e

n

} of a Euclidean vector

space R

n

, the corresponding n-dimensional Clifford space Cl

n

is defined by 2

n

basis elements, for all possible combinations of the n basis vectors. To

represent them, a n-bit mask can be associated to each basis element, where

each bit is associated to a basis vector e

i

, i ∈[1,n], with e

1

the least significant

bit. As example, the blades of Cl

3

and their corresponding bit masks are listed

in Table 5.

Table 5. Blade bit masks in Cl

3

Blade

Bit mask

e

3

e

2

e

1

1

0 0 0

e

1

0 0 1

e

2

0 1 0

e

1

e

2

0 1 1

e

3

1 0 0

e

1

e

3

1 0 1

e

2

e

3

1 1 0

e

1

e

2

e

3

1 1 1

A product operation between two basis blades gives as result another basis

blade. According to the rules described in sections 3.1 and 3.2, the following

technique can be used to calculate geometric products, outer products and left

or right contractions between two basis blades. The bit mask of the result is

computed according to the following cases:

• for geometric products, the result bit mask is the XOR of the two

input bit masks;

• for outer products, the result bit mask is the XOR of the two input

bit masks with the exception that the result will be zeroed if the

bitwise AND of the two blades is different from zero.

13

• for left (right) contractions, the result bit mask is the XOR of the two

input bit masks with the exception that the result will be zeroed if the

bitwise AND between the first (second) blade and the complemented

second (first) blade is different from zero.

4. Geometric transformations

Clifford algebra operators have a very great representational power. As

demonstrated in the following sections, the geometric transformations in 3D

space, such as reflections and rotations, can be expressed by the algebraic

operators introduced in section 3.

4.1. Reflections

Let us suppose to have to reflect a vector a in a plane with unit-normal m.

Let a’ be the reflected vector, as depicted in Figure 6.

aa’

a

||

a

⊥

m

aa’

a

||

a

⊥

m

Figure 6. Reflection of a vector a

Pre-multiplying and post-multiplying a by m and sign-inverting, it is

obtained:

- mam

a can be decomposed in two parts: one part is orthogonal to m (a

⊥

) and

the other is collinear with m (a

||

):

a = a

⊥

+ a

||

(4.1)

Using equation (4.1), the following equation can be written:

- mam = - m(a

⊥

+ a

||

)m (4.2)

and therefore:

- mam = - ma

⊥

m - ma

||

m (4.3)

14

Since a

⊥

and m are orthogonal vectors, their product is anti-commutative:

a

⊥

m = - ma

⊥

(4.4)

Conversely, a

||

and m are collinear vectors; therefore, their product is

commutative:

a

||

m = ma

||

(4.5)

Using equations (4.4) and (4.5), equation (4.3) becomes:

- mam = m

2

a

⊥

- m

2

a

||

(4.6)

Since m is a unit-vector, m

2

equals 1. Thus equation (4.6) can be rewritten

as:

- mam = a

⊥

- a

||

(4.7)

a

⊥

- a

||

represents the reflected vector a

’

. Therefore the reflected vector a

’

can be expressed as:

a

’

= - mam (4.8)

From (4.8) it can be observed that the reflection of a vector a in a plane

with unit-normal m is obtained by using the geometric product. In fact it is

sufficient to pre-multiply and post-multiply a by m and sign-invert the result.

4.2. Rotations

Let us suppose to have to rotate a vector a in the plane generated by the

unitary vectors m and n (see Figure 7). The rotated vector a’’ can be obtained

by two reflections: the first one in the plane with unit-normal m and the

second one in the plane with unit-normal n. Recalling equation (4.8), the first

reflection gives as result:

a’ = - mam, (4.9)

while the second reflection gives as result:

a’’ = - na’n = - n(- mam)n = (nm)a(mn) (4.10)

15

m ∧n

m

n

aa’

a’’

θ

2θ

m ∧n

m

n

aa’

a’’

θ

2θ

Figure 7. Rotation of a vector a

It can be demonstrated that, if θ is the angle between m and n, the angle

between the original vector a and the rotated vector a’’ is 2θ. Using the

following settings:

R = nm and R

†

= mn (4.11)

equation (4.10) can be written as:

a’’ = RaR

†

(4.12)

where R

†

is the reverse of R. R is called rotor. From equation (4.12) it can be

observed that rotations are handled through an interesting “sandwiching

product” using geometric products. A rotation of a vector a in the plane

defined by two unitary vectors m and n is obtained by sandwiching the vector

between the rotor R = nm and its reverse.

Rotors are used to perform rotation of any dimensional subspaces. Thus,

equation (4.12), obtained for vectors in 3D space, can be applied to any

dimensional subspaces and in any dimensional spaces. Interestingly, equation

(4.11) shows that a generic rotor can be derived from the geometric product

between two unitary vectors that define both the rotation plane and the

rotation angle, where the rotation angle is twice the angle between the two

vectors. Since the rotor derives from the geometric product between two

vectors, it is a particular multivector, formed by a scalar element and a bivector

element.

In three dimensions, a rotor can be expressed as

R = (s, b) = q

0

+ q

1

e

0

e

1

+ q

2

e

0

e

2

+ q

3

e

1

e

2

.

A 3D rotation of a generic vector v = a

0

e

0

+ a

1

e

1

+ a

2

e

2

can be expressed as:

v’ = R v R

†

where v’ is the rotated vector and R

†

is the reverse of R,

16

R

†

= (s, – b) = q

0

– q

1

e

0

e

1

– q

2

e

0

e

2

– q

3

e

1

e

2

.

In three dimensions, rotors are exactly quaternions.

5. The homogeneous model

Clifford algebra can be used to implement the most important models of

geometry used in computer science applications, such as the homogeneous

model and the conformal model. Clifford algebra can represent these standard

geometric models increasing their expressive power. In particular, four-

dimensional Clifford algebra implements the homogeneous model, while five-

dimensional Clifford algebra implements the conformal model, also known as

double homogeneous model.

The homogeneous model implemented by 4D Clifford algebra is an

extension of the homogeneous coordinates traditionally used to model

geometry in three-dimensional space.

The elements of Clifford algebra introduced in the previous sections

represent oriented subspaces through the origin. In order to use the elements

of the algebra to represent geometric objects, as points, lines and planes, more

structured approaches, such as the homogeneous model or the more powerful

conformal model, have to be used.

To represent a geometric object, such as a line or a plane, a point on the

object is required to define its position in 3D space. For example, a line is

described by a direction vector and a position vector, as well as a plane is

described by a bivector, which defines its orientation, and a coordinate-vector,

which defines its position. To avoid the need for a supporting position, the

homogeneous model can be used. The homogeneous model consists in

embedding an n-dimensional space in an n+1-dimensional space, adding an

extra dimension. Thus, geometric objects from the n-dimensional base space

can be represented by pure blades of the (n+1)-dimensional representational

space without the need for a supporting position [7].

Figure 8. Homogeneous coordinates

17

By separating the origin of the algebra from the origin of the represented

space, the homogeneous model can identify points, lines and planes with pure

blades. For example, let us suppose to embed the Euclidean plane (that is the

base space) in the three-dimensional homogeneous space (that represents the

embedding space), as depicted in Figure 8. The base space, in this case the

Euclidean space, is put at a unit distance from the algebraic origin. To

represent the line g through points a and b in the Euclidean plane, the

direction vector a-b and a supporting coordinate a or b are required.

Conversely, in the 3D homogeneous space, it is sufficient to use the bivector

G=a∧b. The bivector represents a plane; the intersection of this plane with the

Euclidean plane defines the line g through points a and b (see Figure 8). The

bivector a∧b defines the line through a and b, while b∧a defines the line with

opposite direction. Many benefits derive from the use of homogeneous

coordinates. If a line has to be rotated, instead of having to rotate two objects

(the direction vector and the position vector), it is sufficient to rotate the

bivector. Furthermore, the intersection of two lines can be obtained by

applying the “meet” operator to two bivectors. As an example, considering

two lines in the 3D homogeneous space (the first one through points a and b

and the second one through points c and d), the intersection of the two lines

can be expressed as the meet operator between bivectors a∧b and c∧d, as

depicted in Figure 9.

a

b

d

c

a ^ b

c ^ d

e

3

e

1

e

2

meet

a

b

d

c

a ^ b

c ^ d

e

3

e

1

e

2

meet

Figure 9. Intersection of two lines

The meet operator between two arbitrary blades A and B is the inner

product of the dual of A with B, as described in equation (5.1).

A ∩ B = A* · B (5.1)

The meet operator gives as result the smallest common subspace of blades

A and B. The definition of the dual of an arbitrary multivector A has been

given in equation (3.11).

18

6. The conformal model

Five-dimensional geometric algebra (5D GA), also known as conformal

geometric algebra (CGA), implements the conformal model, that is the most

powerful and elegant model of 3D Euclidean geometry. The conformal model

is also called the double homogeneous model. The homogeneous model

consists in embedding an n-dimensional space in an (n+1)-dimensional space,

adding one more dimension, which is called the point at origin. The conformal

model, on the other hand, consists in embedding an n-dimensional space in an

(n+2)-dimensional space, adding two extra dimensions, which are called the

point at origin (o) and the point at infinity (∞).

The conformal model is more powerful than the homogeneous model.

Compared to the homogeneous model, the conformal model extends the

number of geometric objects that can be directly represented by the algebra

elements. While homogeneous model can represent only flat geometric

objects, the conformal model can represent also round objects, such as circles

and spheres, as blades. In the conformal model, all types of geometric objects

have a direct association with the blades of the algebra.

Conformal means angle-preserving. In the conformal model, the angle-

preserving geometric transformations, such as rotations, reflections,

translations, and uniform scaling, can be directly represented by geometric

products with five-dimensional rotors.

These are the most basic transformations used in computer graphics, and

they would classically be represented with 4 x 4 matrices, while in the

conformal model the natural choice to handle Euclidean transformations is

using rotors.

Conformal geometric algebra is a truly coordinate-free model of 3D

Euclidean space, in which all geometric operations can be specified without

ever referring to an origin.

In the conformal model, geometric objects in the n-dimensional base space

can be directly represented through blades of the (n+2)-dimensional

embedding space and vice versa blades of the (n+2)-dimensional

representational space can be interpreted as geometric objects of the n-

dimensional base space. The blade interpretation process in the conformal

model is depicted in Figure 10 [10].

First, the blades in the (n+2)-dimensional embedding space are intersected

with a hyper-plane. The result of this intersection is a flat in the (n+1)-

dimensional space. Then, these flats of the (n+1)-dimensional space are

intersected with an n-dimensional paraboloid, the horosphere. The conic

resulting from the intersection of the flat with the horosphere is projected

onto an n-dimensional hyper-plane orthogonal to the axis of symmetry of the

horosphere. These projections represent geometric objects in the n-

dimensional space (lines, planes, circles, spheres and so on). In this blade

interpretation process two dimensions are lost. So, in the conformal model, to

represent an n-dimensional geometry, we have to use an (n+2)-dimensional

19

geometric algebra. In particular, to model the three-dimensional Euclidean

geometry we have to use five-dimensional geometric algebra.

b)

c)

a)

d)

Figure 10. The blade interpretation process in the conformal model [10]

In Figure 10a the blade interpretation process is described in the case of n

= 2. The figure shows the basis of the conformal space (except the point at

origin o). The direction of the point at infinity (∞) is the axis of symmetry of

the horosphere. As shown in the figure, the flat in (n+1)-dimensional space is

intersected with the horosphere. The resulting conic is projected onto the

Euclidean space spanned by the basis vectors e

1

and e

2

. In this case, the result

of this projection is a circle.

As depicted in Figure 10b, in the conformal model points are represented

by null vectors on the horosphere. Figure 10c shows that lines are represented

by planes parallel to the axis of symmetry of the horosphere, while Figure 10d

shows that circles are represented by planes which are not parallel to the axis

of symmetry of the horosphere.

20

Line L = a ∧ c ∧ ∞

Circle C = a ∧ b ∧ c

Plane P = a ∧ b ∧ c ∧ ∞

Sphere S = a ∧ b ∧ c ∧ d

Figure 11. Representation of geometric objects in the conformal model

As shown in Figure 11, a line is created as the outer product of two points

on the line and infinity, a circle is the outer product of three points on the

circle, a plane is the outer product of three points on the plane and infinity and

a sphere is obtained as the outer product of four points on the sphere. Flat

subspaces are represented as spheres through infinity.

As shown in Figure 12, the circle deriving from the intersection of two

spheres S

1

and S

2

can be obtained as the outer product of the two spheres

S

1

∧S

2

.

Sphere S

1

Sphere S

2

Circle = S

1

∧ S

2

Sphere S

1

Sphere S

2

Circle = S

1

∧ S

2

Figure 12. Intersection of two spheres in the conformal model

The conformal geometric algebra is based on the Minkowski metric R

n+1,1

,

which is also used in physics for space-time. In particular, the conformal

model of the 3D Euclidean space, that is the 5D geometric algebra, is based on

the R

4,1

Minkowski metric.

In general, the notation R

p,q

means that p is the number of basis vectors

which square to +1 and q is the number of basis vectors which square to -1.

21

For the conformal model of 3-D Euclidean space, we use R

4,1

, to denote that

four basis vectors square to 1 and one squares to -1.

Conversely, the notation R

n

is used for a space with n positive and no

negative dimensions.

The metric of a vector space can be specified by a metric matrix, which is a

simple look up table defining the inner product for each combination of basis

vectors. In a Euclidean metric, all diagonal metric factors are 1.

For example, the metric matrix for an orthogonal 3D Euclidean basis e

0

,

e

1

, e

2

of R

3

, is the diagonal matrix shown in Table 6.

Table 6. Euclidean metric for 3D space

e

0

e

1

e

2

e

0

1

0

0

e

1

0

1

0

e

2

0

0

1

According to the Minkowski metric R

4,1

, the metric multiplication table is

as shown in Table 7.

Table 7. Minkowsky metric in the conformal model

e

0

e

1

e

2

e

3

e

4

e

0

1

0

0

0

0

e

1

0

1

0

0

0

e

2

0

0

1

0

0

e

3

0

0

0

1

0

e

4

0

0

0

0

-1

The relation between the basis vectors and the points at origin (o) and at

infinity (∞) is as follows:

o =

2

1

(e

3

+ e

4

)

∞ =

2

1

(- e

3

+ e

4

)

7. Conclusions

Geometric or Clifford algebra is a new powerful computing paradigm

which offers a natural way to model geometric objects independently from

their coordinates. Clifford algebra adds to classical linear algebra concepts,

22

such as scalars and vectors, two-, three-, or higher-dimensional subspaces and

defines the operators to perform calculations with them. It is possible, in fact,

to add and subtract subspaces of different dimensions, and even multiply

them, resulting in powerful expressions that can express any geometric

relations and concepts. Geometric objects have a direct representation in

geometric algebra and their transformations can be expressed directly by the

new powerful operators of the algebra. Clifford algebra is applied to different

fields of research as computer graphics, CAD/CAM, robotics, physics and

everywhere the description and the manipulation of geometric entities are very

important. However, Clifford algebra has been introduced in these fields only

in recent years, while the traditional methods have been used for years.

Consequently, a lot of work has still to be done to find efficient

implementations of Clifford algebra that allows us to benefit from its

expressiveness and elegance without sacrificing performance.

References

[1] W. K. Clifford, “On the classification of geometric algebras”, in Mathematical

Papers (1882), Tucker R., (Ed.), Macmillian, London, pp. 397–401.

[2] S. Mann, N. Litke, T. DeRose, “A Coordinate-Free Geometry ADT”,

Research Report CS-97-15, University of Waterloo, 1997.

[3] L. Dorst, “Honing geometric algebra for its use in the computer sciences”, in

Geometric Computing with Clifford Algebra, G. Sommer, editor, Springer

ISBN 3-540-41198-4, 2001.

[4] L. Dorst, “The Inner Products of Geometric Algebra”, appeared in Applications

of Geometric Algebra in Computer Science and Engineering (Dorst,

Doran, Lasenby, eds), Birkhauser, 2002, pp. 34-46.

[5] L. Dorst, S. Mann, “Geometric Algebra: a computational framework for geometrical

applications (part 1: algebra)”, IEEE Computer Graphics and Applications,

Volume 22, Issue 4, July-August 2002, pp. 58 - 67.

[6] L. Dorst, S. Mann, “Geometric Algebra: a computational framework for geometrical

applications (part 2: applications)”, in IEEE Computer Graphics and

Applications, Volume 22, Issue 3, May-June 2002, pp. 24 - 31.

[7] J. Suter, “Geometric Algebra Primer”,

http://www.jaapsuter.com/paper/ga_primer.pdf, March 2003.

[8] D. Hildenbrand , D. Fontijne , C. Perwass and L. Dorst, “Geometric Algebra

and its Application to Computer Graphics”, Tutorial 3, in Proc. of 25th Annual

Conference of the European Association for Computer Graphics,

“Interacting with Virtual Worlds”, Grenoble, France, INRIA and

Eurographics Association, ISSN 1017-4656.

[9] Fontijne D., Dorst L., “Modeling 3D Euclidean geometry”, in IEEE Computer

Graphics and Applications, Volume 23, Issue 2, Mar/Apr 2003, pp. 68 –

78.

23

[10] D. Fontijne, “Efficient implementation of geometric algebra”, Ph.D. Thesis,

University of Amsterdam, 2007.

[11] D. Hestenes, “New Foundations For Classical Mechanics”, Kluwer Academic

Publishing, Dordrecht, 1986.

[12] D. Hestenes, G. Sobcyk, “Clifford Algebra to Geometric Calculus: A Unified

Language for Mathematics and Physics”, Kluwer Academic Publishing,

Dordrecht, 1987.

[13] D. Fontijne, T. Bouma, L. Dorst, “GAIGEN: a Geometric Algebra

Implementation Generator”, University of Amsterdam, NL, July 2002.

http://www.science.uva.nl/ga/gaigen/

[14] C. Perwass, C. Gebken, G. Sommer, “Implementation of a Clifford Algebra Co-

Processor Design on a Field-Programmable Gate Array”, in Clifford Algebras -

Applications to Mathematics, Physics, and Engineering, Series: Progress in

Mathematical Physics , Vol. 34, Ablamowicz, Rafal (Ed.) 2004.

[15] Silvia Franchini, Antonio Gentile, Filippo Sorbello, Giorgio Vassallo,

Salvatore Vitabile, “An Embedded, FPGA-based Computer Graphics Coprocessor

with Native Geometric Algebra Support”, Integration, The VLSI Journal, Vol.

42, No. 3, June 2009, pp. 346-355, ISSN: 0167-9260,

doi:10.1016/j.vlsi.2008.09.010.

[16] S. Franchini, A. Gentile, F. Sorbello, G. Vassallo, S. Vitabile, “An FPGA

Implementation of a Quadruple-Based Multiplier for 4D Clifford Algebra”,

Proceedings of the 11

th

IEEE Euromicro Conference on Digital System

Design - Architectures, Methods and Tools (DSD 2008), Parma, Italy,

September 3-5, 2008, pp. 743-751, ISBN: 978-0-7695-3277-6, doi:

10.1109/DSD.2008.91, IEEE Computer Society Press.

[17] Silvia Franchini, Giorgio Vassallo, Filippo Sorbello, “4D Clifford algebra

based on fixed-size representation”, Atti dell'Accademia Nazionale di Scienze,

Lettere e Arti di Palermo, Serie V, Volume XXIV, Anni Accademici 2004-

2008, Tomo I: Scienze, 2008, pp. 249-273.

[18] S.Franchini, A.Gentile, M.Grimaudo, C.A.Hung, S.Impastato, F.Sorbello,

G.Vassallo, S.Vitabile, “A Sliced Coprocessor for Native Clifford Algebra

Operations”, Proceedings of the 10

th

IEEE Euromicro Conference on

Digital System Design - Architectures, Methods and Tools (DSD 2007),

Lubeck, Germany, August 29-31, 2007, pp. 436-439, ISBN/ISSN: 0-7695-

2978-X, doi:10.1109/DSD.2007.4341505, IEEE Computer Society Press.

[19] A. Gentile, S. Segreto, F. Sorbello, G. Vassallo, S. Vitabile, V. Vullo,

“CliffoSor: a Parallel Embedded Architecture for Geometric Algebra and Computer

Graphics”, Proceedings of the IEEE International Workshop on Computer

Architecture for Machine Perception (CAMP 2005), pp. 90-95, IEEE

Computer Society Press.

[20] A. Gentile, S. Segreto, F. Sorbello, G. Vassallo, S. Vitabile, V. Vullo,

“CliffoSor, an innovative FPGA-based architecture for geometric algebra”,

Proceedings of the International Conference on Engineering of

Reconfigurable Systems and Algorithms (ERSA 2005), pp. 211–217.