dual-quaternion julia fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3...

5
Dual-Quaternion Julia Fractals Ben Kenwright Figure 1: Exploratory parameter analysis in early prototype Julia sets of quadratic fractals with Dual-Quaternions. Abstract Fractals offer the ability to generate fascinating geometric shapes with all sorts of unique characteristics (for instance, fractal geom- etry provides a basis for modelling infinite detail found in nature). While fractals are non-euclidean mathematical objects which pos- sess an assortment of properties (e.g., attractivity and symmetry), they are also able to be scaled down, rotated, skewed and replicated in embedded contexts. Hence, many different types of fractals have come into limelight since their origin discovery. One particularly popular method for generating fractal geometry is using Julia sets. Julia sets provide a straightforward and innovative method for gen- erating fractal geometry using an iterative computational modelling algorithm. In this paper, we present a method that combines Julia sets with dual-quaternion algebra. Dual-quaternions are an allur- ing principal with a whole range interesting mathematical possibil- ities. Extending fractal Julia sets to encompass dual-quaternions algebra provides us with a novel visualize solution. We explain the method of fractals using the dual-quaternions in combination with Julia sets. Our prototype implementation demonstrate an efficient methods for rendering fractal geometry using dual-quaternion Julia sets based upon an uncomplicated ray tracing algorithm. We show a number of different experimental isosurface examples to demon- strate the viability of our approach. Keywords: graphics, dual-quaternion, visualization, fractals, ge- ometry, graphical processing unit 1 Introduction Geometric Properties of Complex & Dual Numbers Complex numbers have a very elegant geometric interpretation. Specifically, we can treat complex numbers as vectors in the complex plane. Ad- dition and subtraction then follow regular rules of vector arithmetic, while complex multiplication can be seen as scaling the rotation of one vector by the magnitude and argument of another, respectively. A dual number is a number of the form a + , where a, b R and ε is a non-real number with the property ε 2 =0. Dual numbers are in some way similar to complex numbers a + bi, where i 2 = -1. You can imagine dual numbers as situated on the orthogonal line centred at ‘a’ in the dual number plane. When treating dual num- bers as vectors the modulus is evaluated as ||a + || = abs(a) because of the nilpotency [Wang and Yu 2010]. Dual-Quaternions Dual-quaternion have been around since 1882 [Clifford 1882] but has gained less attention compared to quaternions alone. Comparable to quaternions the dual-quaternions have had a taboo associated with them, whereby individuals avoid quaternion and hence dual-quaternions [Kenwright 2012]. While the robotics community has started to adopt dual-quaternions in recent years, the computer graphics community has not embraced them as whole-heartedly. Recent work which has taken hold and has demonstrated the practicality of dual-quaternions in computer graphics, some examples include: Kavan et al. [Kavan et al. 2008] who demonstrated the advantages of dual-quaternions in charac- ter skinning and blending. Frey and Herzeg [Frey and Herzeg 2011] extended Kavan et al.’s [Kavan et al. 2008] work with dual- quaternions and qtangents as an alternative method for representing rigid transforms instead of matrices. Giving evidence that the re- sults can be faster with accumulated transformations of joints if the inferences per vertex are large enough. Selig [Selig 2010] address key limitations in computer games by examining the problem of solving the equations of motion in real-time by putting forward how dual-quaternion give a very neat and succinct way for representing rigid-body transformations. Vasilakis and Fudos [Vasilakis and Fu- dos 2009] discussed skeleton-based rigid-skinning for character an- imation. Kuang et al. [Kuang et al. 2011] presented a strategy for creating real-time animation of clothed body movement. Algebra and Fractals Julia set of a function f is the set of all points z in C such that f displays sensitive dependence at z.A popular Julia set function, and the one we use in this paper, is of the form f (z)= z 2 + c for some constant c. In the two di- mensional complex domain, a Julia set is produced using the it- erative algorithm zn+1 = z 2 n + c, for a given complex number c. The Julia set contains the initial complex values z0 for which the system converges. There have been a number of publications devoted to computational and graphical aspects of the Julia sets [Ke and Panduranga 1990; Crane 2005]. including 3-dimensional and 4-dimensional contexts to generate fractal geometry. In par- ticular, modelling fractal geometries using quaternions is a well re- searched topic in computer graphics [Pickover 1998]. Along similar lines, Octonionic Julia sets have also been investigated in the liter- ature from the computational and graphical point of view. Dual- quaternions follow a regular set of arithmetic rules (for performing common operations, such as, multiplication, addition and magni- tude - see Appendix A and Figure 2). Extending the concepts de- veloped for creating quaternion Julia sets, allows us to formulate similar methods for dual-quaternion Julia sets. Contribution The key contributions of this paper are: (1) process for building dual-quaternion Julia sets; (2) graphical examples and experiments. 2 Related Work Quaternions to Dual-Quaternions Clifford [Clifford 1882] published his intriguing work on dual-numbers in 1873, and pro-

