About the Cover: A Genealogy of Fractal Code

By Gary Singh
Published 04/08/2016
Share this on:

fractals

“In my opinion, all types of fractals are fun to explore.” — Ron Barnett

What did someone with a PhD in biochemistry do in the 1980s when he wasn’t playing banjo or trumpet? If he could program in DOS, he eventually discovered fractals. Ron Barnett always harbored an interest in art—he took drawing classes when he was young—but his college life was simply too jammed with academic and scientific research to include any serious visual art activities. He had to wait.

Then Barnett learned about fractals and everything changed. When Benoit Mandlebrot coined the term “fractal” in the mid-1970s, he changed the way people viewed the world. A decade later, Bill Gates came along and changed the world in his own way. MS-DOS provided a working environment for what’s now one of the oldest freeware programs still being maintained: Fractint. Originally published by the Stone Soup Group, Fractint debuted on a 386 PC in the late 1980s, back in the days of numeric Compuserve email addresses and Byte magazine’s online public storage. The program still retains an old-school historical charm of sorts, retro or not. As a result, Fractint paved the way for the course of Barnett’s creative life.

“It provided a simple way to look at fractal functions and generate fractal images,” says Barnett, “and it’s still available and in use.”

Once the mid-1990s came around, Ultrafractal emerged and Barnett jumped on board. It provided enough backward compatibility with Fractint for him to dive right in. An object-oriented environment with a modified C++ syntax, Ultrafractal made for good reusability of code.

“I have 16.9 Mbytes of code in the [Ultrafractal] public database,” says Barnett, who doesn’t appear to have stopped crunching code in 25 years. His creative life has evolved right alongside the proliferation and maturing of fractal software over the last quarter-century. Exploring his work is like going back in time, making one wonder how much the code has evolved over the years. It’s like code as genealogy.

Coding the Environment

 sphere inversion
Figure 1. Much like the cover image, this is a sphere inversion, which maps the points and objects on the outside of a sphere to the inside of the sphere, and vice versa.

Barnett generated the cover image, Ice Land, using Ultrafractal and his own code. Much like Astroid (see Figure 1), the image is a sphere inversion, which maps the points and objects on the outside of a sphere to the inside of the sphere, and vice versa. As iterations of the whole system unfold, the distribution of the objects becomes insanely complex. If the objects are even partially transparent and have a refractive index larger than one, the self-similarity seems to turn back on itself from every direction. After an extremely large number of iterations, the spheres themselves become fractally distributed across the 3D space.

Astroid. Much like the cover image, Ice Land, this is a sphere inversion, which maps the points and objects on the outside of a sphere to the inside of the sphere, and vice versa.

Barnett’s code includes a variety of parameters, including ray tracing, light positioning, and color in addition to choices of refractive index and transparency. He positions the initial spheres on a variety of polygon vertices. In the case of Ice Land, he positioned them on the vertices of a tetrahedron. These are not the common types of fractals we find in the pop science books or mass-produced fractal art calendars in gift shops.

“In my opinion, all types of fractals are fun to explore,” he says. “Inversion spheres are fun because they can create such interesting objects of ice and glass.”

Ice Land is an older image, created before Ultrafractal offered object-oriented approaches. He created Astroid (see Figure 1) four years later, using objects and plug-ins, resulting in much more flexibility. The ray-tracing plug-in, for example, allows for multiple lights on each sphere, each with its own color, brightness, and positioning. Then Barnett applied multiple textures and colors, including Perlin noise.

Ikenaga Julia fractal, the image was colored using a SprottQuad strange attractor as the orbit trap
Figure 2. An Ikenaga Julia fractal, the image was colored using a SprottQuad strange attractor as the orbit trap.

Environment Lost (see Figure 2) is an Ikenaga Julia fractal, a different beast entirely. To color the image, Barnett used a SprottQuad strange attractor as the orbit trap.

Environment Lost. An Ikenaga Julia fractal, the image was colored using a SprottQuad strange attractor as the orbit trap.

“There are many types of objects that can be used as a trap,” Barnett says. “In this case, the trap is a strange attractor, which itself is a fractal.”

Thanks to more plug-ins, Barnett applied myriad texture parameters and found his desired result. On his webpage (www.hiddendimension.com), Barnett provides elaborate Ultrafractal tutorials on how to use strange attractors as orbit traps in addition to numerous other instructional pages.

Metaphorically speaking, looking deep into the image can entice the viewer to explore the entire history of the Fractint program iterating from 1989 all the way up until this image was created, as if code, time, practice, and theory were all iterative as well. Maybe this was deep in Barnett’s psyche as he created the image.

fractal consisting of five layers and is rotated and sliced to expose the hollow interior
Figure 3. The fractal consists of five layers and is rotated and sliced to expose the hollow interior.

Quaternion Dissection (see Figure 3) features ray tracing based on the work of John Hart, Daniel Sandin, and Louis Kauffman for estimating the distance from a point to a quaternion surface.1 The fractal is a quaternion Julia, which can be understood as a 4D analog of the standard Julia fractal. In mathematics, quaternions can be understood as dimensional extensions to complex number systems. They are widely used in physics.

Quaternion Dissection. The fractal consists of five layers and is rotated and sliced to expose the hollow interior.

“Many quaternions have hollow regions,” Barnett explains. “In this case, the fractal is rotated and sliced to expose the hollow interior. It is composed of five layers.”

For a more elaborate exploration, Barnett recommends the book Hypercomplex Iterations.2

Free Scripting

Currently, Barnett is exploring Kleinian groups and 3D L-systems in detail. He’s also writing extensive Ultrafractal code and creating images for exploring 3D iterated function systems (IFSs) fractals as well as various types of Mandelbulbs and Mandelboxes, fractal animations, and camera effects.

By now, Barnett has more than a quarter-century of experience in creating fractal art, so if he has a type of image in mind before he starts, he can usually arrive at a final product that resembles something close. He doesn’t randomly tweak the equations just to see what happens.

“I can usually come close with what I know and then refine the equation parameters,” he says. “I also like to explore new fractal types, at least new to me, or ‘outrageous’ parameters and see where they lead, which is a slow but definitely fun process. One of the advantages of Ultrafractal is that you can script virtually any fractal type and equation.”

References

  1. J.C. Hart, D.J. Sandin, and L.H. Kauffman, “Ray Tracing Deterministic 3-D Fractals,” Proc. 16th Ann. Conf. Computer Graphics and Interactive Techniques, 1989, pp. 289–296.
  2. Y. Dang, L.H. Kauffman, and D. Sandin, Hypercomplex Iterations: Distance Estimation and Higher Dimensional Fractals, vol. 17, series on knots and everything, World Scientific, 2002.

 


About the Author

Gary Singh lives and writes in San Jose, California.