The Construction of 3D Conformal Motions

This paper exposes a very geometrical yet directly computational way of working with conformal motions in 3D. With the increased relevance of conformal structures in architectural geometry, and their traditional use in CAD, its results should be useful to designers and programmers. In brief, we exploit the fact that any 3D conformal motion is governed by two well-chosen point pairs: the motion is composed of (or decomposed into) two specific orthogonal circular motions in planes determined by those point pairs. The resulting orbit of a point is an equiangular spiral on a Dupin cyclide. These results are compactly expressed and programmed using conformal geometric algebra (CGA), and this paper can serve as an introduction to its usefulness. Although the point pairs come in different kinds (imaginary, real, tangent vector, direction vector, axis vector and ‘flat point’), causing the great variety of conformal motions, all are unified both algebraically and computationally as 2-blades in CGA, automatically producing properly parametrized simple rotors by exponentiation. An additional advantage of using CGA is its covariance: conformal motions for other primitives such as circles are computed using exactly the same formulas, and hence the same software operations, as motions of points. This generates an interesting class of easily generated shapes, like spatial circles moving conformally along a knot on a Dupin cyclide.

architectural geometry [13]. As we will see, conformal motions naturally generate surfaces called Dupin cyclides, and these are being used as natural blending surfaces in CAD, to effect a smooth transition between spatial circles [1].
A principled way to construct conformal mappings (in 2D or 3D) is by composing them from simple mappings at the origin, in some fixed standard (but arbitrary) order: this is the extension of viewing Euclidean motions as a rotation around an axis through the origin followed by a translation, which appears natural in a homogeneous coordinate representation. There are commutation rules to bring arbitrary orders of conformal transformations into some standard order for parametrization, but these get quite involved [4]. In some senses more 'natural' for Euclidean motions is the Chasles decomposition of Euclidean motions in terms of a rotation around a spatial axis, combined with a translation along that axis. Now the order does not matter. Euclidean motions are a special case of conformal motions, and the Chasles decomposition will be seen to be a special case of the commuting point pair decomposition of this paper.
Let us consider a motivating example of our results, to set the scene. Figure 1a depicts a conformal motion C in 2D. We see a point x traveling along a red curve, its orbit. Every next dot is the moved x, C [x], C[C [x]] ≡ C 2 [x], · · · , C n [x] etc. As the number of applications goes to infinity, this particular choice of C makes the result converge to a fixed point. We have also drawn a network of orthogonal circles, in blue and green. These correspond to a decomposition of the motion C into two independent simpler conformal motions, that can be thought of as taking place simultaneously to produce the C motion. Let us call them B and G (for blue and green).
• B is a motion of which the orbits are the blue circles. These circles intersect two points, a source p and a sink q (not labeled). An arbitrary point y lies on a unique circle connecting p, y, and q, and under B moves towards q along this circle. This is a conformal scaling along a circle from p to q. • G is a motion of which the orbits are the green circles. These circles circle around the points p or q in a counterclockwise manner-they are the orbits of a conformal rotation. At every point y, there is a unique circle in this family, defined by the fact that it is perpendicular to the blue circle through p, y and q. The motion G makes a point y move along such a green circle by a certain amount.
B and G are rather simple conformal transformations, with orbits that are circles. The fact that our original motion C can be decomposed in terms of B and G means that C