Upload: nguyenanh

Post on 15-Jun-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dual-Quaternion Julia Fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a 3-dimensional

Dual-Quaternion Julia FractalsBen Kenwright

Figure 1: Exploratory parameter analysis in early prototype Julia sets of quadratic fractals with Dual-Quaternions.

AbstractFractals offer the ability to generate fascinating geometric shapeswith all sorts of unique characteristics (for instance, fractal geom-etry provides a basis for modelling infinite detail found in nature).While fractals are non-euclidean mathematical objects which pos-sess an assortment of properties (e.g., attractivity and symmetry),they are also able to be scaled down, rotated, skewed and replicatedin embedded contexts. Hence, many different types of fractals havecome into limelight since their origin discovery. One particularlypopular method for generating fractal geometry is using Julia sets.Julia sets provide a straightforward and innovative method for gen-erating fractal geometry using an iterative computational modellingalgorithm. In this paper, we present a method that combines Juliasets with dual-quaternion algebra. Dual-quaternions are an allur-ing principal with a whole range interesting mathematical possibil-ities. Extending fractal Julia sets to encompass dual-quaternionsalgebra provides us with a novel visualize solution. We explain themethod of fractals using the dual-quaternions in combination withJulia sets. Our prototype implementation demonstrate an efficientmethods for rendering fractal geometry using dual-quaternion Juliasets based upon an uncomplicated ray tracing algorithm. We showa number of different experimental isosurface examples to demon-strate the viability of our approach.

Keywords: graphics, dual-quaternion, visualization, fractals, ge-ometry, graphical processing unit

1 IntroductionGeometric Properties of Complex & Dual Numbers Complexnumbers have a very elegant geometric interpretation. Specifically,we can treat complex numbers as vectors in the complex plane. Ad-dition and subtraction then follow regular rules of vector arithmetic,while complex multiplication can be seen as scaling the rotation ofone vector by the magnitude and argument of another, respectively.A dual number is a number of the form a+ bε, where a, b ∈ R andε is a non-real number with the property ε2 = 0. Dual numbers arein some way similar to complex numbers a + bi, where i2 = −1.You can imagine dual numbers as situated on the orthogonal linecentred at ‘a’ in the dual number plane. When treating dual num-bers as vectors the modulus is evaluated as ||a + bε|| = abs(a)because of the nilpotency [Wang and Yu 2010].

Dual-Quaternions Dual-quaternion have been around since1882 [Clifford 1882] but has gained less attention compared toquaternions alone. Comparable to quaternions the dual-quaternionshave had a taboo associated with them, whereby individuals avoidquaternion and hence dual-quaternions [Kenwright 2012]. While

the robotics community has started to adopt dual-quaternions inrecent years, the computer graphics community has not embracedthem as whole-heartedly. Recent work which has taken hold andhas demonstrated the practicality of dual-quaternions in computergraphics, some examples include: Kavan et al. [Kavan et al. 2008]who demonstrated the advantages of dual-quaternions in charac-ter skinning and blending. Frey and Herzeg [Frey and Herzeg2011] extended Kavan et al.’s [Kavan et al. 2008] work with dual-quaternions and qtangents as an alternative method for representingrigid transforms instead of matrices. Giving evidence that the re-sults can be faster with accumulated transformations of joints if theinferences per vertex are large enough. Selig [Selig 2010] addresskey limitations in computer games by examining the problem ofsolving the equations of motion in real-time by putting forward howdual-quaternion give a very neat and succinct way for representingrigid-body transformations. Vasilakis and Fudos [Vasilakis and Fu-dos 2009] discussed skeleton-based rigid-skinning for character an-imation. Kuang et al. [Kuang et al. 2011] presented a strategy forcreating real-time animation of clothed body movement.

