# Free-form additive motions using conformal geometric algebra

Mat Hunt, Glen Mullineux, Robert J Cripps, Ben Cross

► To cite this version:

Mat Hunt, Glen Mullineux, Robert J Cripps, Ben Cross. Free-form additive motions using conformal geometric algebra. Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science, 2017, 4, 10.1177/0954406217707777. hal-01572459

HAL Id: hal-01572459

https://hal.science/hal-01572459

Submitted on 7 Aug 2017

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Free-form additive motions using conformal geometric algebra

Mat Hunt<fnref n="1" />, Glen Mullineux<fnref n="1" />, Robert J Cripps<fnref n="2" /> and Ben Cross<fnref n="2" />

## Abstract

Free-form motions in B-spline form can be created from a number of prescribed control poses using the de Casteljau algorithm. With poses defined using conformal geometric algebra, it is natural to combine poses multiplicatively. Additive combinations offer alternative freedoms in design and avoid dealing with noninteger exponents. This paper investigates additive combinations and shows how to modify the conventional conformal geometric algebra definitions to allow such combinations to be well-defined. The additive and multiplicative approaches are compared and in general they generate similar motions, with the additive approach offering computational simplicity.

## Keywords

Free-form motion, conformal geometric algebra, de Casteljau algorithm, motion curves

## Introduction

There has been increasing interest in the use of geometric algebra for dealing with a range of geometric issues in applications such as computer vision,<fnref n="1" />⁻³ protein structures,⁴ geographical analysis,⁵ and neuroscience.⁶

A number of formulations of geometric algebra exist. They all provide an environment containing subspaces of elements of grade 1 (vectors) that model three-dimensional Euclidean space $ℝ³$ or, more generally the corresponding projective space $ℝP³$, and allow rigid-body transforms to be performed on these subspaces using elements of grade 2 (bivectors) or more general elements of even grade. These latter elements act as maps taking an object from a reference frame to a particular position and orientation, that is a *pose*, in space. As discussed in the following section, if *p* is a vector and *S* is an even-grade element, the image under the transform is $\bar{S}pS$ where $\bar{S}$ is the *reverse* of *S*. It is the ability to handle both rotations and translations robustly in a single form that offers advantages over matrix-based methods for dealing with transforms.

If the transform applied to an object is allowed to vary, then the result is the simulation of a motion of that object. This had led to the use of geometric algebra to study motions in manipulator and mechanism design,⁷⁻¹⁰ robotics,¹¹,¹² and human motion.¹³

One way to generate a motion between two poses is to use the slerp (spherical linear interpolation) construction introduced by Shoemake for quaternions.¹⁴

In this motion, a typical point moves along a helix on the curved surface of a circular cylinder. Forming a slerp requires the ability to multiply two poses and to raise a pose to a noninteger power. This in turn requires the ability to form the exponential and logarithm of even-grade elements. An even-grade element *S* is said to be *normalized* if $\bar{S}S = 1$. When forming a slerp, it can be assumed that the two defining poses are both normalized. In the conformal geometric algebra (CGA) formulation, points are represented by *null vectors* and the image of a null vector under a slerp transform is also a null vector if the defining poses are both normalized.

When dealing with free-form curves, the Bézier and, more generally, the B-spline forms are commonly used. These allow a curve to be created based on a number of control points. The curve can be generated using the de Casteljau algorithm which works by recursively combining pairs of points. The slerp construction provides a means to combine a pair of poses. This allows the de Casteljau algorithm to be

## Corresponding author:

Glen Mullineux, Department of Mechanical Engineering, University of Bath, Claverton Down, Bath, BA2 7AY, UK.

Email: g.mullineux@bath.ac.uk

<footnote n="1">¹Department of Mechanical Engineering, University of Bath, Bath, UK</footnote>

<footnote n="2">²School of Mechanical Engineering, University of Birmingham, Birmingham, UK</footnote>
used to create a free-form motion from a collection of control poses.

The slerp construction combines poses multiplicatively and is computationally expensive in that it requires the formation of exponentials and logarithms. An alternative is to combine poses additively. The sum of a pair of poses is easily formed. The motion generated by an additive Bézier combination of two poses is one in which a typical point moves along a path that is a planar slice through a circular cylinder. However, the sum of two normalized poses is not necessarily normalized and so null vectors are not preserved. This then means that the result of using the de Casteljau algorithm recursively may not itself be a vector, although a vector result can be recovered.

This paper shows how to revise the usual multiplicative approach of the CGA formulation to allow additive combinations and compares the motions generated by the additive and multiplicative approaches. The following section gives an overview of CGA and how it can represent geometry and rigid-body transforms. Two maps are established: an embedding that maps points in projective four-dimensional space (and hence also for points in Euclidean three-dimensional space) to elements of the algebra; and a projection mapping elements of the algebra to projective points (and hence also to Euclidean points). The approach used here does not insist that points are represented by null vectors. Instead, it is shown that elements of the algebra can be regarded as being equivalent if their projections are the same, and that any vector resulting from an embedding is equivalent to a null vector.

In a later section, the additive approach is presented, and its use with the de Casteljau algorithm. A comparison is made between the additive and multiplicative approaches and some examples are given. The last section draws some conclusions.

## Conformal geometric algebra

There are a number of methods for constructing geometric algebras including the conformal version.15–17 The approach given by Cibura and Dorst18 is used here, with some variation in the notation. This is essentially the same approach used by Fu et al.11

The conformal geometric algebra $G^{(4,1)}$ can be considered as an extension of a real vector space of dimension 5 with basis vectors: $e_0, e_1, e_2, e_3, e_\infty$.

This space is extended to one with dimension 32 with basis elements $e_\sigma$ where $\sigma$ is a subset of the set of subscripts $\{0, 1, 2, 3, \infty\}$. This means that a multiplication can be defined on the original basis vectors so that, for example, $e_1e_2 = e_{12}$ and $e_0e_1e_\infty = e_{01\infty}$.

The multiplication is defined mainly to be anticommutative on the basis vectors so that $e_i e_j = e_{ji} = -e_{ji} = -e_j e_i$ if $i$ and $j$ are distinct subscripts

and not 0 and $\infty$ in some order. In the exceptional case

$$e_{\infty 0} = e_{\infty} e_0 = -2 - e_0 e_{\infty} = -2 - e_{0\infty}$$

The squares of the basis vectors are defined as

$$e_1^2 = e_2^2 = e_3^2 = 1, \quad e_0^2 = e_\infty^2 = 0$$

The typical element of the algebra is a linear combination of the basis elements and has the form

$$a = \sum_{\sigma} \alpha_{\sigma} e_{\sigma} \qquad (1)$$

where the sum is over all subsets $\sigma$ of $\{0, 1, 2, 3, \infty\}$, and the $\alpha_\sigma$ are real coefficients. The basis element $e_\phi$, where $\phi$ is the empty set, behaves like the real number unity and is identified with it: $e_\phi = 1$.

An element of $G^{(4,1)}$ that does not involve $e_0$ is called 0-free: that is, it is a combination of the basis vectors $e_1, e_2, e_3, e_\infty$, and their products. Similarly, an element that does not involve $e_\infty$ is called $\infty$-free, and one that involves neither $e_0$ nor $e_\infty$ is $0\infty$-free.

The grade of basis element $e_\sigma$ is the number of its subscripts that is the size of the subset $\sigma$. If the typical element $a$ of equation (1) is a combination only of basis elements of a single grade, then this is taken as the grade of $a$. The typical element of grade 1 is a linear combination of $e_0, e_1, e_2, e_3, e_\infty$ and is called a vector. An element of grade 2 is a bivector. One of grade 3 is a trivector. In particular, $\mathbb{R}^3$ can be regarded as a subspace of $G^{(4,1)}$ with $(X, Y, Z)$ corresponding to $Xe_1 + Ye_2 + Ze_3$.

