Articles / Fractal Software

Fractal Software

Ever since I first stayed up late watching an 8-bit computer painstakingly draw a Mandelbrot set, I've been fascinated by fractals. Of course, I had to write a fractal-generating program of my own straight away; the combination of the amazingly simple math required to produce the Mandelbrot set and the amazing graphics that came out was irresistible. Clearly, I'm not alone; every programmer with even the slightest interest in math writes a fractal program at some point, and a good number of these are now available as Open Source. Here's a brief, opinionated, and decidedly non-exhaustive survey of some of the programs I've found.

Disclaimers

  1. I'm only covering programs which run under X11 on Linux.
  2. My interest in writing fractal software didn't end back in the days of the Commodore 64. I wrote Gnofract4D, another fractal program. I haven't reviewed it here, but I'm clearly not unbiased.
Project screenshot

Mandelbrot and friends

The most famous fractal is clearly the Mandelbrot Set (click here for a gentle introduction to the math). Most programs also allow you to explore a range of related functions such as the Julia set or higher powers of the Mandelbrot set, collectively known as "escape time fractals". A few provide the ability to write your own formulae, giving access to an infinite range of functions. Below, I give an overview of the programs I like best, and a quick roundup of the rest.

Fractint

Fractint is the 800lb gorilla of free fractal software. Originally developed by an ad-hoc collective of fractal enthusiasts called the Stone Soup Group, it was originally a DOS program which has since been ported to X11 as Xfractint. It is an astonishingly flexible program. You can write your own formulae, apply dozens of different options, do deep zooming, 3D, L-systems, cellular automata... the list is endless. If you're really interested in fractals, you need to get this software.

However, it has some deficiencies, mostly related to its heritage. While ostensibly an X11 program, its interface is a straight port of the original DOS text mode interface, and it can be rather hard to use. It also has trouble if your X server is set up to use more than 256 colors (I have heard rumors that this is fixed now, but can't personally get it to work). Hopefully, these problems will be resolved before long; it is still under development, though the pace has slowed considerably.

XaoS

XaoS is a well-established and popular program with its own special niche: it allows smooth realtime zooming into the image. You just hold down the mouse, and your viewpoint glides into the depths of the fractal. It's hard to explain just how much fun this is (you'll just have to try it), but the effect is magical, and works astonishingly well, even on slow computers. XaoS has a plethora of options, including unique coloring algorithms I haven't seen anywhere else and a wild pseudo-3D effect.

It has a slightly unusual GUI (a text-based menu and mouse combination). This has allowed the developers to port it to a huge variety of systems (I'm pretty sure it's the only one here with BeOS and Amiga versions). It takes a bit of getting used to, but it's very usable. Overall, it's very highly recommended!

Project screenshot

Fract-o-rama

Fract-o-rama is extremely flexible; every aspect of the image is controlled by a script written in a simple programming language. It comes with an extensive library of scripts, many of which produce fabulous images. On the downside, it's very slow compared to most fractal programs, and I had some trouble compiling it, but it's still highly recommended.

Quat

Loosely speaking, hypercomplex numbers and quaternions are to complex numbers as complex numbers are to real numbers: bigger, weirder, and more mysterious. Quat draws 3D "slices" of four-dimensional quaternion fractals. These are very unlike standard Mandelbrot images; they're like weird, writhing blobs floating in space (there's a nice gallery on the Quat Web site). Quat has a bunch of options for coloring, functions to draw, and other parameters, so there's plenty to play with.

Project screenshot

GLFract

GLFract allows you to fly around a height-field representation of a fractal in 3D. It's a lot of fun, and draws things quickly and smoothly, even on my fairly dated video card. It has relatively few options for tweaking the fractal itself, and the mouse interface is a little unintuitive, but overall, it's definitely worth a spin.

Project screenshot

Roundup

Deep Zoom is a specialized program aimed at automatically finding cool images at very high magnifications. It has no GUI and limited options, but the results can be pretty sweet, if unpredictable.

Project screenshot

A fairly standard program with a smallish number of built-in fractals, Eyefract scores with a handy colormap editing window (it uses standard Fractint colormaps, so you can use this in conjunction with several of the other listed programs) and a cool visual history. However, it has an idiosyncratic Motif-ish interface, and it freezes while drawing the fractal, which is annoying.

Project screenshot

A Java-based fractal program, FractalView draws all its fractals fullscreen. You interact with it chiefly through a set of keyboard shortcuts. While it has a fair number of options, I found it a bit hard to use, since the help screen was often illegible and there's not much feedback as to what's going on. It often became unresponsive, showing only a blank screen. Still, it's early days for FractalView, which is currently under rapid development.

Project screenshot

GFract is a pretty minimal program which can only draw the Mandelbrot and Julia sets. It does have a nice window which shows an instant preview of the corresponding Julia set to any point on the M-set.

GMandel is a distributed fractal generator. Unfortunately, I don't have a Beowulf cluster to try it on, so I don't know how well that part of it works. The fractal options are extremely limited, so unless you do have a cluster of computers, this probably won't be of much use to you.

Project screenshot

Kandel promises arbitrary precision and distributed generation, and KMandel has quite a raft of features, but I couldn't get either of them to compile with KDE3. If you have an older KDE, you may have more luck.