Algebra and Fractals Julia set of a function f is the set of allpoints z in C such that f displays sensitive dependence at z. Apopular Julia set function, and the one we use in this paper, isof the form f(z) = z2 + c for some constant c. In the two di-mensional complex domain, a Julia set is produced using the it-erative algorithm zn+1 = z2n + c, for a given complex numberc. The Julia set contains the initial complex values z0 for whichthe system converges. There have been a number of publicationsdevoted to computational and graphical aspects of the Julia sets[Ke and Panduranga 1990; Crane 2005]. including 3-dimensionaland 4-dimensional contexts to generate fractal geometry. In par-ticular, modelling fractal geometries using quaternions is a well re-searched topic in computer graphics [Pickover 1998]. Along similarlines, Octonionic Julia sets have also been investigated in the liter-ature from the computational and graphical point of view. Dual-quaternions follow a regular set of arithmetic rules (for performingcommon operations, such as, multiplication, addition and magni-tude - see Appendix A and Figure 2). Extending the concepts de-veloped for creating quaternion Julia sets, allows us to formulatesimilar methods for dual-quaternion Julia sets.

Contribution The key contributions of this paper are: (1) processfor building dual-quaternion Julia sets; (2) graphical examples andexperiments.

2 Related WorkQuaternions to Dual-Quaternions Clifford [Clifford 1882]published his intriguing work on dual-numbers in 1873, and pro-

Page 2: Dual-Quaternion Julia Fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a 3-dimensional

Figure 2: Dual-Quaternion - Visual Overview of Quaternion andDual-Quaternion Components. To avoid confusion and enable thereader to easily distinguish a quaternion from a dual-quaternionwe use two discernible symbols to identify them.

vided us with a powerful tool for facilitating the analysis of com-plex systems (e.g., mechanical, geometric) [Kenwright 2012]. Thedual-quaternion is an extension of dual-number theory whereby thenumbers for the dual-number equation are represented by quater-nions. Remarkably, the dual-quaternion algebra that results is verystraightforward and elegant and provides us an algebraically com-pact and efficient system for solving otherwise complex problems[Kenwright 2012]. Dual numbers are pretty similar to imaginarynumbers but there is one important difference. With imaginarynumbers, i2 = −1, but with dual numbers, ε2 = 0 (and ε is not0), while this may seem like a small difference, it opens up a wholeinteresting world of mathematical possibilities.

Fractal Geometry Generating a 4-dimensional version of com-plex numbers are called quaternions. Alan Norton [Norton 1982]was the first to demonstrate the application of the Quaternion Juliasets made by displaying a 3D ‘slice’ of the 4D space. QuaternionJulet sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a3-dimensional projection of a cube. Despite the added complexity,it possesses an underlying smooth appearance (i.e., less interest-ing fractal detail when you zoom in compared to the 2-dimensionalversion). As we show in this paper higher-dimensional maths canbe used to create 3-dimensional Juliet set fractals. Daniel White’s‘Mandelbulb’ [White 2007] takes a different approach. He took thegeometrical properties of the ‘complex plane’ where multiplicationbecomes rotation and addition becomes movement of the plane ina particular direction and applied them to a 3- dimensional space.The concept allows the generation of striking visuals of how an ap-parently simple process can lead to highly intricate sets. There arenumbers of preceding studies about properties of the fractals andJulia sets and how to implement them in computer graphics [Crane2005]. Similar to the existing results we ray-trace the interpolationJulia set for making shading-reflecting like effect and apply the pro-posed method into the stereographic projection of complex space toobtain a kind of uneven and shaded surfaces.