An element is said to have even (odd) grade if it is a combination of basis elements of even (odd) grade. The geometric product of two elements of the same parity has even grade, and it is odd if their parities are different.

Two products are introduced. These are for all elements $a, b \in G^{(4,1)}$. An inner product is defined by

$$a \cdot b = \frac{1}{2}(ab + ba)$$

and an outer product is defined by

$$a \wedge b = \frac{1}{2}(ab - ba)$$

Note that these are different from the more usual definitions for $G^{(4,1)}$.11,18 They are used here since they are simpler to apply and work well for the applications discussed. They are related to the scalar and vector products defined on elements of $\mathbb{R}^3$ as the following result shows.

**Lemma 2.1.** Suppose that $a = (\alpha_1, \alpha_2, \alpha_3)$ and $b = (\beta_1, \beta_2, \beta_3)$ are vectors in $\mathbb{R}^3$, and let $a = \alpha_1 e_1 + \alpha_2 e_2 + \alpha_3 e_3$ and $b = \beta_1 e_1 + \beta_2 e_2 + \beta_3 e_3$ be
the corresponding vectors in $\mathcal{G}^{(4,1)}$. Then

$$a \cdot b = \mathbf{a} \cdot \mathbf{b}$$
$$-(a \wedge b)e_{123} = \mathbf{a} \times \mathbf{b}$$

where the equals sign denotes corresponding elements.

Further, if a is replaced by $\alpha_1 e_1 + \alpha_2 e_2 + \alpha_3 e_3 + \alpha_\infty e_\infty$ and b by $\beta_1 e_1 + \beta_2 e_2 + \beta_3 e_3 + \beta_\infty e_\infty$, where $\alpha_\infty$ and $\beta_\infty$ are arbitrary real numbers, it remains true that $a \cdot b = \mathbf{a} \cdot \mathbf{b}$.

**Proof.** These results follow by expanding the left hand sides of the expressions. $\square$

The reverse of a basis element $e_\sigma$ is obtained by reversing the order of the elements of the subset (sequence) $\sigma$. The reverse is denoted by an overbar. The reverse of a more general element is obtained by taking the reverse of each of the terms in its expansion in terms of the basis elements. For general elements $a, b \in \mathcal{G}^{(4,1)}$, it is clear that: $\overline{ab} = \overline{b\bar{a}}$.

In some versions of geometric algebra (cf. González Calvet¹⁵ and Mullineux and Simpson¹⁹), the reverse operation preserves the grade. However, the relation

$$\overline{e_{0\infty}} = -2 - e_{0\infty} \qquad (2)$$

shows that the grade is not preserved in $\mathcal{G}^{(4,1)}$.

**Lemma 2.2.** The reverse operation preserves the parity of an element, In particular, if $a \in \mathcal{G}^{(4,1)}$ has odd grade, then

i. $\bar{a}$ also has odd grade;

ii. if $\bar{a} = a$, then $a$ is a linear combination of $e_0, e_1, e_2, e_3, e_\infty, e_{123}$, and $e_{0123\infty}$;

iii. if $a$ is 0-free and $\bar{a} = a$, then $a$ is a vector;

iv. if $a$ is 0-free and $\bar{a} = -a$, then $a$ is a trivector.

**Proof.** This follows from the rules from the definition of the reverse operation and the rules for multiplication. $\square$

**Remark:** The appearance of the element $e_{123}$ in part (ii) of the lemma is perhaps a surprise. An example where it is required is the element $a = e_{123} - e_{0123\infty}$ for which $\bar{a} = a$ by use of equation (2).

The interest is in using $\mathcal{G}^{(4,1)}$ as a representation of projective space $\mathbb{RP}^3$ and of its transforms. To allow this, a function $E: \mathbb{RP}^3 \to \mathcal{G}^{(4,1)}$ is defined to embed the projective space in the CGA

$$E: (W, X, Y, Z) \mapsto We_0 + Xe_1 + Ye_2 + Ze_3$$

where $W$ is the homogeneous fourth coordinate. It is useful to regard this embedding as allowing $\mathbb{RP}^3$ to be treated as the subspace of $\mathcal{G}^{(4,1)}$ comprising $\infty$-free vectors. Each such vector also corresponds to $(X/W, Y/W, Z/W)$ which is either a point at infinity or lies in $\mathbb{R}^3$. If $W \neq 0$, the point is in $\mathbb{R}^3$ and the vector in $\mathbb{RP}^3$ is said to be finite.

Similarly, there is an embedding, $E: \mathbb{R}^3 \to \mathcal{G}^{(4,1)}$, putting real three-dimensional space inside the CGA: $E(x, y, z) = e_0 + xe_1 + ye_2 + ze_3$.

A projection map $P: \mathcal{G}^{(4,1)} \to \mathbb{RP}^3$ is defined to extract information from the CGA.

$$P: a = \sum_{\sigma} \alpha_{\sigma} e_{\sigma} \mapsto (\alpha_0, \alpha_1, \alpha_2, \alpha_3)$$

The map simply extracts the vector part of $a \in \mathcal{G}^{(4,1)}$, ignoring components that are multiples of $e_\infty$. The map can be extended to map elements for which $\alpha_0 \neq 0$ into $\mathbb{R}^3$

$$P: \sum_{\sigma} \alpha_{\sigma} e_{\sigma} \mapsto (\alpha_1/\alpha_0, \alpha_2/\alpha_0, \alpha_3/\alpha_0)$$

Note that the embeddings given here are different from those commonly used with the CGA.¹¹,¹⁸ For a point in $\mathbb{R}^3$ the more usual embedding is

$$E_1: (x, y, z) \mapsto a = e_0 + xe_1 + ye_2 + ze_3 + \frac{1}{2}(x^2 + y^2 + z^2)^2 e_\infty$$

whose result $a$ is a null vector, that is $a^2 = 0$.

The reason for the different definition of the embeddings is as follows. An even-grade element $S$ can be used to define a map of $\mathcal{G}^{(4,1)}$ to itself. If $S$ is normalized (as discussed in the next section) so that $\bar{S}S = 1$, then this map sends null vectors to other null vectors and the map can be studied simply by considering its effects on null vectors. If $S_1$ and $S_2$ are normalized, then so is their product $S_1S_2$ and this also defines a map. The interest here is also in additive combinations, and the sum $S_1 + S_2$ is not necessarily normalized and so does not preserve null vectors. Hence, a more general definition of the map corresponding to an even-grade element $S$ that avoids the use of null vectors is introduced in the next section.

In fact, the two approaches are closely related because of the next result. This uses the following definition. Two elements $x, y \in \mathcal{G}^{(4,1)}$ are said to be equivalent if $P(x) = P(y)$.

**Lemma 2.3**

i. Vectors $u, v \in \mathcal{G}^{(4,1)}$ are equivalent if and only if $u-v$ is a scalar multiple of $e_\infty$.

ii. For any finite $\infty$-free vector in $\mathcal{G}^{(4,1)}$ there is a unique null vector to which it is equivalent.

**Proof.** Part (i) is immediate from the definition of $P$. For (ii), let $v = \alpha_0 e_0 + \alpha_1 e_1 + \alpha_2 e_2 + \alpha_3 e_3$, with $\alpha_0 \neq 0$. An equivalent vector has the form $w = v + \beta e_\infty$. If this is a null vector then

$$0 = w^2 = v^2 + 2\beta(v \cdot e_\infty) = v^2 - 2\beta\alpha_0$$
Hence, uniquely