[y] = B[G[y]] = G[B[y]]:
we can get to each next result by a diagonal move in the little local rectangle spanned at our current location by the local blue and green circles. The spacing of these circles is determined by C, which therefore spells out how quickly we have to move along the motions B and G. The resulting orbit of x under the motion C is in general non-circular, as the figure shows clearly; we will find that it is an equiangular spiral on this network of circles. Fig. 1 a A conformal motion of a red point x in the plane, decomposed into two 'independent' motions with circular orbits determined by two point pairs (in black). b A conformal motion in 3D, similarly decomposed Such 2D pictures may be found in pictorial accounts of conformal motions in the plane, such as the excellent [11]. But they are not limited to 2D: Fig. 1b shows a very similar 3D motion C, split into a B and G, where the blue circles are again passing from a source to a sink in a conformal scaling, and the green circles perform a conformal rotation in an orthogonal direction. Again, the trajectory under C can be described as a composition of the simpler moves under B and G, as a 'diagonal' in a local 'rectangle'. The orbits thus generated lie on the surface of a Dupin cyclide rather than in the plane; they still are equiangular spirals.
In this paper, we will show that such decompositions work in general, and how to use them (though for the technical details we will often refer to [6]). To encode the geometrical properties compactly, we should employ an algebraic framework in which 3D circles are basic elements of computation, since they play such an important role as the primitive elements of construction. It has to be a metric framework, since we need to express the orthogonality of circles. And point pairs (like the coupled source and sink of the examples) appear to be important, too.
The usual representations fall a bit short here. In 2D, there is a close relationship between conformal transformations and complex analysis, and tools like Cauchy coordinates and Möbius transformations have been developed to compute with them. Powerful though they are, the classical techniques appear to rely in an essential manner on the complex number plane [12] and this has made it hard to extend results to 3D. Classical decomposition using Möbius transformations (or their representation as Vahlen matrices) can be lifted to n-D, but they tend to standardize transformations around the arbitrary origin as more basic (as in Atiyah's or Ahlfors' descriptions), whereas the point pairs and circles used in our decomposition could be anywhere. Fortunately, there does exist a very handy computational framework for conformal transformations in 3D: conformal geometric algebra (CGA). It is based on a representation of conformal mappings in R n by orthogonal transformations in R n+1,1 , which dates back to Poincaré and Ahlfors. That representation became a very practical tool recently, when [10] employed the rotors of geometric algebra to represent those orthogonal transformations compactly and in a structure-preserving manner, enabling their direct application to extended geometric primitives. We have used CGA to expose a canonical representation of 3D conformal motions in [6], specifically developed for interpolation of such motions. The theory in that paper will form the technical basis of our explanation here.

Computing with Point Pairs and Circles
Using conformal geometric algebra (CGA), it is possible to compute directly with point pairs and circles in 3D, in a coordinate-free manner. In this paper, we will explain matters in terms of the geometric semantics of CGA, without attempting its full definition or explanation. Accessible introductions for computational geometry are [5] or [3], and a brief summary may be found in Appendix A which also defines our notation. For the novice reader, those tutorial references are meant as a navigable bridge to the rest of the relevant literature. We do assure you that all seemingly descriptive statements and formulas we use below are in fact directly computational in CGA.
A general vector σ of CGA represents a sphere (actually, it does so dually, but we will ignore this for smoothness of explanation). The squared radius of this sphere is positively proportional to σ 2 , and this can be positive, zero or negative. We call the corresponding geometry a real sphere, a point, and an imaginary sphere, respectively. Points are thus spheres of radius 0. In CGA, imaginary spheres are represented by real numbers, since only their squared radius occurs in computations. Imaginary spheres are essential to our analysis of conformal motions.
There is a special vector ∞ representing the point at infinity. (Yes, we use the symbol '∞' to represent this special vector, no confusion will arise!) In conformal geometry the point at infinity is not invariant (for instance, an inversion in a sphere turns it into the center of that sphere), and precisely because of that, we need it for closure of the algebra of points. A vector π 'containing' ∞ (this means ∞ · π = 0) is a sphere passing through infinity, hence a plane. We can normalize planes to have π 2 = 1 and will do so in this paper.
Higher grade elements in CGA can be made through the outer product ∧, which is bilinear, associative, and anti-commutative for vectors. When performed between elements like the sphere and plane vectors above, this is geometrically interpreted as a 'plunge', a round or flat element of minimal dimension hitting the constituents perpendicularly. Hence p ∧ q ∧ r , with p, q and r points, is the circle through p, q and r , because plunging into a very small sphere is equivalent to passing through its center. Changing the points to real spheres, p ∧ q ∧ r is the unique circle hitting the three spheres perpendicularly.
We now consider the circle x ∧ σ ∧ π , with x a point, σ a sphere and π a plane. We are especially interested in the case where the sphere and the plane are perpendicular (in CGA this is expressed as σ · π = 0). Now consider the circle as x ∧ (σ ∧ π), with x an arbitrary point, and investigate how this changes as x changes -that should give a clue to the geometric meaning of the element σ ∧ π .
• Real point pair: σ ∧ π with σ · π = 0 and σ 2 < 0 Because of the anti-commutativity of the outer product, σ ∧π is proportional to (σ −π √ −σ 2 )∧(σ +π √ −σ 2 ). Each of those factors squares to zero, so these are points. Thus the element σ ∧ π is a point pair when σ is an imaginary sphere. The location of these points turns out to be as the poles of the sphere σ whose equator plane is π . For an imaginary sphere σ with center in a plane π , the circle x ∧ σ ∧ π passes through these poles, see Fig. 2 (right).
• Imaginary point pair: σ ∧ π with σ · π = 0 and σ 2 > 0 When σ is a real sphere, σ ∧ π cannot be split into a pair of real points. In this case, we know that the circle x ∧ (σ ∧ π) hits σ and π perpendicularly, and that is enough to construct the circle x ∧ (σ ∧ π) in Figure 2 (left). Once you know some CGA, your will visualize σ ∧ π as an imaginary point pair, the imaginary poles dually associated to the real equator that is the intersection of σ and π . This point pair is a 1-D sphere with negative squared radius since (σ ∧ π) 2 = σ πσ π = −σ 2 π 2 = −ρ 2 , with ρ the radius of the real sphere σ . Note that this family of circular orbits defined by σ and π has the equator as their 'conformal rotation axis' (as x gets closer to the equator, the orbit through x wraps it more tightly). • Tangent vector: p ∧ π with p · π = 0 and p 2 Its geometry is a circle passing through x and p and hitting π perpendicularly. This is consistent with considering p ∧ π (with p · π = 0) to be a tangent vector at p in the direction of the normal vector of π , giving Fig. 2 (middle) as geometry: the circular orbit passes through x and the tangent vector.
Note that the transition between these three possibilities is smooth: as σ 2 changes sign, the circular orbits for a given point x change continuously. The three cases above do not exhaust the point pair possibilities, there are some special cases of relevance to Euclidean similarities, considered as an interesting special case of conformal transformations (namely those preserving ∞ modulo scaling). imaginary point pair tangent vector real point pair • Flat point p ∧ ∞ with p 2 = 0 We analyze the circle x ∧ ( p ∧ ∞), with p a point, as parametrized by x to find the meaning of p ∧ ∞. Since the circle passes through infinity, it is a line, and p ∧ ∞ is a 'flat point', the type of point which leads to a 'flat' subspace when plunging into it (see [3] where this term was introduced first). A flat point has a positive square: it is a real point pair with one of the points at infinity.