3 MethodJulia Set Fractals Gaston Julia was the French mathematicianwho made the exciting discovery of Julia Sets in 1918 [Mandelbrot1983]. Julia sets are a popular fractal formed using formula itera-tions. The Julia set is the union of all points z in an iterated complexfunction f(z) that do not diverge as the number of iterations of thefunction approach infinity (set of points form a ‘filled’ in volume).Julia sets forms a boundary using the the filled-in set. There are alarge range of functions that encompass Julia sets, however, in thispaper, we employ the popular quadratic expression given in Equa-

Figure 3: Experimental - Exploring visual possibilitiesthrough random parameters. Parameter constant value fromtop left to bottom right: c=(-0.10,0.8,-0.26,0.15)(-023,-0.38,-0.86,0.64); c=(-0.67,-0.54,-0.07,0.02)(0.06,-0.53,0.15,-0.27); c=(-0.98,0.27,0.40,0.20)(-0.37,-0.41,-0.24,-0.34); c=(0.35,0.78,0.85,-0.57)(-0.22,0.06,-0.46,0.05); c=(-0.17,-0.28,0.11,0.8)(0.06,0.44,-0.66,0.06); c=(-0.04,0.95,0.4,-0.43)(0.09,-0.45,-0.27,-0.31).

tion 1

f(z) = zn+1 = z2n + c (1)

where z represents a variable of the form a + bi (a and b are real-numbers with i an imaginary number). The value c is also a com-plex number and is constant for each unique Julia. Hence, as eachvalue of c gives a different Julia set there are an infinite numberof sets. In an uncomplicated case, the value a + bi represents a2-dimensional complex plane with each starting point z0 for the it-erative series representing a pixel position. For each starting valuethere are two possibilities for what will happen, either (1) as n in-creases f(z) will tend towards infinity or (2) the value will staywithin a bounded value. Points which do not stay within the bound-ing limit are said to be in the escape set, while all other points aretermed prisoners (prisoner set). The common boundary betweenthe escape set and the prisoner set is called the Julia set (defined fora particular c).

Quaternion Julia Sets A quaternion is represented by two fun-damental parts, a scalar real part (w) and an imaginary vector part(x, y, z). We can extend the recursive Julia set algorithm given inEquation 1 to use quaternions as given in Equation 3. However,we need the squared quaternion, which is given in Equation 2. Thesquare of a quaternion is taken from previous quaternion geometricresearch [Hart et al. 1989; Hart et al. 1990] with Julia sets (takesadvantage of the trigonometric properties of quaternions).

q = (~v, w) = (x, y, z, w)

q2 = (x2 − y2 − z2 − w2, 2xy, 2xz, 2xw)(2)

The forward Julia iteration is given by Equation 3:

qn+1 = q2n + c (3)

Dual-Quaternion Julia Sets Dual-quaternion Julia sets is thesame as ordinary Julia sets except that dual-quaternions are usedinstead of complex numbers. Generation of the fractal , the func-tion ζn+1 = f(ζ) is iterated and if the series is bounded when n

Page 3: Dual-Quaternion Julia Fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a 3-dimensional

Figure 4: Level of Detail - Trade-off between additional detail and computational cost - number of sample points and maximum iterations(n) for determining if a point is inside or outside the Julia set.

tends to infinity then the dual-quaternion ζ0 belongs to the Julia set.

ζ = qa + qbε

ζ2 = q2a + q2bε(4)

where a and b are the dual-quaternion parameters (i.e., real anddual number represented as two quaternions). We apply Equation2 to calculate the ‘squaring’ of each component and add the dual-quaternion constant to achieve each forward iteration given by theJulia Equation 5.

ζn+1 = ζ2n + c (5)

where ζ and c are dual-quaternions; n is the number of iterations,typically between 6 and 15 (Figure 1 shows the impact of modifyingthe number of iterations on the level of detail).

Practical Considerations Impossible to iterate each samplepoint to infinity - hence, a suitable maximum iteration range is de-fined. If the series has not reached the escape limit by then, thepoint is considered inside the set. In practice, a fairly small num-ber of iterations gives reasonably good results [Hart et al. 1989](e.g., less than 10). However, the more iterations the more accuratethe fractal surface. As shown in Figure 4, the more iterations andthe finer the resolution provide additional detail for the geometricmodel at increased computational cost.