$$ \beta = \frac{v^2}{2\alpha_0} = \frac{\alpha_1^2 + \alpha_2^2 + \alpha_3^2}{2\alpha_0} \quad \square $$

## Transforms

Suppose that $v \in G^{(4,1)}$ is a vector and that $S \in G^{(4,1)}$ is an element of even grade. Then $\bar{S}vS$ is an element of odd grade that is equal to its own reverse since

$$ \bar{SvS} = \bar{Sv} \bar{S} = \bar{SvS} $$

In some versions of geometric algebra, this is sufficient to show that $\bar{S}vS$ is a vector. This is not the case for CGA. However, $P(\bar{S}vS)$ certainly is a vector. Hence there is a map from vectors in $G^{(4,1)}$ to themselves given by

$$ F_S(v) = P(\bar{S}vS) $$

**Lemma 3.1.** If $S \in G^{(4,1)}$ has even grade, then the map $F_S$ is a linear transformation on the space of vectors in $G^{(4,1)}$.

**Proof.** For vectors $u$ and $v$, and real numbers $\alpha$ and $\beta$, the following shows that $F_S$ is a linear transformation.

$$ \begin{aligned} F_S(\alpha u + \beta v) &= P(\bar{S}(\alpha u + \beta v)S) \\ &= P(\alpha \bar{S}uS + \beta \bar{S}vS) \\ &= \alpha P(\bar{S}uS) + \beta P(\bar{S}vS) \\ &= \alpha F_S(u) + \beta F_S(v) \quad \square \end{aligned} $$

While $F_S$ can be constructed for any even-grade element $S$, the interest in this paper is the case when $S$ is 0-free as this is when $F_S$ is a rigid-body transform. This means that $S$ has the form

$$ S = S_{\phi} + S_{12}e_{12} + S_{13}e_{13} + S_{23}e_{23} + S_{1\infty}e_{1\infty} + S_{2\infty}e_{2\infty} + S_{3\infty}e_{3\infty} + S_{\omega\omega} \quad (3) $$

where

$$ \omega = e_{123\infty} $$

This can be alternatively written as

$$ S = \mu + b + v e_{\infty} + v \omega \quad (4) $$

where $\mu = S_{\phi}$ and $\nu = S_{\omega}$ are real numbers, $b = S_{12}e_{12} + S_{13}e_{13} + S_{23}e_{23}$ is a bivector, and $\nu = S_{1\infty}e_1 + S_{2\infty}e_2 + S_{3\infty}e_3$ is a vector.

**Lemma 3.2.** If $S$ is an even-grade 0-free element then $\bar{S}e_{\infty}S = ae_{\infty}$ where $a$ is an even-grade $0\infty$-free element. If $u$ and $v$ are equivalent vectors, then $F_S(u) = F_S(v)$, and $\bar{S}uS$ and $\bar{S}vS$ are equivalent elements of $G^{(4,1)}$.

**Proof.** This first part follows from the definition of the multiplication. By definition, $u - v = \alpha e_{\infty}$ where $\alpha$ is a real number. By lemma 3.1

$$ F_S(u) - F_S(v) = \alpha F_S(e_{\infty}) = \alpha P(\bar{S}e_{\infty}S) = \alpha P(ae_{\infty}) = 0 $$

Hence $\bar{S}uS$ and $\bar{S}vS$ have the same image under $P$ and so they are equivalent. $\square$

A sequence of results is now presented leading to one that shows that $F_S$ acts on $\mathbb{R}^3$ not only as a linear transformation but also as a rigid-body transformation.

**Lemma 3.3.** If $S$ is an even-grade 0-free element, then $\bar{S}S = S\bar{S} = \alpha + \beta\omega$ for some real numbers $\alpha$ and $\beta$, with $\alpha \ge 0$. Further, $\alpha$ is only zero if $S$ is a multiple of $e_{\infty}$, that is $S = ae_{\infty}$ where $a \in G^{(4,1)}$ involves only $e_1, e_2, e_3$, and then $\bar{S}S = 0$, and $F_S$ is the zero map sending all vectors in $\mathbb{R}P^3$ (and $\mathbb{R}^3$) to zero.

**Proof.** Expressing $S$ as in equation (4) gives

$$ \begin{aligned} \bar{S} &= \mu - b - v e_{\infty} + v \omega \\ \bar{S}S &= S\bar{S} = \mu^2 - b^2 + 2\mu v \omega - 2(b \cdot v)e_{\infty} \\ &= (S_{\phi}^2 + S_{12}^2 + S_{13}^2 + S_{23}^2) + 2S_{\phi}S_{\omega}\omega - 2(b \cdot v)e_{\infty} \end{aligned} $$

Here, $b \cdot v$ is a trivector and has the form $\zeta e_{123}$, where $\zeta$ is a real number. So $\bar{S}S = \alpha + \beta\omega$ with

$$ \begin{aligned} \alpha &= S_{\phi}^2 + S_{12}^2 + S_{13}^2 + S_{23}^2 \\ \beta &= 2S_{\phi}S_{\omega} - 2\zeta \end{aligned} $$

Clearly $\alpha \ge 0$.

Suppose $\alpha = 0$. Then $S_{\phi}$ and $b$ are both zero. Also, $S = ae_{\infty}$ where $a = v + v e_{123}$, and $\zeta = 0$, and so $\bar{S}S = 0$. By multiplying out

$$ \begin{aligned} \bar{S}e_0S &= e_{\infty}\bar{a}e_0ae_{\infty} = -e_{\infty}\bar{a}ae_0e_{\infty} \\ &= -(\bar{a}a)e_{\infty}e_0e_{\infty} = 2(\bar{a}a)e_{\infty} \\ \bar{S}e_iS &= e_{\infty}\bar{a}e_iae_{\infty} = -\bar{a}e_i\bar{a}e_{\infty}e_{\infty} = 0 \quad \text{for } i = 1, 2, 3 \\ \bar{S}e_{\infty}S &= e_{\infty}\bar{a}e_{\infty}ae_{\infty} = -e_{\infty}(\bar{a}a)e_{\infty}e_{\infty} = 0 \end{aligned} $$

and these terms are discarded by the projection $P$. Hence $F_S$ maps all vectors in $\mathbb{R}P^3$ to zero. $\square$

Elements of $G^{(4,1)}$ of the form $\alpha + \beta\omega$, where $\alpha$ and $\beta$ are real numbers, occur frequently. Such an element is here called a pseudoscalar.

**Lemma 3.4.** Suppose that $\lambda = \alpha + \beta\omega$ is a pseudoscalar.

i. If $\alpha \ne 0$, then $(1/\alpha) - (\beta/\alpha^2)\omega$ is a multiplicative inverse of $\lambda$.

ii. If $\alpha > 0$, then $\pm(\alpha + \frac{1}{2}\beta\omega)/\sqrt{\alpha}$ are square roots of $\lambda$.
**Proof.** The proof follows by direct multiplication, noting that $\omega^2 = 0$. □

If $U$ and $V$ are two 0-free even-grade elements, then so are their sum $U+V$ and product $UV$. So these also define transforms. The following result checks that the transform for the product is the composition of the individual transforms, as might be expected.

**Lemma 3.5.** Suppose that $U, V \in \mathcal{G}^{(4,1)}$ are two even-grade 0-free elements, then

$$F_{UV} = F_V F_U$$

**Proof.** It needs to be shown that if $v$ is a vector, then

$$P(\bar{V}\bar{U}vUV) = P(\bar{V}P(\bar{U}vU)V)$$

