A fascination – and a free fractal generator
Fractals never fail to fascinate. If you aren’t just gazing at their unearthly beauty, you ponder the mathematics behind them… and then you can’t help wondering how such simple math formulas can give rise to such intricacy. What is it about the fabric of the cosmos that makes it possible for a short, ugly equation to generate the exuberant beauty of the Mandelbrot set? Or is it all just in the way our brains are wired?

My love affair with fractals started in 1985, when Scientific American magazine ran a cover story on the Mandelbrot set. Gazing at this in print was fine as far as it went, but the thing to do was to generate it oneself, and in those days we had little access to the required computing power… but we sure tried. My coworker Amir mailed me a paper printout — shown here — with a Julia set he managed to render. For my part, at the time I was playing with the Logo language on my C-64, trying to teach it to my kids (accepted wisdom was that Logo is great for kids; but my own children evidently hadn’t read that, for they grasped Logo rapidly, then dumped it in favor of Basic…) Logo was wonderfully suited to recursive routines, as well as to vector graphics, so I had a good time experimenting with fractals by doing recursive “turtle graphics”; you can see two examples of the outcome below.


And then came the Commodore Amiga, that hacker’s dream machine. Now I had the power to explore the Mandelbrot set. I used a number of public domain programs, notably MSE and MandelVroom. Below you see the achievable quality (this was stretched across an entire screen, mind you). At 320×200 and 32 colors, a far cry from today’s tools — but compared to the pictures seen above…

All this was slow work, for it could take an hour to render a single image like the one you see here, dot by dot. But it was worth it, if only for the suspense as the image emerged before one’s eyes!
The January 1988 issue of Byte magazine had an article on “A better way to compress images”, by Barnsley and Sloan. This was my first glimpse of Iterated Function Systems, and of Barnsley’s technique of tiling distorted small copies of an image to cover the original image precisely, thereby identifying the transformations that would serve to reconstruct the image later. When I read that, and saw the figure reproduced below (left), I immediately knew I wanted to play with this “Collage theorem” directly! It was so obviously going to be fun, using a mouse-driven interface to move, stretch and distort the copies of the fractal that create the Collage and see the effect on the attractor. To my surprise, none of the IFS programs I’ve seen in the public domain ever allowed that (they’d all represent the transformations schematically with triangles or rectangles, never with the actual image). So I knew I’d have to do something about that myself. It took years, but eventually I did; the article’s leaf collage that had triggered my interest, generated in my very own program, is shown below at the right.


That program was IFS Lab, my tool for generating fractals using the Collage Theorem, whose latest version is available for download here. The original version was written in C on the Commodore Amiga, a project which I finished in 1992; the Amiga was eminently suited to Graphics wizardry, but I wasn’t… and I’d never written a program of this size before. The result was shared in the Fred Fish PD library, on disk 696 (that’s floppy disk 696… in those pre-web days freeware was distributed on physical media).
Then the Amiga era ended, and I moved my hobby to the IBM PC… and I missed my Collage fun. So in 1998 I decided to port IFS Lab, this time in C++ (I didn’t know C++, so here was my opportunity to learn it). The outcome, seven years later, was more than a port; it is faster, more flexible, and with better graphics than the original. The basic user interface is the same, though — no need to mess with a good thing…
You can see the two programs’ screenshots below — similar indeed, but you can see the progress the industry has delivered in screen resolution and user interface “look and feel” in the course of a mere dozen years.


So what did I do once I’ve released IFS Lab to the public domain on the shareware sites that were then in use? Well, I had some time at last to attend to the other programming projects on my list — and during coffee breaks I could always try to create ever more lovely IFS’s… or use the superior programs that have come out over the years (my favorite is Fractal eXtreme) to explore the Mandelbrot set in all its glory. Isn’t it breathtaking?
Click here to learn about, and download, IFS Lab.