Dimension Reduction Dual-quaternion Julia sets are in 8-dimensional space. How to visualize the dual-quaternion Julia setin 3-dimensional space. We need to map the 8-dimensions into3-dimensional space. There are two approaches: (1) render a sin-gle 3-dimensional slice of the dual-quaternion space or (2) projectthe dual-quaternion space onto 3-dimensions to see a 3-dimensionalshadow of the Julia set. The approach used in this paper is to inter-sect the dual-quaternion space with a plane; essentially making fiveof the dual-quaternion components (dimensions) constant values.

Ray-Marching Reduce the computational cost of testing everypoint in the 3-dimensional space. Slow to generate a model of ac-ceptable granularity in a reasonable space of time. For example, seecomparisons with a Voxel-based render shown in Figure 6. To offera fast and efficient visualization solution, we utilize a ray-marchingalgorithm. The ray-marching algorithm is able to produce high-quality detailed renders of the dual-quaternion Julia set at variouslevels. We employ the distance estimation method for the Julia set[Dang et al. 2002]. This distance estimator can be used to acceleratethe ray tracing process using unbounding volumes. The estimationgives a lower-bound on the distance to the fractal from any given

point outside the fractal. While the Equation 6 provided an initialapproximation, we found the calculation from Hart et al. [Hart et al.1989] given in Equation 7 provided more aesthetically pleasing re-sults (and required less tweaking/tuning).

d ≥ α(|ζn||ζ′n|

)|ζ′n| = 2|ζn+1||ζ′n+1|

(6)

where α is analogous to the grid size and typically has a small value(e.g., ≤ 0.1). Once the lower-bound on the distance is known,we are able to step along the ray until we hit the fractal or havestepped to many times without hitting the fractal. An additionaloptimization is to have rays intersect with a sphere encapsulatingthe fractal first. This helps speed up the ray tracing algorithm toquickly discard rays that would not intersect the fractal.

d ≥ 0.5|ζn||ζ′n|

log(|ζn|) (7)

Figure 5: High-Detail - Emphasising detail within the dual-quaternion Julia set geometry by using a larger number of itera-tions. c = (-0.04,0.95,0.4,-0.43)(0.09,-0.35,-0.27,-0.31), n=15.

Page 4: Dual-Quaternion Julia Fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a 3-dimensional

Lighting/Illumination Shading is an extremely important pro-cess in creating a realistic and aesthetically pleasing image. Aswe are rendering a 3-dimensional model, lighting is crucial to visu-ally identify differences in geometric detail. We employ the Phongmodel as it is straightforward and easy to incorporate into the ray-tracing algorithm. However, the Phong model requires the surfacenormals. We calculate a rough surface normal by sampling the sur-rounding points (i.e., above, below, left and right). When a point inthe Julia set is found the four neighbouring points are also tested tosee if they are inside or outside the set. These points are requiredfor generating the neighbouring surface that allows us to computethe surface normal (~n). We calculate the divergence at each pixelby iterating several points with a small delta. While the slope at anypoint on the surface of the Julia set is undefined, closer examinationof a points surroundings, for example scanned at higher iterationand z-resolution, would reveal a different environment. An exactnormal can not be calculated, however the approximation using asample set of the surrounding points provides an acceptable surfacenormal for our experiments. The Phone illumination calculation fora single light is given below in Equation 8.

I = kaIa + kdId(~n ·~l) + ks(~r · ~v)s (8)

where I is the total illumination, k is the attenuation coefficient forthe object material (ambient, specular and diffuse), ~l is the vectorto the light, ~r is the reflected light vector (i.e., R = 2(~n(~n ·~l))−~l), ~n is the normal vector at the object surface, ~v is the vector fromthe eye point, s is the specular exponent, and Ia, Is, Id are the lightintensities.