To do this, the components of $\bar{U}vU$ that are discarded by $P$ are considered. It needs to be checked that the action of $F_V$ on these gives results that are discarded by $P$.

As $v$ is a vector, $\bar{U}vU$ is an element of odd grade that is equal to its own reverse. Part (ii) of lemma 2.2 shows that the parts discarded by $P$ are scalar multiples of $e_\infty$, $e_{123}$, and $e_{0123\infty}$: so consider the action of $F_V$ on these basis elements.

Since $F_V(e_{123}) = \bar{V}e_{123}V$ has odd grade and is minus its own reverse, part (iv) of lemma 2.2 shows that it is a trivector and so is discarded by $P$.

For the other two cases, note that $V = p + qe_\infty$ where $p, q$ are $0\infty$-free elements of even and odd grade respectively. Then

$$ 
\begin{aligned}
F_V(e_\infty) &= (\bar{p} - \bar{q}e_\infty)e_\infty(p + qe_\infty) = \bar{p}pe_\infty \\
F_V(e_{0123\infty}) &= (\bar{p} - \bar{q}e_\infty)e_{0123\infty}(p + qe_\infty) \\
&= \bar{p}pe_{0123\infty} + 2\bar{q}pe_{123\infty}
\end{aligned}
$$

Both these products are multiples of $e_\infty$ and so are discarded by $P$. □

An element $S$ given by equation (3) generates a linear transform on the space of vectors in $\mathcal{G}^{(4,1)}$. Hence such an $S$ generates a linear transform on projective space $\mathbb{RP}^3$ and on Euclidean space $\mathbb{R}^3$. However, the transform may be trivial.

**Lemma 3.6.** Suppose that $S = \alpha + \beta\omega$ is a pseudoscalar. Then

i. $S$ generates a transform $F_S$ that acts as multiplication by $\alpha^2$ on $\mathbb{RP}^3$;

ii. if $\alpha \neq 0$, then $F_S$ acts as the identity transform on $\mathbb{R}^3$;

iii. if $\alpha = 0$, then $F_S$ is the zero map sending all vectors in $\mathcal{G}^{(4,1)}$ and $\mathbb{R}^3$ to zero.

**Proof.** Let $v \in \mathbb{RP}^3$ be the vector $v = \gamma_0 e_0 + \gamma_1 e_1 + \gamma_2 e_2 + \gamma_3 e_3$. Then, using the relations $e_i \cdot \omega = 0$ and

$\omega e_i \omega = 0$ for $i=1, 2, 3$, expansion of the product yields the following.

$$ 
\begin{aligned}
\bar{S}vS &= (\alpha + \beta\omega)v(\alpha + \beta\omega) \\
&= \alpha^2 v + 2\alpha\beta(v \cdot \omega) + \beta^2\omega v\omega \\
&= \alpha^2 v + 2\alpha\beta\gamma_0(e_0 \cdot \omega) + \beta^2\gamma_0\omega e_0\omega \\
&= \alpha^2 v + 2\alpha\beta\gamma_0(-e_{123} + e_{0123\infty}) + 2\beta\gamma_0 e_\infty
\end{aligned}
$$

Hence, $P(\bar{S}vS) = \alpha^2 v$ as required for (i). Parts (ii) and (iii) now follow. □

**Corollary 3.7.** Suppose that $S$ is an even-grade 0-free element that generates a nonzero map $F_S$ of $\mathbb{R}^3$. Then there is a pseudoscalar $\lambda$ such that $S' = \lambda S$ is an even-grade element that generates the same map with $\bar{S}'S' = 1$.

**Proof.** Lemma 3.3 shows that $\bar{S}S = \alpha + \beta\omega$ with $\alpha > 0$. Lemma 3.4 says that there is a multiplicative inverse of a square root of this pseudoscalar; call this $\lambda$. By lemma 3.6, $F_\lambda$ generates the identity transform of $\mathbb{R}^3$, and so, by lemma 3.5, $S' = \lambda S$ generates the same transform as $S$. The choice of $\lambda$ ensures that $\bar{S}'S' = 1$ □.

The corollary indicates that any even-grade 0-free element $S$ that generates a nonzero transform of $\mathbb{R}^3$ can be normalized. This means it can be replaced by a pseudoscalar multiple of itself that generates the same transform and for which $\bar{S}S = 1$.

**Theorem 3.8.** Suppose that $S \in \mathcal{G}^{(4,1)}$ is an even-grade 0-free element that induces a nonzero transform $F_S$. Then, as a map of $\mathbb{R}^3$ to itself, $F_S$ is a rigid-body transform.

**Proof.** Lemmas 3.3 and 3.4 show that $\bar{S}S = a^2$ for some pseudoscalar $a$ that has a multiplicative inverse. Clearly, $S = a(a^{-1}S)$ and $a$ generates the identity transform of $\mathbb{R}^3$ by lemma 3.6. By lemma 3.5, it is sufficient to consider $a^{-1}S$, and hence it is sufficient to prove the lemma in the case when $\bar{S}S = 1$.

Consider three points $O, A, B$ in $\mathbb{R}^3$ where $O$ is the origin. These correspond to vectors $e_0, e_0 + a, e_0 + b$ in $\mathcal{G}^{(4,1)}$, where $a$ and $b$ are $0\infty$-free.

For convenience use a dash to denote the image under $F_S$. Then $a' = \bar{S}aS$ has odd grade and equals its own reverse. So, by lemma 2.2, $a'$ is a vector that is 0-free. This is true also of $b'$. Then lemma 2.1 shows that

$$ 
\begin{aligned}
\mathbf{a}' \cdot \mathbf{b}' &= (\bar{S}aS) \cdot (\bar{S}bS) \\
&= \frac{1}{2} (\bar{S}aS\bar{S}bS + \bar{S}bS\bar{S}aS) \\
&= \frac{1}{2} \bar{S}(ab + ba)S \\
&= \bar{S}(a \cdot b)S \\
&= a \cdot b \\
&= \mathbf{a} \cdot \mathbf{b}
\end{aligned}
$$

since $a \cdot b$ is a real number and so commutes with $S$.
In the above, replacing **b** by **a** shows that the length $|O'A'|$ is the same as $|OA|$; and similarly $|O'B'| = |OB|$. Then the above equations show also that angle $\angle A'O'B'$ is the same as $\angle AOB$. Hence the transform preserves lengths and angles as required. $\square$

Attention now turns to forming specific rigid-body transformations of $\mathbb{R}^3$, starting with a rotation about an axis through the origin.

Suppose that $\mathbf{a} = (a_1, a_2, a_3) \in \mathbb{R}^3$ is a unit vector that, together with the origin, defines a line. This line is to be the axis of a rotation. Then $\mathbf{a} = a_1\mathbf{e}_1 + a_2\mathbf{e}_2 + a_3\mathbf{e}_3$ is the corresponding unit vector in $\mathcal{G}^{(4,1)}$. Set $\mathbf{b} = \mathbf{a}\hat{\omega}$ where $\hat{\omega} = e_{123}$, and $\hat{\omega}^2 = -1$. Then $\mathbf{b}$ is a unit bivector (that is $\bar{\mathbf{b}}\mathbf{b} = 1$) that also represents the axis. For an angle $\theta$, set $c = \cos\frac{1}{2}\theta$ and $s = \sin\frac{1}{2}\theta$, and define an even-grade element $R$ as follows

$$R = c + sb$$

Consider the action of $F_R$ on the vector $v = e_0 + p$ where $p$ is a linear combination of $e_1, e_2, e_3$,

