The Buddhabrot

Friday, August 7, 2009

Ever since I got my first glimpse of computer-generated fractals, I was hooked. The Julia and Mandelbrot sets captured my imagination, and I knew I had to make my own generator. At the time all I felt comfortable programming was a TRS-80 Colour Computer 3, and I had a shaky knowledge of the complex numbers needed to calculate such fractals. My first attempts failed to properly render the Mandelbrot set, since I had not realized the need for an extra step.

When I finally got comfortable with C, I wrote another Mandelbrot generator. You can find it at the bottom of this page. It requires a pre-Mac OS X PowerPC Mac, but has some nifty optimizations I was quite proud of at the time. However, unlike some Mandelbrot generators of the time, the optimizations still just got pixels onto the screen faster, and eschewed any larger-scale optimizations. Other programmers had used techniques such as outlining boxes in the fractal, then filling them in with the colour of the border. This made calculating the fractal itself faster, but had some room for error.

When I discovered that someone had developed a new take on the Mandelbrot set, I got excited. Despite the religious connotations, I find the Buddhabrot quite aesthetically pleasing. It has a sort of ghostly appearance that appeals to my sometimes morbid bent.

How the Buddhabrot differs from the traditional Mandelbrot rendering method is that it tallies counts of how many times an iteration of the basic formula passes through a particular location. When scaled into a 256 grayscale image, the somewhat random looking points begin to take on a Mandelbrot-like image that some have likened to images of Buddha.

With a little work, the Buddhabrot can be extended into 4 dimensions. It creates what the original developer calls a Buddhabrot Hologram, or Buddhagram. You can rotate the image such that it appears to be a 3-dimensional object, and manipulating the 4th dimension allows for some further animation.

Always interested in programming my own fractal generators, I put together a version of a Buddhabrot program myself. It requires Mac OS X (not sure what minimum version, probably 10.4 or 10.5), and there are no optimizations whatsoever in it. The “Hog” control determines how much processor time the generating process will take. The settings drawer allows you to control the various parameters of the process, such as maximum iterations before each starting point’s iterations are cut off. You can also change which plane of the Buddhagram is calculated, and drag the image to other applications.

Have fun with it, I had fun making it. If you’re interested in the source code, just send me an email. If there’s enough demand, I’ll post it up here in an update.


The Idea Oubliette - Templates para novo blogger