Graphical Processing Unit (GPU) Fractal rendering has a highcomputational costs and can be parallelised easily. For example,Keenan [Crane 2005] demonstrated the generation of quaternionJulia sets using a GPU for the ray-tracing algorithm (fragmentshader). We employ a similar approach with the ray-marching al-gorithm on the GPU used to render the geometric surface of thedual-quaternion Julia set.

4 Experimental ResultsParameter Tuning/Experimenting Figure 1 and Figure 7 showsome preliminary experimental results through parameter tun-ing/changing. As shown in Figure 4, adjusting the maximum num-ber of iterations and the in/out Julia set range allows us to captureadditional low-level details (i.e., at additional computational costand the moire effect due to the problem of too much detail in theimage/model). The simulations provide a strong correlation in styleand appearance to quaternion Julia sets (twirling candy floss ap-pearance). While the dual-quaternion space has a clearly definedsum, product and norm - the distance squared estimator in thispaper uses a quaternion calculation for the real and dual compo-nents which means it still has a strong coupling to a 4-dimensionalspace. Of course, this leaves the door open for further exploratorywork into other distance square estimator variations using dual-quaternion algebra.

5 Conclusion/DiscussionIn conclusion, fractals are a powerful tool for generating interestingpatterns. Extending the Julia set to higher dimensions allows us toform shapes with strong stereoscopic properties which exhibit in-tertwisting, irregular fringes and transformations. In this paper, weemployed dual-quaternion algebra to realize a 3-dimensional fractalusing the Julia set. When trying to capture the dimensional prop-erties of dual-quaternions using Julia sets, we rendered snapshotsfrom different sample points. There is still lot to be discoveredabout Julia sets in the dual-quaternion space. The rules defined by

Figure 6: Voxel vs Ray-Traced - Initial prototypes tried to utilizeVoxels on the GPU [Zadick et al. 2016] (i.e., geometry shader) - tocreate a real-time prototyping tool for experimentation. However, aray-tracing algorithm was more suitable for emphasising detail dueto computational/resolution limits. Top ray-traced image, middle50× 50× 50 voxel grid and bottom 100× 100× 100 voxel grid.

dual-quaternion algebra are applicable to Julia set to extend the con-cept to multiple dimensions. Techniques for visualizing the higherdimensional Julia set as a three dimensional object. We describeour attempt to extend the already established technique of ray trac-ing Julia sets to incorporate dual-quaternion properties. We alsodiscussed optimization algorithm for reducing computational timesthrough exploitation of the graphical processing unit (allowing forexploratory prototyping). The scientific value of these images canbe questioned, but they possess aesthetic factors of fascination.

ReferencesCLIFFORD, W. K. 1882. Mathematical papers. Macmillan and

Company. 1CRANE, K., 2005. Ray tracing quaternion julia sets on the gpu. 1,

2, 4DANG, Y., KAUFFMAN, L. H., AND SANDIN, D. J. 2002. Hy-

percomplex Iterations: Distance Estimation and Higher Dimen-

Page 5: Dual-Quaternion Julia Fractals12pt22pt-5pt sets is actually a projection from 4 dimensions to 3 dimen-sions, akin to how a 2-dimensional square is a presentation of a 3-dimensional

Figure 7: Early Experiments - Poorly defined distance parameters- exploring visual possibilities through random values.

sional Fractals, vol. 1. World Scientific. 3FREY, I. Z., AND HERZEG, I. 2011. Spherical skinning with dual

quaternions and qtangents. In SIGGRAPH Talks, 11. 1HART, J. C., SANDIN, D. J., AND KAUFFMAN, L. H. 1989. Ray

tracing deterministic 3-d fractals. In ACM SIGGRAPH ComputerGraphics, vol. 23, ACM, 289–296. 2, 3

HART, J. C., KAUFFMAN, L. H., AND SANDIN, D. J. 1990. In-teractive visualization of quaternion julia sets. In Proceedings ofthe 1st conference on Visualization’90, IEEE Computer SocietyPress, 209–218. 2

KAVAN, L., COLLINS, S., ZARA, J., AND O’SULLIVAN, C. 2008.Geometric skinning with approximate dual quaternion blending.ACM Transactions on Graphics (TOG) 27, 4, 105. 1