$$ \begin{aligned} \bar{R}vR &= (c - sa\hat{\omega})(e_0 + p)(c + sa\hat{\omega}) \\ &= e_0 + c^2p + s^2apa + 2cs(p \wedge a)\hat{\omega} \\ &= e_0 + (c^2 - s^2)p + 2s^2(p \cdot a)a + 2cs(p \wedge a)\hat{\omega} \end{aligned} $$

Suppose $p = \gamma a$ for a real number $\gamma$. Then $p \cdot a = \gamma$ and $p \wedge a = 0$ so that

$$\bar{R}(e_0 + \gamma a)R = e_0 + (c^2 - s^2)\gamma a + 2s^2\gamma a = e_0 + \gamma a$$

Hence, $F_R$ fixes each point on the axis.

Now take $p$ to be a unit vector perpendicular to $\mathbf{a}$. This corresponds to a vector $\mathbf{p}$ in $\mathbb{R}^3$. Define $\mathbf{q} = \mathbf{a} \times \mathbf{p}$ which is another unit vector perpendicular to $\mathbf{a}$. Then $\mathbf{p}$ and $\mathbf{q}$ together define a plane normal to the axis. Lemma 2.1 shows that

$$\mathbf{q} = \mathbf{a} \times \mathbf{p} = -(a \wedge p)\hat{\omega} = (p \wedge a)\hat{\omega} = q$$

where $q \in \mathcal{G}^{(4,1)}$ corresponds to $\mathbf{q}$.

So the action of $F_R$ on $e_0 + p$ is

$$ \begin{aligned} \bar{R}(e_0 + p)R &= e_0 + (c^2 - s^2)p + 2cs(p \wedge a)\hat{\omega} \\ &= e_0 + (\cos\theta)p + (\sin\theta)q \end{aligned} $$

and this projects to $(\cos\theta)\mathbf{p} + (\sin\theta)\mathbf{q}$ in $\mathbb{R}^3$. Hence, $F_R$ acts on $\mathbb{R}^3$ to move $\mathbf{p}$ in a plane normal to the axis and rotating it through angle $\theta$ about that axis. This proves the following result.

**Lemma 3.9.** Suppose that $a \in \mathcal{G}^{(4,1)}$ is a unit vector that is a linear combination of $e_1, e_2, e_3$. Set $b = a\hat{\omega}$ which is a unit bivector. For angle, $\theta$ set

$$R = \left(\cos\frac{1}{2}\theta\right) + \left(\sin\frac{1}{2}\theta\right)b$$

so that $R$ is an even-grade 0-free element. Then the transform $F_R$ is a rotation through angle $\theta$ about an axis lying along the line (in the direction of $\mathbf{a}$) joining the origin $e_0$ and the point $e_0 + \mathbf{a}$.

Consideration is now given to generating a rigid-body motion that is a translation. Suppose that $t \in \mathcal{G}^{(4,1)}$ is a vector that is a combination of basis vectors $e_1, e_2, e_3$. Define the following even-grade element.

$$T = 1 + \frac{1}{2}te_{\infty}$$

The action of $F_T$ on the vector $e_0 + p$ where $p$ is a linear combination of $e_1, e_2, e_3$ is the following

$$ \begin{aligned} \bar{T}(e_0 + p)T &= \left(1 - \frac{1}{2}te_{\infty}\right)(e_0 + p)\left(1 + \frac{1}{2}te_{\infty}\right) \\ &= e_0 + p + t + [t^2 + (p \cdot t)]e_{\infty} \end{aligned} $$

When the projection map $P$ is applied, the $e_\infty$ term is removed and it is seen that the effect, in $\mathbb{R}P^3$, is to add $t$ to the original vector. This proves the following result.

**Lemma 3.10.** Suppose that $t \in \mathcal{G}^{(4,1)}$ is a vector that is a linear combination of $e_1, e_2, e_3$. Then the even-grade 0-free element

$$T = 1 + \frac{1}{2}te_{\infty}$$

has the property that $\bar{T}T = 1$ and it generates a transformation $F_T$ that acts as a translation along vector $t$.

Transformations can be combined. As an example consider the construction of an even-grade element $R$ to represent a rotation about an axis through an arbitrary point. Suppose this point is $e_0 + q$ and that the direction of the axis is given by the unit vector $\mathbf{a}$, where both $q$ and $\mathbf{a}$ are combinations of $e_1, e_2, e_3$. The required rotation can be obtained by translating the axis to the origin, performing the rotation about an axis through the origin, and then translating back. Hence, the following even-grade element can be used for $R$ where, as before, $b = a\hat{\omega}$

$$ \begin{aligned} R &= \left(1 - \frac{1}{2}qe_{\infty}\right)(c + sb)\left(1 + \frac{1}{2}qe_{\infty}\right) \\ &= \left(1 - \frac{1}{2}qe_{\infty}\right)\left(c + \frac{1}{2}cqe_{\infty} + sb + \frac{1}{2}sbqe_{\infty}\right) \\ &= c + \frac{1}{2}cqe_{\infty} + sb + \frac{1}{2}sbqe_{\infty} - \frac{1}{2}cqe_{\infty} \\ &\quad - \frac{1}{4}cqe_{\infty}qe_{\infty} - \frac{1}{2}sqe_{\infty}b - \frac{1}{4}sqe_{\infty}bqe_{\infty} \\ &= c + sb + \frac{1}{2}sbqe_{\infty} - \frac{1}{2}sqe_{\infty}b \\ &= c + sb + \frac{1}{2}sbqe_{\infty} - \frac{1}{2}sqbe_{\infty} \\ &= c + s[b + (b \wedge q)e_{\infty}] \end{aligned} $$
**Lemma 3.11.** Suppose that $a, q \in \mathcal{G}^{(4,1)}$ are vectors that are linear combinations of $e_1, e_2, e_3$, with a being a unit vector. Set $b = a\hat{\omega}$ which is a unit bivector. For angle, $\theta$, set

$$R = \left(\cos\frac{1}{2}\theta\right) + \left(\sin\frac{1}{2}\theta\right)[b + (b \wedge q)e_{\infty}]$$

so that $R$ is an even-grade 0-free element. Then $\bar{R}R = 1$ and the transform $F_R$ is a rotation through angle $\theta$ about an axis in the direction of a passing through the point $e_0 + q$.

Finally in this section, null vectors are considered. The even-grade elements in the last three results are all normalized. Corollary 3.7 shows that any even-grade element $S$ (for which $F_S$ is not trivial) can be normalized by multiplying by a pseudoscalar so that $\bar{S}S = 1$. Lemmas 3.5 and 3.6 show that $F_S$ is unaffected by this normalization. If $S$ is normalized, then the following result shows that $F_S$ maps null vectors to null vectors.

**Lemma 3.12.** Suppose $S \in \mathcal{G}^{(4,1)}$ is an even-grade 0-free element, and $\bar{S}S = 1$. Then $F_S$ maps null vectors (in $\mathbb{R}P^3$ regarded as a subspace of $\mathcal{G}^{(4,1)}$) to null vectors.

**Proof.** Suppose $v \in \mathcal{G}^{(4,1)}$ is a null vector, so that $v^2 = 0$. By lemma 3.3, $\bar{S}S$ is unity and so

$$(\bar{S}vS)^2 = \bar{S}v\bar{S}S = \bar{S}vvS = 0$$

<figure><img src="image_2.png" /></figure>

As noted at the end of section “Conformal geometric algebra”, when $p$ is a point in $\mathbb{R}^3$ one way$^{11,18}$ to define $F_S(p)$ is as $P(\bar{S}qS)$ where $q \in \mathcal{G}^{(4,1)}$ is a null vector corresponding to $p$. Lemma 2.3 shows that such a vector $q$ exists and is unique, and lemma 3.12 shows that in $\mathcal{G}^{(4,1)}$, $\bar{S}qS$ is also null.

