Metafract is a program for viewing fractals. It can display the Mandelbrot and Julia sets.

It was created as a visual "toy" for my final high school exam. However, the poor performance of the initial version disgusted me so much that I decided to work on it a bit more, looking for alternative and possibly faster implementations. I never went much far and finally lost interest on the thing, blaming the graphics library I was using (SDL) as the main speed bottleneck.

The Julia set can be controlled by moving the mouse inside the window, which sets one of the parameters for generating the set; it's a beautiful effect. Each frame is rendered using a bruteforce pixel-by-pixel algorithm, therefore a fast machine is required to get a smooth animation. This definitely deserved more research and a faster algorithm at the time.

The Mandelbrot set can be rendered with three algorithms:

- The most "stupid" one, which evaluates the series pixel-by-pixel looking for points of convergence. Very slow and boring.
- A variant of the same method which renders interlaced pixel rows, giving the impression of a picture that slowly "improves" in time.
- A smart algorithm that tracks boundaries of areas with constant color and then fills the whole areas without calculating the pixels inside. It it much faster than the others and produces a beautiful rendering animation. This is the default method of rendering the Mandelbrot set.

You can get the sources using the link below. They are set up to build on
GNU/Linux systems (just type *make* and you're done), but they could work on other
platforms too since they are based on SDL.

Get MetaFract (2004-12-9 version)

The following pictures represent the Mandelbrot set as rendered by Metafract. Some are so big because I used to get them from the net every time I was given access to some high resolution printer :-)

The net is full of fractal freaks. A "professional" open source fractal generator is XaoS, a beautiful and fast program full of interesting effects in addition to the basic fractal generation. Here is a nice Java applet for viewing the Mandelbrot set in real time, together with interesting comments on rendering techniques.

Last update: 2007-12-26