User:Jheald/sandbox/GA/Conformal geometric algebra

In mathematics, more specifically in the area of computational geometry, conformal geometric algebra (CGA) is the geometric algebra (real Clifford algebra) that results if an n-dimensional Euclidean (or pseudo-Euclidean) space ℝp,q is projectively mapped into ℝp+1,q+1 in a particular way, and a geometric algebra is then constructed over that (n+2)-dimensional space. This allows operations on the n-dimensional space, including rotations, translations and reflections to be represented using elements of the geometric algebra; and it is found that points, lines, planes, circles and spheres gain particularly natural and computationally amenable representations.

The projective mapping from ℝp,q to ℝp+1,q+1 is constructed so that the higher-dimensional space contains the full projective space of the underlying original space, so that generalized (i.e. including zero curvature) k-spheres in the underlying space map onto (k+2)-blades, and so that the effect of a translation (or any conformal mapping) of the underlying space corresponds to a rotation in the higher dimensional space.

In the algebra of this space, based on the geometric product of vectors, such transformations correspond to the algebra's characteristic sandwich operations, similar to the use of quaternions for spatial rotation in 3D, which combine very efficiently using the nested sandwiching rule. A consequence of the sandwich transformation structure is that the representations of spheres, planes, circles and other geometrical objects, and equations connecting them, all transform covariantly. Some intersection operations also acquire a very tidy algebraic form: for example, applying the wedge product to the dual of the tetravectors representating two spheres produces the dual of the trivector representation of their circle of intersection. A geometric object (a k-sphere) can be synthesized as the wedge product of k vectors representing points on the object; conversely, the object can be decomposed as the repeated wedge product of vectors representing k+2 points in its surface.

This algebraic structure, which lends itself directly to effective computation, gives a good environment to explore the classical methods of projective geometry and inversive geometry in a concrete, easy-to-manipulate setting. It has also been used as an efficient structure to represent and facilitate calculations in screw theory. CGA has particularly been applied in connection with the projective mapping of the everyday Euclidean space ℝ3 into a five-dimensional space ℝ4,1, which has been investigated for applications in robotics and computer vision; but it can be applied generally to any Euclidean or pseudo-Euclidean space, and the mapping of Minkowski space ℝ3,1 to the space ℝ4,2 is being investigated for applications to relativistic physics.

Notation
Boldface lowercase Latin letters are used to represent vectors from the origin to a point in the base space. Italic symbols are used for other elements of the conformal space.

Base and conformal spaces
The base space $$\mathcal{G}(p,q)$$ is extended by adding two basis vectors $e_{+}$ and $e_{−}$ orthogonal to the existing dimensions and to each other, with $e_{+}^{2} = +1$ and $e_{−}^{2} = −1$, creating the conformal space $$\mathcal{G}(p+1,q+1)$$.

Two vectors are chosen for further use: the point at the origin $n_{o} = (e_{−} + e_{+})/2$, and the point at infinity $n_{∞} = e_{−} − e_{+}$. The choice of the origin is arbitrary: any other point may be chosen, as the representation is of an affine space. The origin merely represents a reference point, and is algebraically equivalent to any other point. Changing the origin corresponds to a rotation in the conformal space.

Identities for later use are:
 * $$\, {n_o}^2 = {n_\infty}^2 = 0 $$
 * $$\, n_o \cdot n_\infty = -1 $$
 * $$\, n_\infty \cdot \mathbf{x} = 0 $$

Mapping between the base space and the conformal space
The mapping from a vector in the base space (being from the origin to a point in the affine space represented) is mapped into the conformal space by the formula


 * $$\, F : \mathbf{x} \mapsto n_o + \mathbf{x} + \tfrac{1}{2} \mathbf{x}^2 n_\infty $$

Points and other objects that differ only by a nonzero scalar factor all map to the same object in the base space. When normalisation is desired, as for generating a simple reverse map of a point from the conformal space to the base space or determining distances, the condition $F(x) ⋅ n_{∞} = −1$ may be used.



The forward mapping is equivalent to:
 * first conformally projecting x from e123 onto a unit 3-sphere in the space e+∧e123.
 * (In 5-D this is in the sub-space $$\mathbf{e}_\infty - \mathbf{e}_0 =0$$);
 * then lift this into a projective space, by adjoining e- = 1, and identifying all points on the same ray from the origin
 * (In 5-D this is in the sub-space $$\mathbf{e}_\infty - \mathbf{e}_0 =1$$);
 * then change the normalisation, so the plane for the homogenous projection is given by e0 = 1.

