Contents of the MANDEL.DOC file
A Mandelbrot Set Microscope
(C) 1986-1988 John L. Horn
Table of Contents
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Required Hardware . . . . . . . . . . . . . . . . . . . . . 5
Program Versions - FREEMAND and MANDEL . . . . . . . . . . . 5
Section 1 - The MANDEL Program . . . . . . . . . . . . . . . 6
Understanding the Mandelbrot Set . . . . . . . . . . . . . 6
Understanding the Julia Set . . . . . . . . . . . . . . . 7
Starting the MANDEL Program (Mandel) . . . . . . . . . 7
The MANDEL Screen . . . . . . . . . . . . . . . . . . . . 8
Running MANDEL . . . . . . . . . . . . . . . . . . . . 8
Loading an Old Picture (Load) . . . . . . . . . . 8
Starting a New Picture (Mark, CURSOR, and Go) . . 8
(Coords) . . . . . . . . . . 8
New Picture Options (COUNT and NAME) . . . . . 9
Finding a Picture (Find) . . . . . . . . . . 9
(Ancestors) . . . . . . . . 9
Printing a Picture (Print) . . . . . . . . . . 10
Bands (Bands) . . . . . . . . . . 10
Ending the Program (Quit) . . . . . . . . . . . 10
Julia Sets . . . . . . . . . . . . . . . . . . . . . . . . 10
Turning Julia On (Julia) . . . . . . . . . . 10
The Julia Seed (Seed) . . . . . . . . . . . 10
Finding a Seed (Seed Find) . . . . . . . . 10
Setting a New Seed (Seed Set) . . . . . . . . . 10
Runtime Options . . . . . . . . . . . . . . . . . . . . 11
Ending the Program (Quit) . . . . . . . . . . 11
Temporary Program Exits (Dos) . . . . . . . . . . 11
Aborting a Picture (Abort) . . . . . . . . . . 11
Bands (Bands) . . . . . . . . . . 12
Where to Explore . . . . . . . . . . . . . . . . . . . . 12
Compatibility With Previous MANDEL Versions . . . . . . . 12
Section 2 - The SHOW Program . . . . . . . . . . . . . . . . 13
Starting the SHOW Program (SHOW name) . . . . . . . . 13
SHOW Program Options . . . . . . . . . . . . . . . . . . 13
Rainbow Animation (R) . . . . . . . . . . . . 13
Lightning Animation (L) . . . . . . . . . . . . 13
Normal Picture (N) . . . . . . . . . . . . 13
Print Picture (P) . . . . . . . . . . . . 13
Quit (Q) . . . . . . . . . . . . 14
Next Picture (any other key) . . . . . . 14
Changing the Color Palette . . . . . . . . . . . . . 14
Section 3 - The COLOR Program . . . . . . . . . . . . . . . 15
What It Does . . . . . . . . . . . . . . . . . . . . . . 15
How It Works . . . . . . . . . . . . . . . . . . . . . . 15
Section 4 - The MOVIE Program . . . . . . . . . . . . . . . 16
What It Does . . . . . . . . . . . . . . . . . . . . . . 16
How It Works . . . . . . . . . . . . . . . . . . . . . . 16
Order Form . . . . . . . . . . . . . . . . . . . . . . . . . 18
The MANDEL program generates pictures of the Mandelbrot set, a
mathematical entity that has been described as "the most
complicated object in mathematics." The MANDEL program was
inspired by an article presented in the August 1985 issue of
Scientific American. It is difficult to explain the Mandelbrot
set, and it is hard to improve on the description given in
"The Mandelbrot set broods in silent complexity at the center
of numbers called the complex plane. When a certain
operation is applied repeatedly to the numbers, the ones
outside the set flee to infinity. The numbers inside remain
to drift or dance about. Close to the boundary minutely
choreographed wanderings mark the onset of instability. Here
is an infinite regress of detail that astonishes us with its
variety, its complexity and its strange beauty.
From a distant vantage the set resembles a squat,
wart-covered figure eight lying on its side. The inside of
the figure is ominously black. Surrounding it is a halo
colored electric white, which gives way to deep blues and
blacks in the outer reaches of the plane.
Approaching the Mandelbrot set, one finds that each wart is a
tiny figure shaped much like the parent set. Zooming in for
a close look at one of the tiny figures, however, opens up an
entirely different pattern: a riot of organic-looking
tendrils and curlicues sweeps out in whorls and rows.
Magnifying a curlicue reveals yet another scene: it is made
up of pairs of whorls joined by bridges of filigree. A
magnified bridge turns out to have two curlicues.
The magnified version is not quite the same Mandelbrot set.
As the zoom continues, such objects seem to reappear, but a
closer look always turns up differences. Things go on this
way forever, infinitely various and frighteningly lovely."
IBM PC, PC/XT or PC/AT or compatible required
with 128K of memory
IBM Enhanced Graphics Adaptor required
with 128K of memory, or compatible
DOS Version 2.xx or above required
Math Coprocessor recommended
Hard Disk recommended
Because the fractal algorithms rely heavily on floating-point
calculations, the performance of the program is greatly improved
by using a math chip. The entire Mandelbrot set (count = 30)
takes about 10 minutes to generate on a PC with an 8087, but
nearly 7 hours without the math chip. Some of the more
interesting pictures take four hours or so even with the math
chip, which means they would take several without it.
A hard disk is recommended because each stored picture takes
about 112K of disk space. You'll find that any kind of file
compression utility (e.g. ARC) will reduce a picture to around
10K of disk space, so if space is limited I recommend you use
some kind of file compression.
PROGRAM VERSIONS - FREEMAND and MANDEL
There are two versions of the Mandelbrot program: FREEMAND and
MANDEL. These programs are the same except that FREEMAND does
not allow you to save the pictures you create.
All of the programs described in this manual are the copyrighted
property of John L. Horn. However, except for the MANDEL
program, all of the programs described here are also in the
"public domain", i.e. you are free to use, copy, and distribute
them provided that no fee is charged, and provided that the
programs are not modified in any way.
The MANDEL program may be purchased for $20.00. To order, please
complete the form at the end of this manual.
UNDERSTANDING THE MANDELBROT SET
In order to be able to use the MANDEL program effectively, it is
necessary to have a general understanding of how the program
works. Here is logic the program uses to generate a picture:
1) Select a point in space. Set TIMES = 0.
2) "Mandel" the point.
3) Is the "result" too big or have we "mandeled" this point
NO - increment TIMES and repeat step 2.
YES - assign it a color based on the value of TIMES:
choose black if TIMES = COUNT. Move on to the
4) Select next point and repeat
A "point" is a position in the picture displayed on the screen.
The Mandelbrot algorithm uses the coordinates of this point to
calculate the "result" of step (3). The useful property of the
Mandelbrot equation is that some points can be "mandeled"
countless times without the result being large, while other
points rapidly yield a large result. The MANDEL program assigns
a color to each point based on how rapidly the point grows when
subjected to this algorithm.
You control which points are selected when you select the zoom
window. You chose the value of COUNT when you begin a new
picture (see below). The practical significance of all this for
generating pictures is:
1) A larger count will give you better detail, but the
picture will take longer to generate.
2) If your picture comes out all or mostly black, you know
that either 1) the COUNT wasn't large enough, or 2) you
zoomed on an area that was truly in the Mandelbrot set.
Readers who would like to understand more fully the mathematical
basis of the Mandelbrot set are encouraged to read A.K. Dewdney's
excellent article in the August, 1985 issue of Scientific
UNDERSTANDING THE JULIA SET
The Julia set is generated in very much the same way as the
Mandelbrot set, except that there is an additional variable
involved. I call this additional variable the "seed", and
summarize the difference in the equations as follows:
mandelbrot = function( zoom_area, count )
julia = function( zoom_area, count, seed )
The "seed" is a point chosen from the same mathematical plane as
the points that generate the Mandelbrot set. Thus "the" Julia
set is actually a large family of sets: given a zoom area and a
count, there are an infinite number of different Julia sets that
can be created, just by varying the seed point.
The term "seed" usually connotes randomness. However, the seed
point's influence on the Julia set is NOT random, and in fact is
mysteriously related to the Mandelbrot set. The relationship
works as follows: Julia sets created using seeds that lie inside
the Mandelbrot set (i.e. inside the black area) will appear to be
connected, while those built on seeds lying outside the
Mandelbrot set will contain distinct islands of activity,
surrounded by a sea of uniformity.
Those who would like to understand the Mandelbrot and Julia sets
more fully are encouraged to read A.K. Dewdney's description in
the November, 1987 Scientific American.
STARTING THE MANDEL PROGRAM
To start the MANDEL program, type "mandel". A blue screen will
appear that displays the program version number, etc. Pushing
any key will display the MANDEL screen, and the main Mandelbrot
set. You can skip the blue screen and go directly to the program
by invoking mandel with a dummy option, e.g. "mandel x".
THE MANDEL SCREEN
The screen displayed on startup shows the picture "mandel.pic",
and the program options. The coordinates of the picture appear
at the top of the screen. The coordinate convention used is
| Imaginary Axis (+Y)
Y | | |
s | | |
(-X) ----------i--|--------------|-----------> Real Axis (+X)
d | | |
e | <--Xside--> |
The program options appear along the left border of the screen.
An option is selected by pressing the key that the option keyword
begins with, e.g. to select the "Quit" option, you would press
"Q". On all but the startup picture, a status line along the
bottom of the screen shows the picture name, the count, and the
time the picture took to make.
RUNNING MANDEL - SETUP OPTIONS
LOADING AN OLD PICTURE
To load an existing picture, select the "Load" option, and type
the name of the picture you want to load. Do not enter the
picture suffix ".PIC", since the program assumes this
automatically. If you load a picture that is not complete, the
program will ask you if you want to finish the picture.
STARTING A NEW PICTURE
There are two ways you can start a new picture: you can either
zoom in on an area of the picture displayed by drawing a box
around that area, or you can specify the coordinates of the new
picture directly. Normally, you would use the zoom box to select
a new picture, but being able to specify coordinates directly is
useful for reproducing pictures that someone else has told you
To produce a new picture by zooming, you begin by selecting a box
within the displayed picture. You do this by positioning the
MARK (X) and the CURSOR (+) on the diagonal corners of this box
and selecting the "Go" option.
You move the CURSOR by pushing any of the keys on the numeric
keypad. If you hold the shift key down at the same time you push
one of the numeric keypad keys, the CURSOR will move one pixel at
You move the MARK to the location of the CURSOR by selecting the
"Mark" option. Thus the procedure for selecting the zoom window
is as follows:
Move the CURSOR to one diagonal corner of the zoom box using
the keys on the numeric keypad.
Drop the MARK at this position by selecting the "Mark"
Move the CURSOR to the other diagonal corner of the zoom box.
Select the "Go" option.
NEW PICTURE OPTIONS
Once you have chosen a window to enlarge and selected the "Go"
option, you will be prompted to choose a COUNT for your picture
(see Understanding the Mandelbrot, above). The minimum (and
default) value for COUNT is 30, but you can change this value by
pressing the "up" and "down" arrows on the numeric keypad. Press
the "return" key when you're satisfied with the count.
Next, you will be prompted to enter a file name for your picture.
Since the MANDEL program automatically assigns a suffix of ".PIC"
to every picture, the file name you enter may be up to eight
characters without an extension. Press the "return" key when
you've typed the file name, and the program will begin to
generate the picture.
FINDING A PICTURE
Often when you load an old picture, you'll find yourself
wondering where it came from. The MANDEL program satisfies this
curiosity in two ways.
The "Find" option allows you to find the current picture in any
other picture that contains it. Each picture "remembers" who
it's parent was, and the "Find" option will locate the current
picture in it's parent if you don't specify some other picture
name. You can hit "Find" repeatedly to trace a picture all the
way up to it's original creator, usually MANDEL.PIC.
The "Ancest" option (short for ancestor) is similar to the "Find"
option, except that it lists the names of all the pictures that
led to the picture displayed.
PRINTING A PICTURE
You can print a picture by selecting the "Print" option. The
program is set up to print to a dot-matrix printer using Epson
print codes, which means that it will work with most dot-matrix
The "Bands" option determines how colors are assigned to points.
Banding is an attempt to work around the limitation of only
having 16 colors. You can tell whether the "Bands" option is on
by the color of the word "Bands" on the screen - all one color
means the option is on, while two colors means the option is off.
Banding will give you a more colorful picture, at the cost of
some clarity. The picture displayed on startup was created using
banding on the bottom half, so you get some idea of the banding
effect from this picture. Pictures produced with banding
generally animate better (see the SHOW program, below).
ENDING THE PROGRAM
Select the "Quit" option to end the program.
TURNING JULIA ON
The "Julia" option controls whether the Mandelbrot or Julia
equation will be used. Like the "Bands" option, "Julia" toggles
on and off: if "Julia" is lit up, then the Julia equation will
Be aware that the "Julia" value also gets changed by loading
pictures, i.e. it gets turned on by loading a Julia picture, and
turned back off by loading a Mandelbrot picture. If you want to
apply the Julia equation to a Mandelbrot picture, you must toggle
Julia on after loading the Mandelbrot picture.
THE JULIA SEED
The "Seed" option allows you to either find the seed point of an
existing Julia set, or to set the seed value to be used to create
a new Julia set.
The "Seed-Find" option loads the master picture MANDEL.PIC, then
locates the seed in MANDEL.PIC. This makes it easy to explore
the connection between the Julia seed value and the Mandelbrot
The "Seed-Set" option allows a new seed value to be specified.
Again, MANDEL.PIC is displayed, and the seed value used to create
the current Julia picture is located. Next, you select a new
seed value using the cursor keys. Finally, the program returns
to the current Julia picture and allows you to select a zoom area
for the new picture. The new picture will be created using the
RUNNING MANDEL - RUNTIME OPTIONS
Once the program has started generating a new picture, a
different set of options is displayed in the left border. Every
time a row of the picture is finished, the program checks the
keyboard to see if you have selected one of the runtime options.
These options are described below.
ENDING THE PROGRAM
The "Quit" option allows you to end the program with the option
of saving your picture to be completed later. You can resume
work on an unfinished picture by simply loading it - the program
detects that the picture is not complete, and picks up where it
TEMPORARY PROGRAM EXITS
The "Dos" option allows you temporarily exit the program to do
other work. When you're ready to continue the picture you're
working on, simply type "exit" and MANDEL will pick up where it
left off. Note that when you type "exit" you must be on the same
disk drive that you were on when you started the MANDEL program,
but you need not be in the same directory.
ABORTING A PICTURE
The "Abort" option causes work on the current picture to stop.
If you choose this option, you will be asked to confirm that you
really do want to cancel the picture, and the setup options will
be displayed if you answer "yes".
You can switch color banding on or off at any time by selecting
the "Bands" option.
WHERE TO EXPLORE
Where should the Mandelbot microscope be focused? Near the edge
of the black region that is the Mandelbrot set. I've found some
of the best areas to be near the points where the set pinches
together, but the territory is virtually infinite.
The numerical precision of the microscope is such that an area of
the parent set can be magnified 10e+13 times before the
resolution of the picture begins to suffer. This magnification
is far greater than that needed to resolve the nucleus of the
COMPATIBILITY WITH PREVIOUS MANDEL VERSIONS
The format of the information block (containing picture
coordinates, generation time, etc.) stored with each picture is
different in MANDEL Version 3.0 from the format used in previous
versions. The result is that pictures created with old versions
are not compatible with Version 3.0.
A picture conversion program, "oldtonew", is provided to solve
this problem. "Oldtonew" converts old pictures to the new
format. Note, however, that the old pictures did not contain
information on who their parent was, so "oldtonew" does the best
it can: it assumes the parent was "mandel.pic".
The SHOW Program
The SHOW program allows you to display all your pictures without
the clutter along the margins that you see when you load a
picture using the MANDEL program. It also offers several other
options not incorporated into the MANDEL program, as described
STARTING THE SHOW PROGRAM
You can get a reminder of the SHOW options by typing "show"
without any arguments. To show one or more pictures, type "show"
followed by the filename. The argument "filename" can include
wildcard characters, so any of the following invocations would be
show mine*.pic your?.pic
Once the SHOW program has been started, the following options are
Press "R" to begin rainbow animation. You will be asked whether
you want the animation to go in or out. I won't try to describe
the difference, as you'll see for yourself as soon as you try it.
The animation speed can be changed by pressing the "up" and
"down" arrows on the numeric keypad.
Select this option by pressing "L". Again, you'll have to see
for yourself what happens.
If your eyes can't take any more animation, but you're not ready
to quit or move on to the next picture, press "N" for normal.
Pressing "P" will copy the displayed picture to the printer.
Pressing "Q" will quit the SHOW program.
ANY OTHER KEY
Pressing any other will display the next picture in the argument
CHANGING THE COLOR PALETTE
The SHOW program checks the DOS environment to see if the word
COLOR is defined. If it is defined, the SHOW program will use
the colors listed in the file corresponding to the environment
variable COLOR instead of the color values built into the
program. See the section below on the COLOR program for further
The COLOR Program
WHAT IT DOES
The COLOR program allows you to select the colors that the SHOW
program will use to display pictures. The COLOR program displays
the color palette you currently have defined, and allows you to
change this palette using the keyboard.
HOW IT WORKS
Both the SHOW and COLOR programs check the environment to see if
the word COLOR is defined. If it is defined, these programs will
use the colors listed in the file corresponding to the
environment variable COLOR.
To start the COLOR program, type "color". Sixteen boxes will be
displayed whose colors are set according to the palette currently
defined by the COLOR environment variable. You can change each
of these colors by pressing the keys displayed above each box.
When you're finished designing a palette, press the "esc" key.
The modified palette will be written to the file "temp.col", and
you can rename this file as appropriate.
The batch file "col.bat" does the COLOR environment variable set
for you, assuming your palette file has the extension ".col".
Thus, if your palette is defined in the file "mypal.col" and you
type the command "col mypal", then the environment will have the
definition "COLOR=mypal.col", and the SHOW program will use this
palette to display your pictures.
The MOVIE Program
WHAT IT DOES
The MOVIE program allows you to automate the display features
provided by the SHOW program. With the MOVIE program, you can
create an animated slide show that will run at a single command.
HOW IT WORKS
To use the MOVIE program, you must write a "script" that
describes which pictures you would like to display, and what
options to use to display them. A script is a regular ASCII text
file made up of commands that tell the MOVIE program what to do.
The commands recognized by the MOVIE program are as follows:
Load name [time] - Load a file (extension ".pic" assumed)
and (optionally) show for time.
Normal time - Normal show for time
Animate Rainbow In/Out speed time - Animation - rainbow animation for time
Animate Lightning time - Animation - lightning animation for time
Color name - Color palette = name
Rewind - Rewind script file, and play it again.
# - Comment line
time is measured in seconds
speed is a number from 0 --> 10, where 0 gives fastest animation
An example makes the script commands easier to understand:
# Example script file for the MOVIE program.
# We'll start by just loading our three pictures, and
# showing them for 5 seconds each.
load pic1 5
load pic3 5
# Rainbow animation, out, fast, for five seconds
anim rain out 2 5
# Load a different color palette, get pic2, and do lightning
animate light 10
rewind # play the script continuously
You'll notice that it isn't necessary to spell out the entire
keyword in every command - the MOVIE program only looks at the
first letter of each command, so your scripts can be quite terse.
Once the script has been prepared, it can be played by typing:
where "mfile1" is the file name of the file that contains the
script commands. Hitting any key during playback of a script
will cause the program to quit. Many script files can be played
in succession by specifying all the script file names on the
movie mfile1 mfile2 ... mfilen
Wildcards are acceptable in the argument list to the
MOVIE program, so the following command line would also
Finally, like all the other programs provided with MANDEL, the
MOVIE program options will be displayed on the screen if the
program is invoked without any arguments.
A diskette containing the MANDEL program, the SHOW program,
the COLOR program, and the MOVIE program is available for
I would like to purchase:
(___) MANDEL diskette(s).
Payment of $_____ is enclosed (check or money order).
______________________ ________ ____________
City State Zip
Where did you hear about the MANDEL program?
Send this completed form to:
2140 Shattuck Ave.
Berkeley, Ca. 94704