• Direction vector: π ∧ ∞
The circle x ∧ (π ∧ ∞), with π a plane, is a line (since it contains the point at infinity) perpendicular to the plane π . Being capable of making such a line from any point x makes π ∧ ∞ effectively a direction vector in the direction of the normal of the plane π . A direction vector squares to zero.
The circle x ∧(π 1 ∧π 2 ) hits the two planes π 1 and π 2 perpendicularly, and passes through x. This orbit therefore circles around the intersection line of π 1 and π 2 . Therefore an element π 1 ∧ π 2 is the representation of a rotation axis. We call it a dual line, following [3]. A dual line has a negative square, and may thus be seen as a special case of an imaginary point pair.

Simple Conformal Motions from 2-Blades
In [3] it is shown that all outer products of two vectors in CGA can be brought into one of the above forms. They therefore all have a geometrical meaning as point pairs or their generalization (such as direction vectors). The result of an outer product of two elements is called a 2-blade in GA literature (and k-blade for k elements). The conformal motion that moves a point x starting at x(0) along the three-blade x ∧ B, in a tempo parametrized by a time t, is Here the product (indicated by a half-space) is the geometric product (or Clifford product) of multivectors, also involved in the definition of the exponential. It is fully defined as a bilinear associative product, under which vectors have a scalar square (equal to their squared norm under the dot product), though if you have not seen it before that will not mean much. The element R = e −Bt/2 is an example of a rotor, the GA-encoding of the special orthogonal transformations (special in the mathematical sense of having determinant 1). The 2-sidedness in the 'sandwich' product of Eq. (1) may remind you of quaternion actions (and indeed, the 'dual line' 2-blades at the origin have the classical quaternions as their rotors). Figure 3 shows the effect of the rotors for each of the 2-blades we have introduced. These form a natural vocabulary of elementary conformal motions, including the Euclidean similarities. We will call these simple motions in what follows, characterized by simple rotors (i.e., exponentials of 2-blades). It is gratifying that CGA unifies these intuitively and geometrically very different conformal motions in a single concept: exponential of a 2-blade. The geometric exponentiation for a normalized 2-blade B is, by series expansion and grouping: Thus the parametrization of the orbits is trigonometric, linear or hyperbolic. This usually non-linear effect can be seen in Fig. 3, most clearly in the bottom row.