Inverse mapping
An inverse mapping for X on the null cone is given (Perwass eqn 4.37) by
 * $$\mathbf{X} \mapsto \mathcal{P}^\perp_{\mathbf{e}_\infty \wedge \mathbf{e}_o}\left( \frac{\mathbf{X}}{- \mathbf{X}\cdot \mathbf{e}_\infty}\right)$$

This first gives a stereographic projection from the light-cone onto the plane e∞ = +1; then throws away the e0 and e∞ parts.
 * Is this really true? 
 * Remember e∞e∞ = e0e0 = 0; but e0e∞ = ½ (e-2 - e+2 + 2 e+e-) = 1 + e+e-
 * so e0.e∞ = -1; e0 ∧e∞ = e-e+.
 * The denominator is therefore a cunning way to give the coefficient of e0, given that e0.e0 = 0 always.
 * So we first scale the numerator so that the coefficient of e0 is one, then throw away the terms in e0 and e∞

Geometrical objects

 * Points in e123 map onto the null cone -- the null parabola if we set e0 = 1.


 * We can consider the locus of points in e123 s.t. in conformal space g(x) ∧ A = 0 or g(x) . A = 0, for various types of geometrical object A.


 * We start by observing that $$g(\mathbf{a}) . g(\mathbf{b}) = -\frac{1}{2} \| \mathbf{a} - \mathbf{b} \|^2 $$

compare:
 * x. a = 0 => x perp a; x.(a∧b) = 0 => x perp a and x perp b
 * x∧a = 0 => x parallel to a; x^(a^b) = 0 => x parallel to a or to b (or to some linear combination)

the inner product and outer product representations are related by dualisation
 * x∧A = 0 <=> x . A* = 0   (check -- works if x is 1-dim, A is n-1 dim)

