Kevin Steele, Computer Science
ABSTRACT
Chaos theory and fractal science is a recently developed technology. Julia Sets, a class of deterministic fractals, have been defined and rendered using computer software in only two and four dimensions. In my Research and Creative Work Scholarship application, I proposed to develop a software system to create and render Julia Sets in more than two and four dimensions. I have completed the software, and used it to verify my definition of and render hyperdimensional Julia Sets, the images of which I have included with this report.
INTRODUCTION
Chaos theory is a recently developed science that attempts to describe the behavior of complex dynamical systems, or in other words, systems with so many changing variables that they are impossible to model with conventional mathematical equations. One interesting and useful branch of chaos theory is fractal technology. A fractal is a complex object that exhibits symmetry at many different scales. A tree, for example, can be considered a fractal since its branches resemble smaller versions of the tree. Fractals are amazingly useful in modelling natural phenomena such as mountains, rivers and clouds, and other diverse phenomena such as music, economics and physiological functions.
One special type of fractal is known as a Julia Set. Julia Sets are in the class of deterministic fractals, since they are created by completely deterministic mathematical equations. Unlike random fractals, which closely mimic many natural phenomena, deterministic fractals such as Julia Sets are better known for their mathematical complexity and aesthetic appeal.
Currently there is an abundance of computer software to create two-dimensional Julia Sets, and some to define and create four-dimensional Julia Sets. However, no attempt has been made to extend the general definition of Julia Sets to higher dimensions, and likewise no software exists to render these higher dimensional objects.
PROPOSAL
In my application for the 1994 Research and Creative Work Scholarship, I outlined a project proposal to address these deficiencies. Specifically, I proposed to develop a software system that would create and render Julia Sets in higher than two or four dimensions (hyperdimensional Julia Sets). The software would be developed on graphics workstations located in the TMCB, and used to render several still images and animations depicting hyperdimensional Julia Sets. These images and animations would then be transferred to videotape as the principal artifacts of my research.
The following sections summarize the important aspects of the software I developed, and briefly describe the artifacts produced by the software.
SYSTEM SOFTWARE
The software is composed of several independent modules, each performing a specific task, linked together to create and render the hyperdimensional Julia Sets. A few of the more important modules perform the following tasks: generate the hypercomplex number system used to create the Julia Sets, calculate the rays used for ray-casting, calculate the distance in hyperspace to the Julia Set, and perform initialization and input/output functions. Finally, a control module manages and monitors the functions of all other modules, and starts the entire process of rendering an image.
The user-interface to the system software is simple and straightforward. The user fills out a template, or form, with all the aspects of the Julia Set desired. For instance, the template contains places to specify the object’s color, size, orientation, level of detail, and clarity (point of focus). The user also specifies in the template the type of Julia Set to be created, the lighting characteristics, and the final image size.
To render the specified Julia Set, the user calls the program, passing the template file as a parameter. The Julia Set is then computed, and its image is written to a file, which can be viewed using a common graphics tool called an image viewer.
Due to the intensive nature of the Julia Set computations, the system currently generates up to only eight dimensions. The system is easily extensible to higher dimensions, but time constraints would- seriously hinder generating-all-but-the smallestof-images that use these_higher_rlimen_sion& Nevertheless, this limitation exists only in the software. The actual definition of hyperdimensional Julia Sets, which makes the software possible, is free of such delimitations.
ARTIFACTS
In order to demonstrate the functionality of the system software, I used it to create and render several still images and animations of hyperdimensional Julia Sets. These images are recorded and are on file in the Office of Research and Creative Work on two media: color plates and VHS videotape. There are four color plates included. The first shows a Mandelbrot set, a “one-page dictionary” of all Julia Sets. The remaining three depict three different Julia Sets, each labelled with its defining “c” constant (this constant is a hypercomplex number, used in the computations, which uniquely defines the Julia Set). Each image is a three-dimensional slice, or cross-section, of the complete eight-dimensional figure; the first three dimensions are mapped to our 3D viewing space.
A short, three-minute video segment is also on file. The video segment contains several still images of Julia Sets and two animations. The first animation shows a Mandelbrot Set rotating in 3D viewing space, and the second shows a Julia Set rotating in hyperspace (it appears to be folding itself in our 3D viewing space).
CONCLUSION
The system software required about four months to develop, and the color plates and videotape segment about one month to complete, loosely following my proposed schedule. I had no setbacks in the project; on the contrary, the further I progressed into the project, the more I discovered that the software would fulfill its requirements.
With the completion and demonstration of my system software, I successfully demonstrated that my definition of hyperdimensional Julia Sets has merit. While I have not provided a rigorous proof of the hypercomplex algebra or the Julia Set attributes, it is sufficient for the purpose of my project to provide visual proof of the functionality of the hyperdimensional Julia Set definition, and to provide a tool for further exploration into the hyperdimensional fractal realm.