General Conformal Motions
A classical way of constructing general conformal motions is as a sequence of the some selected standard motions at the origin, similar to characterizing a Euclidean motion by an 'origin rotation followed by a translation'. There are representation theorems on which sequences suffice, and how they lead to encoding of the conformal motions in terms of Möbius transformations or Vahlen matrices. The commutation rules between the different sequences are rather involved [4], since conformal transformations at the origin rarely commute. In CGA, the origin plays no special role in characterizing general motions; rather, our simple motions are those involving 2-blades. So we could construct a general motion R as the sequence of simple motions with simple rotors R 1 , R 2 , . . . R k , which acts like the single rotor R = (R k . . . R 2 R 1 ). This rotor R can also be written in exponential form e −B/2 . However, the resulting B is no longer a 2-blade, but a bivector (or 2-vector), which is a sum of 2-blades in general not factorizable by the outer product.
To analyze a rotor R, we need its bivector B. The non-commutative nature of the geometric product makes the determination of the bivector B, given R, rather involved. For CGA, this 'logarithm' of 3D conformal motions was given in [6], and the procedure is briefly repeated in Appendix B. The algebraic core of the logarithm determination is a split of the bivector B into a sum of commuting 2-blade B + and B − : This is always possible, and it implies that any rotor R in 3D CGA can be written as the product of two simple rotors: Geometrically, this means that a general conformal motion in 3D may be conceived as being constructed from at most two simple motions. But then we can actually use this fact not only to decompose such a motion (as happens in the logarithm), but to compose it.
Any 3D conformal motion can be made from two well-chosen simple motions characterized by commuting 2-blades.
Such a construction is much more intuitive and interactive than the multiplication of standard motions at the origin, which is the usual approach and hampered by complicated commutation rules. The advantage is completely analogous to constructing an arbitrary rigid motion as the simultaneous action of a rotation around an axis and a translation along that axis, i.e. as a screw motion. This possibility, given by Chasles' theorem, is of course merely a special case of the point-pair-based conformal motion construction. The demand that in this construction the 2-blades of the simple motions must commute restricts which simple motions we can compose and then expect to retain their factorized form. But taking that into account, we can form a full inventory of all possible conformal motions in 3D, knowing that all other conformal motions must fall into the resulting categories. Table 1 (By the way, this corrects an error of a factor 2 in [6].) As a consequence, the rotors of two real point pairs cannot be combined to give a factorized conformal motion. Two imaginary point pairs can be combined, but only at the specific distance α, which actually makes their associated real spheres intersect orthogonally. A real and imaginary point pair can even be coplanar in the generation of their motion, if their squared radii are the same but opposite. Such a motion has a set of planar orbits, see Fig. 1a. Similar restrictions hold for the non-point-pair 2-blades in the right/bottom part of Table 1.
In summary, there is a conformal motion corresponding to the product of two or more simple motions of any kind. However, such a motion always can be factorized into two simple motions with commuting 2-blades. Even when you specified a motion by two simple motions, it is likely to get refactorized into the proper form. For instance, with two coplanar real point pairs as 2-blades, the resulting motion factorizes into a coplanar real and imaginary point pair, and a clearer view of the orbits of the motion is achieved by generating it as such in the first place. Only in the factorized form of commuting simple motions can one can expect the final result of a general conformal motion to be a motion in one simple rotor, followed by the other (or vice versa, or simultaneously). You can then implement the motions that way in your graphics software.