g(x) . A = 0

 * A point: the locus of x in R3 is a point if A in R4,1 is a vector on the null cone.
 * (nb that because it's a homogeneous projective space, vectors of any length on a ray through the origin are equivalent, so g(x).A =0 is equivalent to g(x).g(a) = 0).
 * *** warning: apparently wrong codimension -- go to the sphere as the general case, then restrict to a sphere of size zero. Is the dual of the equation affected by being on the null cone?
 * A sphere: the locus of x is a sphere if A = S, a vector off the null cone.
 * If
 * $$\mathbf{S} = g(\mathbf{a}) - \frac{1}{2} \rho^2 \mathbf{e}_\infty$$
 * then S.X = 0 => $$ -\frac{1}{2} (\mathbf{a}-\mathbf{x})^2 + \frac{1}{2} \rho^2 = 0 $$
 * these are the points corresponding to a sphere
 * make pic to show hyperbolic orthogonality --> for a vector S off the null-cone, which directions are hyperbolically orthogonal? (cf Lorentz transformation pix)
 * in 2+1 D, if S is (1,a,b), (using co-ords e-, {e+, ei}), the points hyperbolically orthogonal to S are those euclideanly orthogonal to (-1,a,b) -- ie a plane; or in n dimensions, a hyperplane through the origin. This would cut another plane not through the origin in a line (a hypersurface in an n-2 surface), and then the cone in two points (resp. some sort of n-3 conic surface).  So it's going to probably look like some kind of conic.  This is the surface that is the image of a sphere under g.
 * A plane: the locus of x is a plane if A = P, a vector with a zero e0 component. In a homogeneous projective space such a vector P represents a vector on the plane e0=1 that would be infinitely far from the origin (ie infinitely far outside the null cone), so g(x).P =0 corresponds to x on a sphere of infinite radius, a plane.
 * In particular:
 * $$\mathbf{P} = \hat{\mathbf{a}} + \alpha \mathbf{e}_\infty $$ corresponds to x on a plane with normal $$\hat{\mathbf{a}}$$ an orthogonal distance &alpha; from the origin.
 * $$\mathbf{P} = g(\mathbf{a}) - g(\mathbf{b})$$ corresponds to a plane half way between a and b, with normal a - b
 * circles
 * tangent planes
 * lines
 * lines at infinity
 * point pairs

g(x) ∧ A = 0

 * points:  g(x) ∧ g(a) = 0
 * point pairs: g(x) ∧ g(a) ∧ g(b) = 0
 * homogeneous point: g(x) ∧ g(a) ∧ e∞ = 0
 * lines
 * planes
 * circles
 * spheres

Transformations

 * reflections
 * It can be verified that forming P g(x) P gives a new direction on the null-cone, g(x' ), where x'  corresponds to a reflection in the plane of points p in R3 that satisfy g(p) . P = 0.
 * g(x) . A = 0 =>  P g(x) . A P = 0  =>  P g(x) P . P A P (and similarly for the wedge product), so the effect of applying P sandwich-fashion to any the quantities A in the section above is similarly to reflect the corresponding locus of points x, so the corresponding circles, spheres, lines and planes corresponding to particular types of A are reflected in exactly the same way that applying P to g(x) reflects a point x.

This reflection operation can be used to build up general translations and rotations:
 * translations
 * Reflection in two parallel planes gives a translation,
 * $$g(\mathbf{x}^\prime) = \mathbf{P}_\beta \mathbf{P}_\alpha \; g(\mathbf{x}) \; \mathbf{P}_\alpha \mathbf{P}_\beta$$
 * If $$\mathbf{P}_\alpha = \hat{\mathbf{a}} +\alpha \mathbf{e}_\infty$$ and $$\mathbf{P}_\beta = \hat{\mathbf{a}} +\beta \mathbf{e}_\infty$$ then $$\mathbf{x}^\prime = \mathbf{x} + 2 (\beta-\alpha) \hat{\mathbf{a}}$$


 * rotations
 * $$g(\mathbf{x}^\prime) = \hat{\mathbf{b}}\hat{\mathbf{a}} \; g(\mathbf{x}) \; \hat{\mathbf{a}}\hat{\mathbf{b}}$$ corresponds to an x'  that is rotated about the origin by an angle 2 &theta; where &theta; is the angle between a and b -- the same effect that this rotor would have if applied directly to x.


 * general rotations
 * rotations about a general point can be achieved by first translating the point to the origin, then rotating around the origin, then translating the point back to its original position, ie a sandwiching by the operator $$\mathbf{TR{\tilde{T}}}$$ so
 * $$g (\mathcal{G}x) = \mathbf{TR{\tilde{T}}} \; g(\mathbf{x}) \; \mathbf{T\tilde{R}\tilde{T}}$$


 * screws
 * the effect a screw, or motor, (a rotation about a general point, followed by a translation parallel to the axis of roation) can be achieved by sandwiching g(x) by the operator $$\mathbf{M} = \mathbf{T_2T_1R{\tilde{T_1}}}$$.
 * M can also be parametrised $$\mathbf{M} = \mathbf{T^\prime R^\prime}$$ (Chasles' theorem)


 * inversions
 * an inversion is a reflection in a sphere -- various operations which can be achieved using such inversions are discussed at inversive geometry. In particular, the combination of inversion together with the Euclidean transformations translation and rotation is sufficent to express any conformal mapping -- i.e. any mapping which universally preserves angles. (Liouville's theorem).


 * dilations
 * two inversions with the same centre produce a dilation.

Resources

 * Hestenes et al (2000), in G. Sommer (ed.), Geometric Computing with Clifford Algebra (Google books) (http://geocalc.clas.asu.edu/html/UAFCG.html Hestenes website)
 * Ch. 1: New algebraic tools for classical geometry
 * Ch. 2: Generalized Homogeneous Coordinates for Computational Geometry
 * Ch. 3: Spherical Conformal Geometry with Geometric Algebra
 * Ch. 4: A Universal Model for Conformal Geometries of Euclidean, Spherical and Double-Hyperbolic Spaces
 * Hestenes (2001), in E. Bayro-Corrochano & G. Sobczyk (eds), Advances in Geometric Algebra with Applications in Science and Engineering, Google books
 * Old Wine in New Bottles (pp. 1--14)
 * Hestenes (2010), in E. Bayro-Corrochano and G. Scheuermann (2010), Geometric Algebra Computing in Engineering and Computer Science. (Google books).
 * New Tools for Computational Geometry and rejuvenation of Screw Theory
 * Doran (2003), §10.2: p. 351 et seq
 * Wareham (2006) thesis, pp. 14--26, 31--67
 * Dorst (2007), §13: p.355 et seq
 * Vince (2008), pp. 210--230
 * Bayro-Corrochano et al (2010), pp. 3--90
 * Perwass (2009), §4.3: p. 145 et seq
 * Bayro-Corrochano (2010), pp. 149--183


 * Macdonald notes, §4.2: p. 28 et seq


 * on the motor algebra over ℝn+1:
 * Eduardo Bayro Corrochano (2001), Geometric computing for perception action systems: Concepts, algorithms and scientific applications. (Google books)