However, this is not necessary. If $p$ is regarded as being an element of $\mathcal{G}^{(4,1)}$, $F_S(p)$ can be defined to be $P(\bar{S}pS)$ or as $P(\bar{S}p'S)$ where $p'$ is any finite vector equivalent to $p$. Lemma 3.2 confirms that this is well defined. The approach used here does not require $\bar{S}pS$ to be a vector (null or otherwise). In general, it is an element of odd grade and only becomes a vector when the projection $P$ is used. This is the key point since it means that there is no need to assume that the element $S$ is normalized.

## Additive motions

Suppose that $S_0, S_1 \in \mathcal{G}^{(4,1)}$ are two even-grade 0-free elements. Then for any values of real parameter $t$, the combination

$$S(t) = (1 - t)S_0 + tS_1 \qquad (5)$$

is another such element. Hence, by theorem 3.8, it induces a rigid-body transform (assuming this is non-zero). Further, since $S(0) = S_0$ and $S(1) = S_1$, as $t$

varies between 0 and 1, $S(t)$ generates an additive motion between the poses $S_0$ and $S_1$. This is called a linear Bézier motion.

Figure 1 shows an example of the additive motion achieved for $0 \le t \le 1$ with

$$S_0 = \left[ \left( \cos \frac{\pi}{6} \right) + \left( \sin \frac{\pi}{6} \right) e_{12} \right] \left[ 1 + 4e_{1\infty} \right] \\ \approx 0.866 + 0.500e_{12} + 3.464e_{1\infty} - 2.000e_{2\infty}$$

$$S_1 = \left[ \left( \cos \frac{\pi}{3} \right) - \left( \sin \frac{\pi}{3} \right) e_{23} \right] \left[ 1 + 3e_{2\infty} \right] \\ \approx 0.500 - 0.866e_{23} + 1.500e_{2\infty} + 2.598e_{3\infty}$$

These even-grade elements are chosen merely for the purposes of the example: $S_0$ represents a rotation through angle $\pi/3$ about the $z$-axis followed by a translation through distance 8 in the $x$-direction; and $S_1$ represents a rotation through angle $2\pi/3$ about the $x$-axis followed by a translation through distance 6 in the $y$-direction.

**Lemma 4.1.** The linear motion $S(t) = (1 - t)S_0 + tS_1$ is one in which any point traces out a path lying on the curved surface of a circular cylinder.

**Proof.** Let $p$ be a vector representing a point in $\mathbb{R}^3$. Its image under the motion transform is

$$q(t) = \overline{S(t)}pS(t) = (1 - t)^2 \overline{S_0}pS_0 \\ + 2(1 - t)t \left[ \frac{1}{2} (\overline{S_0}pS_1 + \overline{S_1}pS_0) \right] + t^2 \overline{S_1}pS_1 \\ = \overline{S}_0 \left\{ (1 - t)^2 p + 2(1 - t)t \left[ \frac{1}{2} (pU + \bar{U}p) \right] + t^2 \bar{U}pU \right\} S_0$$

where $U = S_1\overline{S}_0$. So the path is the transform using $S_0$ of the path produced by the motion $(1 - t) + tU$. So it is sufficient to prove the result in the case when $S_0 = 1$ and $S_1 = U$.

By lemmas 3.3 and 3.4, $\overline{U}U = \lambda^2$ where $\lambda$ is a pseudoscalar. By Chasles's theorem,$^{20}$ the transform generated by $U$ is the product (in either order) of a rotation $R$ about an axis and a translation $T$ in the direction of that axis. By lemmas 3.10 and 3.11, it can be assumed that $\bar{R}R = 1 = \bar{T}T$, so that $U = \lambda RT = \lambda TR$.

<figure><img src="image_3.png" /><figcaption>**Figure 1.** Linear additive motion between two poses.</figcaption></figure>
If the point $p$ lies on the axis, then it is fixed by the rotation $R$ so that $\bar{R}pR = p$ and $pR = \bar{R}p$ and $R$ and $p$ commute. Since $R$ also commutes with $\lambda$ and $T$, $R$ commutes with $S(t) = (1-t)+tU$. Hence, $R$ commutes with $p' = \bar{S}p\bar{S}$ so that the point $p'$ also lies on the axis. So the transform generated by $S(t)$ maps the axis to itself. Since this is a rigid-body transform, this means that the image $q(t)$ of the general point $p$ is the same distance from the axis as $p$. Hence, $p$ and $q(t)$ lie on the same cylinder whose axis is that of the rotation $R$. $\square$

**Lemma 4.2.** *The linear motion $S(t) = (1-t)S_0 + tS_1$ is one in which any point $q$ traces out a Bézier quadratic curve whose control points are*

$$P(\overline{S_0qS_0}), \quad P\left(\frac{1}{2}[\overline{S_0qS_1} + \overline{S_1qS_0}]\right), \quad P(\overline{S_1qS_1})$$

**Proof.** Since

$$\bar{S}qS = (1-t)^2\bar{S}_0qS_0 + 2t(1-t)\left[\frac{1}{2}(\bar{S}_0qS_1 + \bar{S}_1qS_0)\right] + t^2\bar{S}_1qS_1$$

the result follows by taking the projection of both sides. $\square$

A Bézier quadratic curve is necessarily planar since it lies within the plane defined by its three control points. Hence, the last two results show that the path of a point under a linear motion is part of a

planar slice through a circular cylinder. Hence, the path is elliptical and not a true helix.

Figure 2 shows an example based on the linear motion joining the two poses

$$S_0 = 1 + 5e_{1\infty} + e_{3\infty} \\ S_1 = \left[ \left( \cos \frac{1}{2} \alpha \right) + \left( \sin \frac{1}{2} \alpha \right) e_{12} \right] \times [1 + 5(\cos \alpha)e_{1\infty} + 5(\sin \alpha)e_{2\infty} + 11e_{3\infty}]$$

where $\alpha = 5\pi/6$. The figure shows the curve generated as the origin $e_0$ moves under the linear motion. This is the intersection of a plane and a circular cylinder. The view on the right of the figure is looking towards the edge of the plane. Also shown is the nonplanar curve that is the true helix joining the ends of the planar curve.

Equation (5) can be regarded as a Bézier combination.²¹ This extends to a more general Bézier construction defined using $n+1$ even-grade elements $S_i$, $0 \le i \le n$. These are called control poses and the Bézier combination is given by the following

$$S(t) = \sum_{i=0}^{n} \binom{n}{i} (1-t)^{n-i} t^i S_i \quad 0 \le t \le 1$$

This is referred to as a motion of degree $n$. Note, however, that if $p$ is a point (within the body being moved), then the path it traces out is given by $\overline{S}(t)pS(t)$ which is a rational Bézier curve of degree $2n$.

<figure><img src="image_4.png" /><figcaption>**Figure 2.** Planar curve and true helix around outside of a circular cylinder.</figcaption></figure>
More general is the extension to a B-spline motion of the form

$$S(t) = \sum_{i=0}^{n} N_{i,d}(t)S_i$$

where $N_{i,d}(t)$ are the appropriate B-spline basis functions (of degree $d$) for the sequence of knots used.²²

As an example, the Bézier additive motion of degree 2 with control poses

$$\begin{align*} S_0 &= 1 \\ S_1 &= 1 + \frac{1}{2}(e_{12} + e_{13} + e_{2\infty} + e_{3\infty}) \\ S_2 &= 1 + e_{12} + e_{13} + e_{23} + e_{2\infty} + e_{3\infty} \end{align*}$$

is shown in Figure 3. Here the parameter $t$ passes through all the real numbers. The portion of the motion between $t=0$ and $t=1$ is that between the origin and the north pole of the sphere shown. The locus of the point $e_0$ is the Viviani curve:²³ this motion can also be generated using dual quaternions.²⁴

As with curves, the de Casteljau algorithm²⁵ can be used to construct a Bézier motion by repeatedly taking linear combinations of poses. As an example, suppose that the four control poses for a Bézier cubic motion are labeled $S(0, 0, 0)$, $S(0, 0, 1)$, $S(0, 1, 1)$, and $S(1, 1, 1)$, using a version of the notation associated

with blossoming²¹,²⁵⁻²⁷ discussed further below. Other poses are generated as in the following tableau

$$\begin{array}{ccc} S(0, 0, 0) & & \\ S(0, 0, 1) & S(0, 0, t) & S(0, t, t) \\ S(0, 1, 1) & S(0, t, 1) & S(t, t, t) \\ S(1, 1, 1) & S(t, 1, 1) & S(t, t, 1) \\ & S(1, 1, 1) & \end{array}$$

For a given value of the parameter $t$, each new entry $C$ in the tableau is the combination $(1-t)A + tB$ of the two entries $A$ and $B$ to its left, with $A$ being the higher. This is a combination of the form of equation (5). So as $t$ varies, each $C$ traces out a motion between its $A$ and $B$ in which the paths of points lie on circular cylinders (lemma 4.1). The right hand entry $S(t, t, t)$ is regarded as simply a function $S(t)$ of the parameter $t$: it is the even-grade element for the typical instance of a pose in the motion.

Figure 4 shows an example of a Bézier cubic additive motion. For convenience this is a motion in a plane. The control poses are the following

$$S(0, 0, 0) = 1 + \frac{1}{2}(e_{1\infty} + e_{2\infty})$$

<figure><img src="image_5.png" /><figcaption>**Figure 3.** Quadratic additive Bézier motion based on the Viviani curve.</figcaption></figure>
$$ S(0, 0, 1) = \left[ \cos\left(\frac{\pi}{12}\right) - \sin\left(\frac{\pi}{12}\right)e_{12} \right] \left[ 1 + \frac{1}{2}(2e_{1\infty} + 6e_{2\infty}) \right] \\ \approx 0.9659 - 0.2588e_{12} + 0.1895e_{1\infty} + 3.1566e_{2\infty} $$

$$ S(0, 1, 1) = \left[ \cos\left(\frac{\pi}{4}\right) - \sin\left(\frac{\pi}{4}\right)e_{12} \right] \left[ 1 + \frac{1}{2}(5e_{1\infty} + 6e_{2\infty}) \right] \\ \approx 0.7071 - 0.7071e_{12} - 0.3536e_{1\infty} + 3.8891e_{2\infty} $$

<figure><img src="image_6.png" /><figcaption>Figure 4. Cubic additive Bézier motion with de Casteljau construction for $t=0.4$.</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>Figure 5. Quadratic additive B-spline motion.</figcaption></figure>
$$
\begin{aligned}
S(1, 1, 1) &= \left[ \cos\left(\frac{\pi}{4}\right) - \sin\left(\frac{\pi}{4}\right) e_{12} \right] \left[ 1 + \frac{1}{2}(8e_{1\infty} + 2e_{2\infty}) \right] \\
&\approx 0.7071 - 0.7071e_{12} + 2.1213e_{1\infty} + 3.5356e_{2\infty}
\end{aligned}
$$

On the left of Figure 4 the four control poses are indicated together with poses during the motion and the curve traced out by the origin $e_0$. On the right is shown the de Casteljau construction for $t=0.4$. The paths (corresponding to the origin) between pairs of poses are circular arcs since the motion is planar; the motion between $S(0, 1, 1)$ and $S(1, 1, 1)$ is a straight line (an arc with infinite radius) since these poses have the same rotation.

The notation of the blossoming approach<sup>21,25,26</sup> allows the de Casteljau algorithm for recursively construction of a B-spline motion to be presented in an elegant way. A nondecreasing sequence of real values called knots is required: $t_0 \le t_1 \le \dots \le t_m$. If the degree of the motion is $d$, then $n$ control poses are required where $n = m - d + 1$. This means that the control poses can be labelled by the $d$-tuples of consecutive knots; thus the typical control poses is $S(t_i, t_{i+1}, \dots, t_{i+d-1})$ for $0 \le i \le n$.

For any nontrivial interval between two consecutive knots, a pose $S(t)$ is defined to be $S(t, t, \dots, t)$ where this expression with $d$ arguments is obtained recursively using the following relation.

$$
S(t_{i-r+1}, \dots, t_i, t, \dots, t, t_{i+1}, \dots, t_{i+s}) = \frac{\left[ (t_{i+s+1} - t)S(t_{i-r}, \dots, t_i, t, \dots, t, t_{i+1}, \dots, t_{i+s}) + (t - t_{i-1})S(t_{i-r+1}, \dots, t_i, t, \dots, t, t_{i+1}, \dots, t_{i+s+1}) \right]}{t_{i+s+1} - t_{i-1}}
$$

In the term on the left side, the argument $t$ appears $d-r-s$ times, and in each of the terms on the right, it appears $d-r-s-1$ times.

Figure 5 shows an example of a B-spline quadratic additive motion for which the control poses are no longer in a plane. The sequence of knots used is

$0, 0, 1, 2, 3, 4, 4$

For convenience in specifying the control poses, define the following elements of $G^{(4,1)}$

$$
R_x(\alpha) = \left(\cos \frac{1}{2} \alpha\right) + \left(\sin \frac{1}{2} \alpha\right) e_{23}
$$

$$
R_y(\alpha) = \left(\cos \frac{1}{2} \alpha\right) + \left(\sin \frac{1}{2} \alpha\right) e_{31}
$$

$$
R_z(\alpha) = \left(\cos \frac{1}{2} \alpha\right) + \left(\sin \frac{1}{2} \alpha\right) e_{12}
$$

$$
T(p, q, r) = 1 + \frac{1}{2}(pe_1 + qe_2 + re_3)e_{\infty}
$$

which are the even-grade elements generating, respectively, rotations through angle $\alpha$ about the $x$-, $y$-, and $z$-axes, and a translation along the vector $(p, q, r)$.

The control poses for the motion in Figure 4 are the following and they are shown with thicker lines in the figure.

$$
S(0, 0) = T(1, 1, 0) \approx 1.000 + 0.500e_{1\infty} + 0.500e_{2\infty}
$$

$$
\begin{aligned}
S(0, 1) &= R_z\left(\frac{\pi}{6}\right) T(6, 1, 0) \\
&\approx 0.966 + 0.259e_{12} + 3.027e_{1\infty} - 0.293e_{2\infty}
\end{aligned}
$$

$$
\begin{aligned}
S(1, 2) &= R_z\left(\frac{\pi}{2}\right) T(8, 4, 2) \\
&\approx 0.707 + 0.707e_{12} + 4.243e_{1\infty} - 1.414e_{2\infty} \\
&\phantom{\approx} + 0.707e_{3\infty} + 0.707e_{123\infty}
\end{aligned}
$$

$$
\begin{aligned}
S(2, 3) &= R_z\left(\frac{\pi}{2}\right) R_x\left(\frac{\pi}{4}\right) T(8, 6, 4) \\
&\approx 0.653 + 0.653e_{12} + 0.271e_{13} + 0.271e_{23} \\
&\phantom{\approx} + 5.114e_{1\infty} - 0.112e_{2\infty} - 0.588e_{3\infty} + 1.577e_{123\infty}
\end{aligned}
$$

$$
\begin{aligned}
S(3, 4) &= R_z\left(\frac{\pi}{2}\right) R_y\left(\frac{\pi}{3}\right) T(4, 6, 6) \\
&\approx 0.612 + 0.612e_{12} - 0.354e_{13} + 0.354e_{23} \\
&\phantom{\approx} + 2.001e_{1\infty} + 1.673e_{2\infty} + 1.484e_{3\infty} + 3.605e_{123\infty}
\end{aligned}
$$

$$
\begin{aligned}
S(4, 4) &= R_z\left(\frac{\pi}{2}\right) R_y\left(\frac{\pi}{2}\right) T(1, 6, 2) \\
&\approx 0.500 + 0.500e_{12} - 0.500e_{13} + 0.500e_{23} \\
&\phantom{\approx} + 1.250e_{1\infty} + 1.750e_{2\infty} - 0.750e_{3\infty} + 2.250e_{123\infty}
\end{aligned}
$$

## Conclusions

Geometric algebra provides a framework within which models of Euclidean three-dimensional space and projective four-dimensional space exist. Bivectors and more general even-grade elements can be used to model rigid-body transforms. These are applied to the points used to define an object to create a transform of that object. In this way, these even-grade elements and the transforms they generate represent poses of the object. The fact that the even-grade elements have a common form means that both rotations and translations are handled in the same way.

The de Casteljau algorithm, which was introduced to construct B-spline curves from prescribed control points, can be used to generate free-form motions from prescribed control poses. This requires the ability to form pairwise combinations of poses. In the CGA formulation such combinations can be made multiplicatively (as in the slerp construction). When normalized even-grade elements are used the transforms they generate map null vectors to null vectors. Multiplication of even-grade elements preserves normalization, but this is not the case with addition.

It has been shown how the underlying ideas can be modified to allow additive combinations. In particular, Euclidean three-dimensional space can be embedded into the CGA without insisting that the image is a null vector, although there is always a null vector to
which it is equivalent in the sense that it has the same
projection back to Euclidean space. This means that
the additive approach is indeed well defined.

Motions between two given poses using the addi-
tive and multiplicative approaches are different. In
both cases, the typical point in the moving object
travels around the curved surface of a circular cylin-
der. In the additive case, the motion curve is the inter-
section of a plane with the cylinder; in the
multiplicative case, the curve is a true helix. These
curves are close unless the angle between the given
poses is large. This is true more generally. The free-
form motions produced from a given set of control
poses using the additive and multiplicative
approaches are similar. The additive approach has
the advantage of avoiding the computational expense
of finding exponentials and logarithms to deal with
noninteger exponents.

Declaration of Conflicting Interests

The author(s) declared no potential conflicts of interest with
respect to the research, authorship, and/or publication of
this article.

Funding

The author(s) disclosed receipt of the following financial
support for the research, authorship, and/or publication
of this article: The authors gratefully acknowledge the sup-
port of the Engineering and Physical Sciences Research
Council (EPSRC) in funding a project entitled "Algebraic
modelling of 5-axis tool path motions" (ref: EP/L006316/1
and EP/L010321/1).

