Look into the Face of Infinity
My program
Face of Infinity is an example of what is known as fractal generation
software; sometimes, more colorfully referred to as a "zoomer". The fractal that
the program explores is the fractal forming the boundary of the famous
Mandelbrot set. This is the set of all the numbers
in the complex plane that converge to a limiting value when they are subjected to
a simple procedure that I will call the Mandelbrot algorithm. The complex plane
is a collection of, what are called, imaginary numbers Z=X+iY that have a real part,
X, and an imaginary part, iY. (It's called an imaginary part because i
is an imaginary quantity =
Ö-1.) The complex plane
is a way of graphically representing the Z numbers by plotting X along one axis
(say, the horizontal axis) and Y along a perpendicular axis (say, the vertical axis).
The Mandelbrot algorithm consists of, starting with a value of Z= C anywhere
in the complex plane, repeatedly forming the quantity Z = Z²+C during a number of
iterations, n, and checking at each iteration n to see if Z is converging to a limiting
value or diverging to an infinite value. If C leads to convergence, C belongs to
the Mandelbrot set. The boundary of the Mandelbrot set are the values of C that
are diverging to infinity, which they do at various rates. The fractal pattern is
simply the pattern of the times (iterations) it took for each value of C to escape
(diverge).
The program maps a portion of the complex plane into a display window equating the
vertical and horizontal coordinates of each pixel with values of X and Y and
forming Z = X+iY. Starting in the upper left hand corner it applies the Mandelbrot
algorithm to each pixel (Z=C) in the display and keeps track of whether it diverges
or converges. If it converges (belongs to the Mandelbrot set), it colors that pixel
white. If it diverges, it colors the pixel with a color that depends on the value
of n, the time it took it to escape. The program explores the boundary by mapping
(displaying) a smaller and smaller portion of the complex plane. It acts exactly
like a microscope (hence, the nickname "zoomer"). Each portion of the boundary viewed
with a specific magnification and using a specific coloring scheme will display
a unique, highly complex and usually quite beautiful fractal pattern.
|
Additional video clips are
available here.
Because the boundary of the Mandelbrot set is a fractal, it has two distinguishing features: it is infinite in extent and self-similar in structure. To appreciate the infinite nature of the boundary, think about trying to define the length of the coastline ( the boundary between land and water) of an island like Great Britain. It obviously depends on the scale of the map you use. For a very large scale map you could lay a string around the edge and come up with a figure. If you use a smaller scale map that had all the bays an inlets outlined, you would come up with a larger figure. Now imagine you had a map that showed each rock or even every grain of sand and the length becomes very large indeed. (For a magnification corresponding to
a 1:10,000 map, the length of the main island of Great Britain is about 11,073 miles.) Because of the mathematical nature of the Mandelbrot boundary, you can decrease the scale of the "map" forever and the length of the boundary will increase forever.
It is infinite. The boundary of the Mandelbrot set that you see as the white object
in the image above is larger than the observable universe. The self-similarity feature
means that as you increase the magnification you will continue to find patterns
that are similar - not identical, but very similar, at all scales. As you zoom down
into the boundary of the Mandelbrot set you continue to find smaller and smaller
replicas of the original set that are themselves infinite in extent. As you explore
this infinite universe of complex and beautiful patterns it is sometimes hard to
remember that all of this is created at every scale by applying the same simple
procedure, expressed in mathematical form as Z|->Z²+ C.
All microscopes have some maximum magnification power (resolution). In the case
of the Mandelbrot algorithm it is set by the smallest difference in successive values
of Z that the computer can resolve. The program
Face of Infinity uses 64
bit numbers resulting in a loss of resolution (pixelization of the image begins)
at magnifications of about 2^46 (about 70 trillionX). This is a long way from
infinity but it's still not bad. If an optical microscope had this resolution the
image of a single proton (Hydrogen nucleus) would fill the display window.
In the 30 years or so since the Mandelbrot boundary was first drawn on a computer
a number of sophisticated zoomer programs have been developed. Some of them zoom
in smoothly and continuously to magnifications greater than 2^46. Perhaps the most
famous of them is
Xaos. It has evolved over many years and is looked after by a large group
of volunteers. By contrast,
Face of Infinity, definitely a one person effort,
seems somewhat crude. But its unique coloring schemes and perfect reproducibility
give it, I hope, a certain charm. Its development did give me valuable experience
at programming computer graphics, which is why I undertook the project in the first
place.