KE, Y., AND PANDURANGA, E. S. 1990. A journey into thefourth dimension. In Proceedings of the 1st conference on Visu-alization’90, IEEE Computer Society Press, 219–229. 1

KENWRIGHT, B. 2012. A beginners guide to dual-quaternions:What they are, how they work, and how to use them for 3d char-acter hierarchies. In The 20th International Conference on Com-puter Graphics, Visualization and Computer Vision, WSCG 2012Communication Proceedings, 1–13. 1, 2, 5

KUANG, Y., MAO, A., LI, G., AND XIONG, Y. 2011. A strategy ofreal-time animation of clothed body movement. In MultimediaTechnology (ICMT), 2011 International Conference on, IEEE,4793–4797. 1

MANDELBROT, B. B. 1983. The fractal geometry of nature,vol. 173. WH freeman New York. 2

NORTON, A. 1982. Generation and display of geometric fractalsin 3-d. In ACM SIGGRAPH Computer Graphics, vol. 16, ACM,61–67. 2

PICKOVER, C. A. 1998. Chaos and Fractals: A computer graphi-cal journey. Elsevier. 1

SELIG, J. 2010. Rational interpolation of rigid-body motions. InAdvances in the Theory of Control, Signals and Systems withPhysical Modeling. Springer, 213–224. 1

VASILAKIS, A., AND FUDOS, I. 2009. Skeleton-based rigid skin-ning for character animation. In GRAPP, 302–308. 1

WANG, X., AND YU, C. 2010. Feedback linearization regula-tor with coupled attitude and translation dynamics based on unitdual quaternion. In Intelligent Control (ISIC), 2010 IEEE Inter-national Symposium on, IEEE, 2380–2384. 1

WHITE, D. 2007. www.fractalforums.com -www.skytopia.com - search for mandelbulb section(http://www.skytopia.com/project/fractal/mandelbulb.html).In (Accessed Online 06/02/2018). 2

ZADICK, J., KENWRIGHT, B., AND MITCHELL, K. 2016. In-tegrating real-time fluid simulation with a voxel engine. TheComputer Games Journal 5, 1-2, 55–64. 4

Figure 8: High-Detail - Emphasising detail within the dual-quaternion Julia set geometry by using a larger number of itera-tions. c = (-0.39054,-0.58679,0,0)(0.0,0.5632,0,0.05), n=15.

A AppendixQuaternion Operations The quaternions were discovered byHamilton in 1843 as a method of performing 3-D multiplication[Kenwright 2012]. A quaternion q is given by Equation 9. Sincewe are combining quaternions with dual number theory, we givethe elementary quaternion arithmetic operations.

q = [s,~v], (qw, qx, qy, qz) (9)

where s scalar part is s = qw and vector part is ~v = (qx, qy, qz).The four-tuple of independent real values assigned to one real axisand three orthonormal imaginary axes: i, j, k.

• addition: q1 + q2 = [s1, ~v1] + [s2, ~v2] = [s1 + s2, ~v1 + ~v2]• additive identity: 0 = [0, 0]• scalar multiplication: kq = [ks, k~v]• multiplication: q1q2 = [s1, ~v1][s2, ~v2] = [s1s2−~v1 ·~v2, s1~v2+s2~v1 + ~v1 × ~v2]

• multiplication identity: 1 = [1, 0]• dot product: q1 · q2 = (q1xq2x + q1yq2y + q1zq2z + q1wq2w)

• magnitude: ||q|| =√

(s2 + ||~v||2)• conjugate q∗ = [s,−~v]

Dual-Quaternion Operations The elementary arithmetic opera-tions necessary for us to use dual-quaternions.

• dual-quaternion: ζ = qr + qdε• scalar multiplication: sζ = sqr + sqdε• addition: ζ1 + ζ2 = qr1 + qr1 + (qd1 + qd2)ε• multiplication: ζ1ζ2 = qr1 + qr2 + (qr1qd2 + qd1qr2)ε• conjugate: ζ∗ = q∗r + q∗dε• magnitude: ||ζ|| = ζζ∗where qr and qd indicate the real and dual part of a dual-quaternion.