References

1. Bayro-Corrochano E and Falcon LE. Geometric algebra of points, lines, planes and spheres for computer vision and robotics. *Robotica* 2005; 23: 755–770.

2. Dell'Acqua A, Sarti A and Turbaro S. 3D motion from structures of points, lines and planes. *Image Vision Comput* 2008; 26: 529–549.

3. Wareham R and Lasenby J. Mesh vertex pose and position interpolation using geometric algebra. In: Perales FJ and Fisher RB (eds) *Articulated motion and deformable objects*. Lecture Notes in Computer Science. Berlin: Springer-Verlag, 2008, pp.122–131.

4. Scott WRP and Straus SK. Determining and visualizing flexibility in protein structures. *Proteins – Struct Funct Bioinform* 2015; 83: 820–826.

5. Lu G, Yu Z and Zhou L. Data environment construction for virtual geographic environment. *EnvironEarth Sci* 2015; 74: 7003–7013.

6. Leclercq G, Lefèvre P and Blohm G. 3D kinematics using dual quaternions: Theory and applications in neuroscience. *Front Behav Neurosci* 2013; 7: 1–25.

7. Kim JS, Jeong JH and Park JH. Inverse kinematics and geometric singularity analysis of a 3-SPS/S redundant motion mechanism using conformal geometric algebra. *Mech Mach Theory* 2015; 90: 23–36.