Visualizing 3D Conformal Motions by Dupin Cyclides
A tangent line to the local orbit at x of a simple motion with non-zero 2-blade B is x ∧ (x · B) ∧ ∞. Two such tangent lines for 2-blades A and B are perpendicular if their 2-blades commute non-trivially (i.e. AB is not scalar), as shown in Appendix C. The set of all orbits therefore forms a 2D surface that supports a network of orthogonally intersecting circles. Such a surface is a Dupin cyclide, with as special cases a torus, a cylinder, or a (double) cone [2]. When analyzing the conformal motion of a point, it is revealing to plot the cyclide on which its orbit resides; this aids the visualization of both the motion, and its possible extrapolation or interpolation. The motions are best plotted in an interactive visualization tool that permits 3D viewing. The screen shots in this paper are made with the free software GAViewer [7].   Table 2 Explicit expressions to generate the families of cyclides in the figures may be found in Table 2. A typical bivector B o for the cyclide at the origin can be constructed as a weighted sum of the two commuting 2-blades given in that table. The general form of the bivector B for this type of cyclide can be constructed by applying any conformal versor V to make B = V B 0 /V . Since B 2 = B 2 o , the defining properties for truly conformal cyclides are invariant, though with certain choices of V they may be transformed into a Euclidean cyclide (torus or cone, cylinder). The characterization of those Euclidean cyclides involves the point at infinity ∞, and their general form can be reached from the given origin form at the bottom half of Table 2 by applying conformal versors commuting with ∞-those are the Euclidean similarities. T t [ ] denotes a translation over t (application of the versor exp(−t ∧ ∞/2)), for the other notations see Appendix A. The use of the unit spheres e + and e − and unit vectors e i sets the scale, and leaves only one parameter to vary to select a cyclide in its family. We let this be determined by a point at location αe 1 . All α are valid, the exclusion indicated denotes the occurrence of a degenerate case for which the standard name appears inappropriate, but which is not actually a singularity in CGA (for instance, a torus consisting of a circle of tangent 2-blades which are in fact zero radius circles; or a nested double sphere with two common poles, which is a degenerate spindle cyclide). For non-Euclidean cyclides, using the point at infinity ∞ is the natural way of generating the parabolic case (but the other indicated αe 1 also work). For the 'Euclidean' cyclides at the bottom half, α can be related to the radius ρ of a characteristic circle for the shape, as indicated. The cone happens to be the only cyclide that cannot be characterized by x(0) at αe 1 (but almost any other point will do) Our characterization by two point pairs merely specifies a family of potential cyclides. Only when an initial point x(0) is given is an orbit and its cyclide in this family fully determined. There is a cyclide for each point x(0), but many points share a cyclide-namely when they can be connected by a conformal motion in the family. In Table 2, we have opted for characterization of the standard cyclides through the one-parameter points at location αe 1 . As we vary α, we fill the space with shells of the chosen family of cyclides (intersecting only in a real point pair, if at all). The table shows that even with the same defining 2-blades, as x(0) varies cyclides may result that have been given different names.
We now briefly discuss and name the cyclide families in more detail.
• Ring cyclides: Ring cyclides result from two imaginary commuting point pairs B + and B − . Such pairs are never coplanar by Eq. (4). As the point x(0) is changed, the meridians and parallels of the ring cyclides may interchange roles, the tighter circles being determined by the closer point pair. The cyclide turns 'inside out'. Midway there are points x(0) that make the cyclide an infinite surface called a parabolic ring cyclide (Fig. 4).

• Cuspidal/needle cyclides:
For an imaginary point pair B − and a commuting tangent vector B + , the orbits of the tangent vector must pass through its location. Thus we get a pinched version of the ring cyclide. Several names have been given for these. When the B + -orbit circles around the line B − ∧ ∞, one calls this a 'needle cyclide' (Fig. 5a); when the B + -orbits do not do so, the name 'cuspidal cyclide' is in use (Fig. 5c). As the point x(0) is moved around, the needle cyclide may change smoothly into the cuspidal cyclide. There is an intermediate infinite surface called a 'parabolic needle cyclide', most easily generated by choosing x(0) on one of the carriers (Fig. 5b), or at ∞. • Spindle/horn cyclides: When an imaginary point pair B − is combined with a commuting real point pair B + but the two are not coplanar, a different type of cyclide results. Again, there are two kinds. If there are B + circles circling the line B − ∧ ∞, a 'horn cyclide' results (Fig. 6a), and otherwise a 'spindle cyclide' (Fig. 6c). There is a transition between the two forms, the infinite surface of a 'parabolic horn cyclide' (Fig. 6b). Another special member of this cyclide family is the 'double sphere', two concentric spheres (coinciding with B + ∧ B − ) connected at the real point pair; an orbit stays on one of them since it cannot pass the sink in finite time.

