   
Background on Ultra Fractal
  

've
been exploring fractals for many years, but only
within the past five or so years have I been pursuing them
as an art form. In that time I've been thinking about how
to create the "ultimate" fractal program. So when in late
1997 Frederik Slijkerman told me he was thinking about a
new version of his Ultra Fractal program, that it would run
in Windows, and that it would have many of the features I
was looking for, I got very excited. We talked a lot about
what the program would be like, and it turned out far, far
better than anything I had envisioned.
Ultra Fractal 2 is unlike almost every other fractal program
available. It gives you new ways to think about and explore
fractals. It is enormously flexible, yet still fairly easy
to use. (It may seem hard because of the sheer number of
features, but that's what tutorials are for.) Although it is
radically different from everything else, there are four
main differences which I'll discuss below. These differences
affect almost every aspect of the program and change how
it deals with fractals.
At its heart, UF deals only with true color images. Every
image it produces is a true color, 24bit image. Although you
can run UF from a 256color display mode, it doesn't look
very good. Almost all graphics cards for Windows can do at
least 16bit color, though, which is more than adequate.
As a true color program, UF does not have the same sense of
palettes as 256color programs. Rather than a collection of
individual colors that are used for images, UF uses the
concept of gradients. Think of gradients as a strip of
color; you choose the colors at a few key points along the
strip, and UF smoothly blends the colors between those key
points to make a nice range. You can change the gradient by
manipulating the key points, and the blend is automatically
recalculated.
Without a discrete color palette, smooth coloring techniques
become much more desirable. These are techniques which will
take advantage of the gradients to eliminate the banding that
is common in other software. Bands thus become an element an
artist must want in their image, rather than simply
being a limiting factor of the software.
This feature may not seem all that earthshattering, but it
is an absolutely necessary foundation for everything else that
is built on top of it.
The power of layers in building fractals is a hard one to
convey to someone who has never used the technique to build
images. If you have used a program like Photoshop, you will
already be familiar with layers; UF treats layers the same way.
The real power of layers, though, is in how it lets you combine
coloring techniques. Imagine for a moment that your fractal
program has a choice of only ten different ways it can color
a fractal formula. But you can combine any two of those
ways together with a 50/50 mix. If you count each combination as
a new way to color (which is effectively what it is) then you
suddenly get a lot more—45, in fact.
Ultra Fractal has a lot more than just ten ways to color
fractals, it has dozens. And it can do a lot more than simple
50/50 mixes. By putting the capability to layer fractal images
right into the fractal program, the artist can bring out rich,
subtle detail; they can build complex colorings that no singlelayer
program can create.
Of course, layering does not have to be used; there are
quite a few images in my galleries that have only one layer. But
it is such an incredible tool, I can't imagine using a piece of
fractal software without it.
Many fractal programs sport a formula parser, but Ultra Fractal
approaches this with a totally different attitude. Formula parsers
have a reputation for being slow, a sacrifice for the privilege of
being able to edit your own formulas. This may change with the
advent of UF.
The formula parser in UF was designed from the ground up to be
excruciatingly fast. First it takes each fractal formula and pulls
it apart, optimizing away unneeded expressions and taking advantage
of any special shortcuts your choice of parameters allows. Then,
it converts the formula to optimized assembly language, and runs
that.
UF's parser (or more accurately, its compiler) is so fast that
there are only two builtin fractal types that do not use it.
Everything else—every other fractal type, coloring algorithm, and
transformation formula—is a formula that is compiled on the fly.
This means that all of the fractal formulas you want to use are
available in source code form, so you can look at them and see how
they work. It means you can write formulas and have them run just
as fast as everything else. And it means lots of other people can
write formulas and exchange them easily (and, in fact, many have).
The formula compiler is even more important than it might seem,
because while other fractal programs primarily focus on the fractal
generation formula, that is not the only thing UF's compiler lets
you write formulas for. As mentioned above, there are also coloring
formulas and transformation formulas. Having so much of the fractal
generating process available in a scriptable, usereditable form
allows unprecented control and flexibility. Having these as separate
items allows, for example, a coloring formula to be written once,
and immediately used with every fractal formula already in existence.
Just as adding a layering capability expands the number of
combinations vastly, so does separating fractal, coloring, and
transformation formulas.
A program as powerful as Ultra Fractal could easily have an
overwhelmingly confusing and intimidating interface. But Frederik
has spent as much time refining the interface for UF as he has
spent working on its fractalproducing features. Interface elements
have been grouped into logical sets. Many convenience features are
present, tucked away until you need them. The program works like you
expect a Windows program to work. It even has extensive online help.
Firsttime UF users often feel a little lost, and that's understandable
because the program does a lot. But there are some good tutorials out
there, and once you learn your way around you will really start to
appreciate what the program offers. And fractal exploring will never
be the same.