Kisomandel displays Mandelbrot fractals using an isometric viewpoint, similar to the 3D approach of GLFract. It has a friendly, well-polished GUI. However, the fractals it can draw are not very varied, and the end results aren't as pretty as GLFract's.

Xrsf advertises itself as "A Really Simple Fractal Generator" and is pretty much just that. It draws the Mandelbrot set (quite quickly) and allows you to zoom and pan around.

Project screenshot

MCA is a deeply weird program which calculates the Mandelbrot set iteration-by-iteration using a cellular automaton. The process is cool-looking, but MCA isn't too polished yet; you have to recompile the program just to zoom in. It would make a cool screensaver.

mbi is a set of commandline tools for creating and editing huge Mandelbrot images. However, if you want to generate any other functions, you'll have to edit the source, and some of the tools didn't seem to work for me.

L-Systems

Lindenmayer systems can be used to generate complicated fractal curves and forms (such as those of plants) from a surprisingly short set of rules by recursively applying them to a short initial string of symbols.

LPlants is a very simple and minimal program (only 400 lines of C) which interprets an L-system and outputs PostScript. The results are surprisingly lifelike. It doesn't have a GUI, and is controlled entirely by the input file.

A more expansive L-system program, L-system Explorer provides a clear, usable interface, an extensive library of examples, and a number of coloring options. It's quick, too. It's a shame you can't interrupt the system while it's drawing, though. I'd also like to be able to draw 3D L-systems. Still, it's recommended, especially if you're new to L-Systems.

Project screenshot

PFractL is a Python-based L-system program. It has a neat feature to display the grammar symbol used to generate each line segment, which might be handy for debugging L-systems. Otherwise, LSysExp is generally better.

Project screenshot

Flea is a more ambitious Ruby-based program which can create 3D L-systems either from its own .flea format or from the older (but terser) .ls format. The .flea files are actually fragments of Ruby code, so their complexity is essentially unlimited. POV-ray is required to actually render the files. The scripts needed some tweaking to work correctly, but this is definitely worth a look.

Terrain Generators

Convincing images of mountains, hills, and landscapes can be created using fairly simple fractal formulae, and these programs do just that.

Terraform

Terraform is a fully-featured terrain generator with a plethora of options for adjusting the landscape's jaggedness, height, shape, sea level, and colors. It lets you add craters, rivers, fog, trees, and backgrounds, though you can only see most of these when you render the image (which requires POV-ray). It's hours of fun.

Project screenshot

fracplanet

FracPlanet creates random fractal planets (it can do flat terrain, too, but the planets are the fun part). There are parameters to tweak to adjust glaciation, sea level, colors, etc. However, unless you badly need a round planet, you're better off with Terraform, which offers far more options. I'd like the ability to generate other kinds of planets (like cratered moons and gas giants) and have cloud cover added, but this is fun as it is.

Project screenshot

Other Programs

This is a grab-bag of other, unclassifiable programs which don't really fit into the above categories.

SINFG ("SINFG Is Not a Fractal Generator") is essentially an image synthesizer. Using it, you define a stack of layers, each of which does something weird to the image below it. The end results can be pretty interesting, though I haven't played with it enough to really get the hang of it.

Project screenshot

Short for "Pluggable Image Generator", pig is designed to be a framework for hosting different image generators. The only plugin at present is a fairly basic Mandelbrot. The project shows promise, but there's not much here yet.

Project screenshot

ElectricSheep is a unique program based on Scott Draves's "flame" fractal, an elaborate riff on the standard IFS. It collaborates with other computers over the Internet to render gorgeous animated fractals. It's best used as a SETI@home-style screensaver. The images are initially breathtaking, but I have to admit that I quickly got bored of them because they didn't change frequently enough. It's recommended if you have broadband and are tired of the built-in xscreensaver hacks.

Project screenshot

Summary

I'm actually a bit disappointed by the range of fractal software available for Linux. Each of the programs above has a few unique, cool features, but most offer fairly limited variety, and none can really challenge world-class Windows packages like UltraFractal. Fractint comes the closest in terms of features, but it really needs a makeover before it'll be comfortable to use. Hopefully, some plucky programmers will soon produce the fractal equivalent of The GIMP (which has quite a cool fractal plugin of its own, by the way); meanwhile, there's plenty of fun to be had with these diverse and fascinating fractal packages.

Recent comments

14 Oct 2007 01:14 Avatar pabs3

sinfg -> synfig
sinfg went proprietary, got renamed as synfig, was relaunched and re-released under the GNU GPL and a community has formed around it.

See here:

http://www.synfig.com

http://sf.net/projects/synfig

30 Jan 2007 07:34 Avatar dogmaticslumbers

Saving zooms as digital video files?
Do any of these programs, or any other fractal generating program, allow you to save zooms as digital video files for later viewing in a video player?

09 Jan 2007 09:03 Avatar dentaku

Java Fractal Generator
And this one gets better every few weeks:

http://freshmeat.net/projects/endlos/

23 Aug 2006 00:27 Avatar CollegeStudent

Being a College Student
Ahhh, this brings back memories of advanced computer graphics courses at the old University. :)


--

daniel _AT_ tuggle.it (http://tuggle.it)

18 Feb 2006 20:53 Avatar jammyaus

Re: WoW on Fract-o-rama


> Fract-o-rama looks really interesting.

> Great ArtWork!

You are very right Fract-o-rama is very interesting i like the greatness of the artwork

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.