8. Kim JS, Jeong YH and Park JH. A geometric approach for forward kinematics analysis of a 3-SPS/S redundant motion manipulator with an extra sensor using conformal geometric algebra. *Meccanica* 2016; 51: 2289–2304.

9. Lee C-C. Applications of the 4d geometric algebra to dimensional mobility criteria of Delassus-parallelogram and Bennett paradoxical linkages. In: *Proceedings of ASME international design engineering technical conferences and computers and information in engineering conference*, vol. 5C, Boston, August 2015, pp.46667:1–8.

10. Li Q, Chai X and Xiang J. Mobility analysis of limited-degrees-of-freedom parallel mechanisms in the framework of geometric algebra. *Trans ASME: J Mech Robot* 2016; 8: 041005:1–9.

11. Fu Z, Yang W and Yang Z. Solution of inverse kinematics for 6R robot manipulators with offset wrist based on geometric algebra. *Trans ASME: J Mech Robot* 2013; 5: 031010:1–7.

12. Bayro-Corrochano E and Zamora-Esquivel J. Differential and inverse kinematics of robot devices using conformal geometric algebra. *Robotica* 2007; 25: 43–61.

13. Berman S, Liebermann DG and Flash T. Application of motor algebra to the analysis of human arm movements. *Robotica* 2008; 26: 435–451.

14. Shoemake K. "animating rotation with quaternion curves". *ACM SIGGRAPH* 1985; 19: 245–254.

15. González Calvet R. *Treatise of plane geometry through geometric algebra*, TIMSAC, Cerdanyola del Vallés, 2007.

16. Vince J. *Geometric algebra for computer graphics*. London: Springer, 2008.

17. Macdonald A. *Linear and geometric algebra*. Decorah, IA: Luther College, 2010.

18. Cibura C and Dorst L. Determining conformal transformations in $\mathbb{R}^n$ from minimal correspondence data. *Math Meth Appl Sci* 2011; 34: 2031–2046.

19. Mullineux G and Simpson LC. Rigid-body transforms using symbolic infinitesimals. In: L Dorst and J Lasenby (eds) *Guide to geometric algebra in practice*. London: Springer, 2011, pp.353–369.

20. Bottema O and Roth B. *Theoretical kinematics*. New York: Dover Publications, 1979.

21. Farin G. *Curves and surfaces for CAGD: A practical guide*. 5th ed. San Francisco, CA: Morgan Kaufmann, 2002.

22. Piegl L and Tiller W. *The NURBS book*. 2nd ed. Berlin: Springer-Verlag, 1997.

23. Peternell M, Gruber D and Sendra J. Conchoid surfaces of spheres. *Comput Aided Geom Des* 2013; 30: 35–44.

24. Li Z, Schicho J and Schröcker H-P. The rational motion of minimal dual quaternion degree with prescribed trajectory. *Comput Aided Geom Des* 2016; 4: 1–9.

25. Boehm W and Müller A. On de Casteljau's algorithm. *Comput Aided Geom Des* 1999; 16: 587–605.

26. Seidel H-P. A new multiaffine approach to B-splines. *Comput Aided Geom Des* 1989; 6: 23–32.

27. Mullineux G. B-splines formulated using circular sequences. *Comput Ind* 1991; 16: 13–17.