About StarFractal v1.0

StarFractal is a Java Applet project displaying the Mandelbrot fractal set using exponential color smoothing. This page addresses the following questions one may have regarding the program.

What is the Mandelbrot set?

The Mandelbrot set is shown below in Figure 1.

Figure 1. Mandelbrot set

The Mandelbrot set, named after Benoit Mandelbrot, is a set of points in the complex plane whose boundary defines a fractal. The image in Figure 1 is generated pixel by pixel with each pixel representing a point, c, in the complex plane. Figure 2 illustrates this concept by overlaying the complex plane's real and imaginary axes on top of the fractal image.

Figure 2. Complex plane of the Mandelbrot set

A point c in the complex plane is given by:

c = (x, y) = x + i * y (1)

where i is the imaginary unit, x is the real part of the complex value c, and y is the imaginary part of the complex value c. The boundary of the Mandelbrot set is defined by the set of complex points, c, for which iteration of the complex quadratic polynomial:


remains bounded, i.e. does not lead to infinity in magnitude. Each pixel representing a point in the complex plane is iterated as described in equation 2 with z0 = 0. After each iteration, |z| is tested against the boundary limit, which is 2 for the Mandelbrot set. If |z| > 2, then the point is outside of the Mandelbrot set.

What is a fractal?

A fractal is defined as:

A geometric pattern that is repeated at ever smaller scales to produce irregular shapes and surfaces that cannot be represented by classical geometry.

Figure 3 below shows a magnified view of the Mandelbrot fractal.

Figure 3. Magnified view #1 of the Mandelbrot fractal

If the view is magnified further as shown below in Figure 4, one can see that a geometric pattern is repeating at smaller scales in irregular shapes.

Figure 4. Magnified view #2 of the Mandelbrot fractal

Clearly, the Mandelbrot set fits the definition of a fractal as given above.

What is exponential color smoothing?

Figures 1 through 4 above display the fractal image using exponential color smoothing. During the iteration process of each pixel in the fractal map using equation 2 above, if a point goes outside the boundary limit, then that point is outside of the fractal boundary. The coloring of the point is determined by the iteration at which the point went outside of the fractal boundary, i.e. the rate at which the point trended to infinity. If the iteration number directly determined the coloring of the fractal image, i.e. if exponential color smoothing were not implemented, then the result would be that shown below in Figure 5.

Figure 5. Mandelbrot fractal using integer color mapping

Note the discreet solid color layers in Figure 5 when compared to the exponential color smoothing used in Figure 1. In order to achieve the exponential color smoothing of Figure 1, the following equation is evaluated over the N+1 iterations (n = 0 to N) required for a point to exceed the boundary limit:


The value of C is then mapped onto a color table. The result is a smoothed image as in Figure 1 that does not display discreet layers of solid color.

Check out StarFractal on YouTube

Copyright © 2008 Pierre Dufilie IV. All Rights Reserved.