• Symmetric horn cyclides:
In the commuting combination of real and imaginary point pair, it is possible to make their squared radii opposite but equal. According to Eq. (4), this results in co-circular point pairs, which have a bilateral symmetry. For an x(0) in their common plane, we obtain a conformal transformation in that plane, of the kind studied in complex analysis (after all, the blade B + ∧ B − commuting with all x in this plane has a negative square, so it can be used as a complex number), see Fig. 7a. Lifting x(0) out of the plane, we obtain a 'symmetric horn cyclide' (Fig. 7b). Fig. 6 A horn cyclide, a parabolic horn cyclide, and a spindle cyclide, all generated from the same two commuting point pairs but different x (and in varied views) Fig. 7 The planar orbits of a conformal motion from a commuting coplanar real/imaginary point pair, and spatial orbits from the same point pair • Torus, cone, cylinder: When a cyclide is generated with a dual line as negatively squared 2-blade, a Euclidean rotational symmetry appears. When the commuting point pair is imaginary, tangent vector or real, a type of torus results: 'ring torus', 'horn torus' and 'spindle torus', respectively, see Fig. 8. (Note: the term 'horn torus' appears to be generally used, rather than the more logical 'cuspidal torus'.) When the companion point pair to the dual line degenerates into a direction vector, we obtain a cylinder-the surface on which screws move. When the other point pair is a flat point, we obtain a cone-the surface on which isotropically scaled screws (snail shells) move . See Fig. 9. (2) and depicted in Fig. 3.
Only with an imaginary point pair can an orbit be periodic.
When analyzing a given conformal motion with rotor R, these weights follow from the logarithm of Appendix B. When designing a conformal motion, it makes sense to first decide on the geometry of the orbit, and hence the point pair and its cyclide family, and then to fix the spiral motion along a surface in that family as a second step, by choosing the weights appropriately.
For instance, in the case of a Euclidean motion, the cyclide is a cylinder with a radius determined by the position of the point x(0) relative to the axis dual line. The orbit is a equiangular screw on this cylinder; but the pitch of the screw is determined by the ratio of magnitudes the 2-blades B + (translation along the axis) and B − (rotation around For the cyclides determined by two point pairs with negative squares, doubly periodic motions may result for a well chosen pitch of the spiral. When generating the picture for the ring torus in Fig. 8, we used the 'standard' 2-blades B − = e 1 ∧ e 2 and B + = e + ∧ e 3 , both of which square to −1. When these are used with the same weight, their orbit is actually a Villarceau circle on the torus (this is an example of an isoclinic rotation, see [6], an 'accidental degeneracy'). When we provide a non-unit pitch we move more interestingly over the torus surface; when the relative pitch is a fraction, the orbit is closed and periodic. We can generate (m, n) torus knots by the rotor exp(−(m B + + n B − )/2). By a suitable chosen conformal versor (determining the desired correspondence of defining 2-blades) we can transform the standard torus into any ring cyclide, taking its knots into (m, n) cyclide knots, as in Fig. 10.

Moving Other Primitives
So far, we have only conformally moved points by means of the rotors and considered the resulting point orbits. But GGA is structure-preserving: the motion of a product (inner, outer or geometric) of elements is identical to the product of the moved elements. We can move, for instance, a circle K (3-blade of points) directly, by the same rotor sandwiching operation K → R K/R we used on points. The envelope of such a moving circle is no longer a Dupin cyclide, but a much more interesting shape depending on the size and pose of the initial circle (it appears that these shapes, elementary in some sense but with a high number of geometric parameters, have not acquired any standard names). We show an example of a moving circle in the planar motion of a horn cyclide rotor, and of the spatial motion of a circle under the same rotor, in Fig. 11(a, b). The (3,2) knot on a ring cyclide of conformally varying circular cross section shown in Fig. 11c is also easily generated: in CGA based software GAViewer for Fig. 10, just replace x(0) = o (a point) by x(0) = e − ∧ e 1 ∧ e 2 (a real unit circle), and drag it around. For each position, you will obtain an orbit x(t) that forms a knot of circles, as in Fig. 11c. The richness and use of such natural possibilities in the CGA generation of conformal motions remains to be explored. Fig. 11 Shapes generated by the orbit of a circle, rather than of a point, for a horn cyclide motion determined by a real and imaginary commuting point pair in a common plane. a The orbit of a circle in the plane; b the orbit of a circle outside the plane-its spatial nature will be easier to appreciate in the 3D demo. (Both from [3]). c A knot of circles generated by a ring cyclide motion

Conclusion
We presented a compact computational characterization of conformal motions in 3D in terms of 2-blades in CGA, which algebraically have no exceptions, but which can geometrically be interpreted as point pairs, tangent vectors, dual lines, direction vectors or flat points. The orbits of an arbitrary motion are equiangular spirals on a cyclide which can be easily characterized and computed by means of these 2-blades, enabling interactive specification. The CGA framework allows direct application of the motions to all its geometric primitives, providing a rich vocabulary of easily computable potentially useful shapes.
The reader interested in commercial applications should be warned that CGA is protected by a US patent [8].
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http:// creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Appendix A. A Glimpse of How CGA Works
The conformal geometric algebra (CGA) of a 3D space is the geometric algebra of the space R 4,1 , a five-dimensional space with a Minkowski metric (it has an orthonormal basis with four vectors squaring to +1, and one vector to −1). We briefly denote some of its contents, to convince you that the constructions in this paper can be executed and implemented exactly as written, and to fix our notation. An introductory tutorial at the next level of detail is [5], written in a style that aids the understanding of [6]. As the above indicates, there is a five-dimensional space which is relevant to 3D conformal geometry. The 3D space we are interested in forms three of its dimensions (more precisely, its direction vectors do), so we can label the unit vectors in those dimensions as e 1 , e 2 , e 3 . Elements of this Euclidean subspace of R 4,1 will be denoted in bold. The other two 'extra' dimensions e + and e − (with e 2 + = 1 and e 2 − = −1) are usually encoded by o = (e − + e + )/2 and ∞ = (e − − e + ), and these represent the point at the origin and the point at infinity, respectively.
This space has linear subspaces of up to five dimensions. The 1-D subspaces we will use to represent spheres (including points) and planes in 3D, homogeneously (so up to a scaling equivalence) as vectors. A sphere with center c, squared radius ρ 2 and weight α is mapped to the vector σ of R 4,1 given by: Since ρ 2 may be negative, we also have 'imaginary spheres' represented by vectors with real components. Following the algebra just introduced, you may verify that the Euclidean distance of points at locations x and y (spheres with zero radius) can be computed by the inner product of R 4,1 : It follows that the vector representing a point p is a null vector, i.e., p 2 = 0. The points x lying on a unit weight sphere σ satisfy x · σ = 0 and x 2 = 0. You may verify that e + is a representation of the unit-weight, unit-radius real sphere at the origin. It is consistent to consider e − to be the unit-weight unit-radius imaginary sphere at the origin (note that it contains no points: x · e − = 0 while x 2 = 0 has no solution x). A sphere containing the point at infinity ∞ is a plane. It is represented by a vector π without an o-component, i.e. satisfying ∞ · π = 0. For instance, π 1 = e 1 represents the plane with normal vector e 1 : you may verify that x · π 1 = 0 and x 2 = 0 are equivalent to the usual Euclidean equation x · e 1 = 0. All spheres σ that intersect the plane π perpendicularly satisfy σ · π = 0.
Extended elements can be constructed by the outer product ∧. This is the way we construct circles and point pairs in the main text, leading to the diverse but meaningful geometrical elements of grade 2 as given in Fig. 3, and the circles as elements of grade 3.
Because of the above relationship of the dot product to distances, orthogonal transformations in R 4,1 can preserve the distance of points, if and only if they preserve the point at infinity ∞. These are the Euclidean motions. If they change ∞ by a scalar factor, they are Euclidean similarities, since this gives a common scalar proportionality of distances in Eq. (5).
The general orthogonal transformations of R 4,1 correspond to conformal transformations in 3D. Such transformations can be written as a sequence of inversions in spheres x → −σ x/σ , using the geometric division by a vector. But for motions, which have determinant 1, a more convenient representation is as exponentials of bivectors. Such rotors are to be applied in a sandwiching manner R[X ] ≡ R X/R, to move an arbitrary element X of the algebra. The rotors are almost (but not quite) the same as spinors, and they include complex numbers and quaternions as special cases in R 2 and R 3 , namely when the bivector of R is Euclidean. Now we can derive Eq. (7), and with it the perpendicularity of the tangent lines: