RECURSIVE REALM - FRACTAL EXPLORATION SYSTEM
Copyright 1989, 1990, 1991 - All Rights Reserved
By Scott A. Jones
Austin Software Design
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
TABLE OF CONTENTS
HOW TO USE THIS MANUAL ........................ 1
INSTALLATION AND REQUIREMENTS ........................ 3
WHAT'S NEW IN VERSION 3.0 ........................ 4
PROGRAM FEATURES ........................ 5
REGISTRATION ........................ 6
WHAT IS SHAREWARE? ........................ 8
PROGRAM HISTORY ........................ 9
PICTURE COMPATIBILITY/CONVERSION ........................ 10
VERSION 1.0 ........................ 10
FILE CHART ........................ 10
FUNCTIONAL CHANGES FROM
VERSION 1.5 TO LATER VERSIONS ........................ 11
TERMINOLOGY ........................ 12
THE GOALS OF RECURSIVE REALM ........................ 14
OVERVIEW ........................ 15
A QUICK LOOK (NEW USER TOUR) ........................ 16
BASIC OPERATION ........................ 19
STARTING RECURSIVE REALM ........................ 19
COLORING ........................ 21
THE 16-COLOR PALETTE ........................ 22
A TYPICAL COLORING SESSION ........................ 24
USING ........................ 25
SMOOTH VGA PALETTE ........................ 25
STARTING FROM SCRATCH ........................ 26
ENTERING DATA ........................ 27
MAGNITUDE AND CENTER POINT ........................ 28
CHOOSING THE MATH TYPE ........................ 29
CHOOSING THE ALGORITHM ........................ 30
COMPLEX ARITHMETIC ........................ 32
THE ESCAPE-TIME ALGORITHM ........................ 35
ESCAPE SEQUENCE TRACKING ........................ 35
OTHER ESCAPE CONDITIONS ........................ 36
THE MANDELBROT SET ........................ 38
WARPED MANDELBROTS ........................ 39
THE JULIA SET ........................ 40
NEWTON'S METHOD ........................ 42
MODELS FOR MAGNETISM ........................ 44
MANDELBROT UNIVERSALITY ........................ 45
3-D, SPHERES, AND CONVOLUTION ........................ 45
3-D PROJECTION ........................ 45
SPHERE PROJECTION ........................ 46
CONVOLUTION ........................ 46
JIGSAW PUZZLES ........................ 47
RAPID EXPAND ........................ 47
PICTURE BUILDING STRATEGY ........................ 48
PICTURE BUILDING TIPS ........................ 50
ALL PICTURES ........................ 50
MANDELBROT SET PICTURES ........................ 51
JULIA SET PICTURES ........................ 51
NEWTON'S METHOD PICTURES ........................ 52
MODELS OF MAGNETISM PICTURES ........................ 52
USING A MOUSE ........................ 53
BEHIND THE SCENES ........................ 53
PROGRAM SPEED ........................ 53
THE PCX FORMAT ........................ 53
MEMORY MANAGEMENT ........................ 54
ERROR MANAGEMENT ........................ 54
GETTING THE LATEST VERSION ........................ 56
TROUBLESHOOTING ........................ 56
COMMONLY ASKED QUESTIONS ........................ 56
CONTACTING THE AUTHOR ........................ 58
POSSIBLE UPCOMING FEATURES ........................ 59
APPENDIX A: HOT KEYS ........................ 61
MAIN MENU ........................ 61
DATA-ENTRY MENU ........................ 62
WHILE BUILDING OR VIEWING ........................ 63
ZOOM MODE ........................ 64
ANIMATING ........................ 64
BUILDING 3D, SPHERE, CONV. ........................ 65
BUILDING JIGSAW ........................ 65
RAPID EXPANSION ........................ 66
APPENDIX B: MISC. INFORMATION ........................ 67
FILE NAMES ........................ 67
SOURCES OF INFORMATION ........................ 67
DIFFERENT RESOLUTIONS ........................ 68
UNATTENDED DEVELOPMENT ........................ 69
REFERENCES ........................ 70
BIBLIOGRAPHY ........................ 70
REC JOURNAL ........................ 71
ACKNOWLEDGEMENTS ........................ 72
REGISTRATION FORM ........................ 73
HOW TO USE THIS MANUAL:
This guide contains everything you should know to get the
most out of Recursive Realm. Regardless of your experience
with Recursive Realm, you should eventually read the entire
guide. If you are a new user anxious to start exploring
fractals immediately, or an experienced user anxious to see
what has been added, you can get by, for now, with only a few
If this is your first time with Recursive Realm, you should
read the following sections in the order listed:
INSTALLATION AND REQUIREMENTS ................ Page 3
PROGRAM FEATURES ................ Page 5
A QUICK LOOK (NEW USER TOUR) ................ Page 16
APPENDIX A (HOT KEYS) ................ Page 61
BASIC OPERATION ................ Page 19
STARTING FROM SCRATCH ................ Page 26
ENTERING DATA ................ Page 27
If you are not already a registered user and would like to
know how to become one, please read the following sections:
REGISTRATION ............ Page 6
WHAT IS SHAREWARE? ............ Page 8
GETTING THE LATEST VERSION ............ Page 56
CONTACTING AUSTIN SOFTWARE DESIGN ............ Page 58
For users already familiar with previous versions of
Recursive Realm, many old sections have been enhanced and new
sections have been added. Here is a list of the new, or
WHAT'S NEW IN VERSION 3.0 ............... Page 4
THE GOALS OF RECURSIVE REALM ............... Page 14
A QUICK LOOK (NEW USER TOUR) ............... Page 16
COLORING ............... Page 21
THE 16-COLOR PALETTE ............... Page 22
USING ............... Page 25
SMOOTH VGA PALETTE ............... Page 25
CHOOSING THE MATH TYPE ............... Page 29
CHOOSING THE ALGORITHM ............... Page 30
COMPLEX ARITHMETIC ............... Page 32
ESCAPE SEQUENCE TRACKING ............... Page 36
OTHER ESCAPE CONDITIONS ............... Page 36
PICTURE BUILDING STRATEGY ............... Page 48
BEHIND THE SCENES ............... Page 53
DIFFERENT GRAPHICS RESOLUTIONS ............... Page 68
Finally, if you have a problem please read the section
on TROUBLESHOOTING (page 56). This section contains a list
of commonly asked questions that may provide the solution.
INSTALLATION AND REQUIREMENTS:
Program file: 1. rr.exe
Picture files: any with the following extensions -
1. ".rrm", ".rrj", ".rrn", ".rrp", ".rr3",
".rrs", or ".rrc" (all in PCX format)
2. ".dat" (data file for picture)
Additional files: 1. rrwelc.ome (welcome screen)
2. rrealm.doc (user's guide)
3. rrpics20.cat (picture catalog from
4. rrpics25.cat (picture catalog from
To install Recursive Realm, copy the files "rr.exe" and
"rrwelc.ome" into any desired directory. Copy the picture
files into the directory in which you will want to build
If you will run "rr" from outside of this directory, you
will need to set a DOS path to it. For example, if you are
using Recursive Realm on the C drive in a subdirectory named
\rrealm, place the line "set path=c:\rrealm" (without the
quotes) in your autoexec.bat file. If you're using a hard
drive, it's a good idea to make a separate directory for
pictures since you will want to build several.
Recursive Realm can be used with any 100% IBM compatible
computer with EGA, VGA or super-VGA color graphics, at least
512k of free memory and DOS v2.0 or higher. In addition, a
math coprocessor can save you hours of picture building time on
some pictures but is not absolutely necessary. Expanded memory
WHAT'S NEW IN VERSION 3.0:
Version 3.0 is the version that I've been waiting for since
I first began Recursive Realm in 1989. It also marks the
change from C to Assembly language as my primary language of
choice. The enhanced speed of this version places it in a
class with few others. Now, even XT owners can experience the
wonders of fractal exploration.
The largest increase in speed results from the introduction
of two levels of integer-based routines. To further increase
the speed, Mariani's algorithm is used as the default algorithm
for Mandelbrot and Julia set (function 1) pictures.
Support for super-VGA mode 800x600x16 has been added.
Version 3.0 gives you much more color control by letting you
cycle through the color bands until you find the most appealing
sequence. You can also cause the bands to "flow" from one to
the other by pressing . Smooth palette coloring has
been greatly improved. The smooth modes now use the color
bands and will almost certainly become the modes of choice for
You can now get the iteration value of any pixel by pressing
. This feature lets you fine-tune the color bands
leading to pictures of a much higher quality than before.
The parameters of the viewport are now displayed on the
screen for zooming, tracking, expanding, and getting the
Memory management has been improved so that Recursive Realm
can take advantage of every nook and cranny of memory available
on your computer.
You can use the new "flow" feature while animating pictures
or set them to randomly change colors (flash) like previous
versions. Select the method by setting the "ANIM" parameter in
the "Options" choice in the main menu.
Finally, error-handling has been greatly improved. If the
program encounters an error, it will attempt to provide you
with as much information as possible then return to it's
position before the error was encountered.
* Mandelbrot set exploration.
- Includes "warped" Mandelbrots.
* Julia set exploration.
- Five functions, including sin, cos, and exponential.
- Ability to select Julia set of Mandelbrot function
by "pointing" to an area while viewing a Mandelbrot
* Newton's Method exploration.
- Fourteen functions.
* Models of Magnetism exploration.
- Two functions.
* Two levels of integer routines making Recursive Realm one
of the fastest fractal explorers available anywhere.
* Supports Mariani's algorithm for Mandelbrot/Julia pictures.
* Easy-to-use front-end menu system.
* Unattended multiple-picture development.
* Help screens available at every step.
* Save pictures at any point and continue building at a later
* On-screen "zooming".
* Mouse support.
* 3-D block, plate, or sphere projection, and convolution.
* Jigsaw puzzles (just for the fun of it).
* Rapid expansion.
* Pictures saved in PCX format.
* Escape sequence tracking.
* Query iteration value for any pixel on the screen.
* One of the best coloring systems available.
* Easy multi-color or smooth-color palette selection.
* Color while building or after completion.
* Color by randomly changing palette, or by band cycling.
* Make colors "flow" on the screen with one keystroke.
* Uses expanded memory when available.
* Uses virtual screens for fast, efficient display.
* Takes advantage of symmetry where applicable.
* Slide-show animation.
* Simple mode selection (EGA 640x350, VGA 640x480, or
* Includes two catalog files of over 200 picture parameters.
* Bonus programs for registering.
* Registered users get upgrades at a reduced cost.
* Well-supported by author.
Recursive Realm is a shareware product. It may be freely
copied and shared with others as long as no charge is made for
the program, and it is unmodified and distributed with ALL of
it's support files intact. Vendors may charge a small fee for
an evaluation disk as long as the Shareware concept is clearly
explained and Recursive Realm is described as a shareware
You are granted a license to try Recursive Realm for a
period of 30 days. If you continue to use it after the trial
period, please register by sending the $20.00 registration fee
plus $3.00 postage & handling to:
Before July 1, 1992: After July 1, 1992:
Scott Jones Scott Jones
Austin Software Design Austin Software Design
P.O. Box 30133 Rt. 3 22514 W. Gibson
Grand Junction, CO. 81503 Buckeye, Az. 85326
phone: (303)-242-7606 phone: (602)-386-3606
If 30 days is not enough time, please take whatever time you
need to evaluate Recursive Realm. Your registration fee
entitles you to use this software on a single computer and to
make as many copies as you wish for backup purposes or for
distribution as described above. When you register, you will
receive a registration number and instructions on how to
store it with your copy. Your name will then be displayed on
the welcome screen, and the shareware screen displayed upon
exiting the program will be suppressed. You will also receive
the latest version of the program, some extra pictures, and the
following two FREE BONUS programs:
1.) MILLER - Also from Austin Software Design. A fun and
addicting graphics program that lets you build an
infinite number of spectacular "quadric-like"
surfaces. (Normal registration fee $8.00 - You
get it free).
2.) PERUSE - An amazing TSR file browser from Falk Data
Systems -- authors of the Programmer's
Productivity Pack" and Easy Format. Peruse lets
you to read an ASCII file (like the one you're
reading now) while using almost any other
program. Peruse also lets you shell to DOS from
almost any other program. A great utility!
If you have a phone modem and don't already have a
CompuServe account, you will be able to get a FREE CompuServe
IntroPak with a $15.00 usage credit. (NOTE: Austin Software
Design in not affiliated with, and receives no benefits from
CompuServe in any way).
Registered users will receive immediate notice of upgrades
and will be able to get the upgrade at a reduced cost. In
short, you will always be able to take advantage of the new
features that are constantly being added to Recursive Realm
without ever again having to hunt the program down.
To simplify registration, a form is included at the end of
this user's guide.
If you have any questions, please write or call. (See
"CONTACTING AUSTIN SOFTWARE DESIGN").
WHAT IS SHAREWARE?:
Shareware distribution gives you a chance to try software
before buying it. If you try a Shareware program and continue
using it, you are expected to register. Individual programs
differ on details -- some request registration while others
require it. With registration, you get anything from the
simple right to continue using the software to an updated
program with other bonus programs.
Copyright laws apply to both Shareware and commercial
software, and the copyright holder retains all rights.
Shareware authors are accomplished programmers, just like
commercial authors, and the programs are of comparable quality.
(In both cases, there are good programs and bad ones!) The main
difference is in the method of distribution. The author
specifically grants the right to copy and distribute the
software, either to all and sundry or to a specific group. For
example, some authors require written permission before a
commercial disk vendor may copy their Shareware.
So, Shareware is a distribution method, not a type of
software. You should find software that suits your needs and
pocketbook, whether it's commercial or Shareware. The
Shareware system makes fitting your needs easier, because you
can try before you buy. And because the overhead is low,
prices are low also. Shareware has the ultimate money-back
guarantee -- if you don't use the product, you don't pay for
If you are unable to reach me at the address or phone number
listed in this guide, then send a SASE to the ASP at 545 Grover
Road, Muskegon, MI 49442-9427 and the correct information will
be forwarded to you.
Version 1.0 - Released in October, 1989. Native file-saving
~~~~~~~~~~~ format. Pictures are not compatible with later
versions. If you have this version and do not
have the picture conversion file "old2new.exe",
that came with version 1.5, please let me know
and I'll send it to you.
Version 1.5 - Released in February, 1990. PCX format. Added
~~~~~~~~~~~ F7 key.
Version 2.0 - Released July, 1990. Expanded memory. Virtual
~~~~~~~~~~~ screens. Escape sequence tracking, Expanded
help system. Added two Julia set functions.
Added four Newton's method functions. Direct
graphics mode selection from data-entry menu.
Key changes (F1 to F2). Speed improvements.
Julia set zooming. Warped Mandelbrots.
This version had a few bugs in the zoom and
Version 2.5 - Released February, 1991. 3-D projection.
~~~~~~~~~~~ Sphere projection. Convolution. Jigsaw puzzles.
Rapid expansion. Variable escape radius.
Added a new Newton's method function and a new
Magnetism function to show the "universality"
of the Mandelbrot set. Smooth VGA coloring.
Mouse support. Version 2.0 bugs fixed.
Version 3.0 - Released September, 1991. Vastly improved speed
~~~~~~~~~~~ due to integer routines and Mariani's
algorithm. Added super-VGA mode 800x600x16.
Added color band cycling and "flow" key.
Smooth VGA modes improved. Added key to get
iteration value from any point. Parameters of
the viewport are displayed on the screen.
Error handling improved.
PICTURE COMPATIBILITY AND CONVERSION:
Versions of Recursive Realm later than 1.0 are backwards-
compatible, but you should never FINISH any incomplete picture
with a version other than the one with which it was started.
You should never use a version to view pictures created with
a later version. For example, version 2.5 should not be used
to view pictures created with version 3.0.
Version 1.0 pictures are NOT compatible with later versions.
If you have any version 1.0 pictures needing conversion to a
later (PCX) format, please contact me and I'll send a conv-
ersion program to you.
| VERSION |
| 1.0 1.5 & 2.0 2.5 & 3.0 |
Mandelbrot picture files | .pic | .rrm | .rrm |
Mandelbrot data files | .dat | .dat | .dat |
Mandelbrot color files | .clr | N/A | N/A |
| | | |
Julia picture files | .pij | .rrj | .rrj |
Julia data files | .dat | .dat | .dat |
Julia color files | .clr | N/A | N/A |
| | | |
Newton picture files | .pin | .rrn | .rrn |
Newton data files | .dat | .dat | .dat |
Newton color files | .clr | N/A | N/A |
| | | |
Magnetism picture files | .pim | .rrp | .rrp |
Magnetism data files | .dat | .dat | .dat |
Magnetism color files | .clr | N/A | N/A |
| | | |
3-D picture files | N/A | N/A | .rr3 |
Sphere picture files | N/A | N/A | .rrs |
Convolution picture files| N/A | N/A | .rrc |
(The last letter of the picture file extension corresponds to
the first letter of the main menu choice)
FUNCTIONAL CHANGES FROM VERSION 1.5 TO LATER VERSIONS:
* Flat Range and Band Widths are entered as actual values
rather than percentages.
* The F2 key has replaced the functions of the F1 key. F1
is now ALWAYS used for help.
* Graph Width will automatically be scaled to the nearest
size evenly divisible by 80. For example, if you enter
130, it will be scaled up to 160.
* VGA or EGA mode can be set directly in the data-entry menu.
* Zoom mode is available with Julia sets.
* Newton's method pictures of the function x^3 - 1 are
correct. (Versions 1.0 and 1.5 had a bug that made these
pictures look "fuzzy").
These are my own definitions of some of the terms in this
* Main Menu - The first menu you see after starting
* Task Menu - The small menu seen when you choose an
existing picture from the main menu canvas.
* Data-Entry Menu - The menu in which you enter param-
eters for the four basic picture types - Mandelbrot,
Julia, Newton, and Magnetism.
* Function - An equation, such as x*x - 1 = 0.
* Complex Number - A number that contains a real and
imaginary part. For example 2 + 3i. (See "COMPLEX
* Recursion - The process of taking a starting number,
plugging it's value into an equation, then repeatedly
taking the answer and plugging it back into the
equation. (See "THE ESCAPE-TIME ALGORITHM").
* Iteration - A single step of recursion. For example, if
you plugged the answer (as described above) back into
the equation 100 times, you have just performed 100
* Iterative Process - The process of performing iter-
ations until some defined limit is reached.
* Dwell - The number of iterations required for a
specific point to escape the set (ie. if a certain
point takes 30 iterations to reach the defined limit,
it's dwell is 30).
* Fractal - A mathematically defined object with a
* Root - A value that, when plugged into an equation,
makes the equation true. For example, the roots of the
equation x*x - 1 = 0 are 1 and -1;
* Midget - Any of a myriad of tiny duplicates of the
Mandelbrot set found buried within the border areas
of the full set.
* Main Cardioid - The large, heart-shaped main body of
the Mandelbrot set.
* Main Bud - The large circular region attached to the
left of the main cardioid of the Mandelbrot set.
* Seahorse Valley - The region within the upper or lower
crack between the main cardioid and main bud of the
THE GOALS OF RECURSIVE REALM:
The primary goal of Recursive Realm is to narrow the gap
between the scientist and layperson. I believe that the world
of fractal geometry can help Science overcome it's undeserved
reputation for being cold and accessible only to those with a
scientific education. I try to accomplish this goal by placing
much of my effort into the user-interface. In short, I want to
make Recursive Realm as painless to use as possible for people
at all levels of expertise. I also try to supply Recursive
Realm with features that even the most expert of experts will
find useful. I can only reach this goal with your input. I
have received many wonderful comments and suggestions from
users at all levels. Please keep these suggestions coming.
Due to the mathematically intense nature of some of the
literature on fractals, you may find it difficult to find the
answers to some of your questions. If there is something you
don't understand, just send a self-addressed, stamped envelope
and I'll do my best to explain it. I want you to be able to
get the most out of Recursive Realm. Please don't think that
I'm too busy to correspond.
Finally, a less noble but very necessary goal of Recursive
Realm is to make my living. It's my only means of support so,
if you find it useful and haven't already registered, please
register so I can continue my efforts.
Are you ready to take a "Recursion Excursion"? Recursive
Realm Fractal Exploration System is an educational and fun tool
for visualizing some of the amazing mathematical functions
being explored by scientists on the cutting edge of Chaos
today. Sound complicated? It's not. Most of the functions
explored here are simple, and a mathematical education is NOT
required to take advantage of all that Recursive Realm has to
offer. Recursive Realm lets you to build and color the
* The Mandelbrot set in its entirety or microscopic portions
of the beautiful border areas of the set.
* The Julia sets of 5 different functions including the
* Newton's Method for finding the roots of 14 different
* Models of Magnetism for 1 function viewed in 2 different
planes as defined by ref. (1) (see bibliography).
All pictures are centered around the true center of your
screen and you can define the amount of the screen to use for
the picture. Pictures are automatically saved before returning
to the main menu and can be restarted from where previously
stopped. Pictures can be colored at any time during or after
the building process and the new color can be saved with a
In addition to all of the above, Recursive Realm is run from
a safe and easy to use menu system which allows for easy
picture selection, renaming, and deletion from anywhere on your
drive(s). Help screens are available from anywhere by pressing
Once you have built some fractal pictures, you can have more
fun with them by projecting them onto a 3-D plate, block, or
sphere, convoluting them, or mixing them up and putting them
back together like a jigsaw puzzle.
A QUICK LOOK (NEW USER TOUR):
THE KEY CAN BE PRESSED AT ANY STEP OF THE PROGRAM TO
GET A LIST OF KEYS AVAILABLE AT THAT POINT!
THE ESC KEY BACKS YOU OUT OF ANY STEP.
I recommend very strongly that you eventually read all of
this manual but if you're like me and want to play first, start
the program by typing "rr" (without the quotes) in the
directory in which you installed it. Take note of the disk
space in the upper left corner of the menu - These pictures
range in size from about 10k - 250k depending on your graphics
and the amount of detail in the picture. An average picture is
If you think that you need to change drives - press to
change the drive and/or directory. For dual-floppy systems,
place the files "rr.exe" and "rrwelc.ome" on one disk and build
pictures on the other. When you're ready, use your arrow keys
to move to the type of picture that you want to produce and
press . Any existing pictures of that type will be listed
on the screen. Use your arrow keys to highlight the desired
picture and to view it.
If you have no pictures and/or would like to build a new
one, then highlight the desired picture type and press
. You will then be taken to the data-entry menu. You
can press to accept the defaults or enter the data from
one of the pictures in the enclosed catalog files
"rrpics20.cat" or "rrpics25.cat". See Appendix A for a list of
"hot key" functions (or press F1). If this is your first time
with Recursive Realm, I suggest the following tour:
1.) Select "Mandelbrot" from the main menu.
2.) If any picture names appear on the canvas, press
to animate them.
3.) To let you see the speed of Recursive Realm, let's build
the full Mandelbrot Set. When you get back to the main
menu, highlight "Mandelbrot" but don't press . (If
you have already pressed and some picture names
appear on the canvas, press to make them disappear.)
Press to get to the data-entry menu, change the
File Name from MBROT to MSET, then press to accept
the default parameters and build the picture.
4.) After returning to the main menu, choose "Mandelbrot"
then look for the picture "MSET" that you just built.
5.) Use your arrow keys to highlight this picture then press
enter and select "View, etc" to view it.
6.) While viewing, press a few times to watch the colors
change. Press to "track" the escape sequence and
move the viewport around the screen using your mouse or
arrow keys. Notice how the dots escape as you cross the
border of the set. The best tracking areas are located
just inside the borders of the full Mandelbrot set.
7.) Press to stop tracking then try the color band
cycling keys. The left and right arrow keys cycle the low
band forward or backward. The up and down keys do the
same for the high band. The + and - keys cycle both the
low and high bands together. Now press to see
the bands flow like spilled paint. When this bit of
psychedelia gets to be to much, press or to
stop flowing and return to normal viewing. (The best
pictures for "flowing" are the VGA SMOOTH palette
8.) After you're finished playing with the color keys, press
to bring up the viewport (zoom mode). If a mouse
is present, use it to move the viewport. Press your right
button then move the mouse left to expand the viewport and
right to contract it. Press your left button to resume
moving the viewport. If no mouse is present, use your
arrow keys to move the viewport and your PGUP and PGDN
keys to expand or contract it. Use your Shift key for
speed. On the left side of the picture you will notice a
long stem containing a tiny duplicate of the full set.
Move the viewport over to this "midget" set and expand it
to surround the midget. Press to enter the
9.) While in the data-entry menu, set the FLAT RANGE LIMIT to
1, the HIGH BAND WIDTH to 1, and the FLAT BAND WIDTH to 1.
Set the Max iterations to 300 and the File Name to
whatever you want. Take notice of the current graphics
mode, math type, and algorithm listed at the right of the
data-entry menu. You can toggle these by pressing the key
listed to the left of each one. For now, I would suggest
staying with the "MARIANI" algorithm and "INTEGER" math
type. If you have VGA or super-VGA you may want to toggle
the graphics mode to one of the "SMOOTH" modes.
While you're in this section notice the two different
methods for entering picture bounds. The most obvious
method is filling in the left, right, top, and bottom
bounds. Another, more compact, method is by pressing
and filling in the magnitude and center point. Even
if you don't want to enter data by filling in the
magnitude and center point, can be used to let you
know what the current magnification is. When you're
ready, press and watch Recursive Realm build the
10.) You can let the picture finish or press to return to
the main menu and play some more. The picture will be
saved before returning. To continue building it, just
select it again. There may be a delay before you see the
building process continue. The color keys (F7 - F10 and
the band-cycling keys) and the rest of the fun keys are
all available while building as well as viewing. Enjoy..
Even though Recursive Realm is one of the fastest fractal
programs around, some of these pictures will take a lot of time
to build. If you want to see a "quickie" version of the
picture that you are about to build you can set the graph width
to about 80 and go from there.
NOTE: When you see where # is a valid key, it
means hold your CTRL key and the other key down at the same
time. For Example, means hold down your CTRL key and
the "A" key at the same time. refers to the enter, or
carriage return key.
STARTING RECURSIVE REALM:
From the directory in which you installed Recursive Realm,
just type "rr" (without the quotes) and press enter. You could
also type "rr directory" where "directory" is the name of the
your picture directory. For example,
would start Recursive Realm in a mode ready to build pictures
in a directory on the C drive called \rrealm\pics.
To change to a different drive or directory just press
and type in the new name ( will clear the old directory
name). Press to build a new picture of the
highlighted type. Press to animate (slide-show style)
all existing pictures of the highlighted type. Press at
any time while using Recursive Realm to get help.
Before you build a picture you should take note of the disk
space listed in the upper left corner of the main menu. A very
detailed picture may need up to 250,000 bytes. Experimentation
will help you decide how much space you need.
In the main menu there are eight choices across the top of
the screen. Use your arrow keys to highlight the desired
choice and press to choose it. The choices are described
MANDELBROT - Place a list of existing Mandelbrot set
~~~~~~~~~~ pictures on the canvas.
JULIA - Place a list of existing Julia set pictures
~~~~~ on the canvas.
NEWTON - Place a list of existing Newton's Method
~~~~~~ pictures on the canvas.
MAGNETIC PHASE - Place a list of existing Models of
~~~~~~~~~~~~~~ Magnetism pictures on the canvas.
3-D - Place a list of existing 3-D-projected
~~~ pictures on the canvas.
SPHERE - Place a list of existing sphere-projected
~~~~~~ pictures on the canvas.
CONVOLUTE - Place a list of existing convoluted
~~~~~~~~~ pictures on the canvas.
OPTIONS - Enable or disable sound, mouse, or EMS
~~~~~~~ support. If you are in your office and
don't want your boss to know you are
building fractals, you may want to disable
the sound. (Of course, you could always
try to convince your boss that fractals are
much more important than anything you could
be assigned to do). You can also set the
animation style to "Flow" or "Flash" here.
After choosing options, press the space bar
to toggle your selection on/off then press
to record the new information.
will abort any changes.
Pressing on all but the last main menu choice will
produce a list of existing pictures from which to choose. Use
your arrow keys to highlight the desired picture, then to
choose it. You will then move to the "task" menu where you
will tell Recursive Realm what you want to do with the picture.
Your choices are as follows:
VIEW, etc. - View a completed picture. If the picture
~~~~~~~~~~ is one of the four basic picture types
(first four choices on the main menu)
building will resume if the picture is
3D PROJECTION - Project a picture onto a 3-D plate or
SPHERE PROJECTION - Project a picture onto a sphere. (ie. Make
~~~~~~~~~~~~~~~~~ a fractal planetoid).
CONVOLUTION - Convolute a picture. This has the effect
~~~~~~~~~~~ of "skeletonizing" a picture.
JIGSAW PUZZLE - Mix a picture up, then put it back
~~~~~~~~~~~~~ together in jigsaw fashion.
RAPID EXPAND - Create an immediate sketchy "blowup" of a
~~~~~~~~~~~~ section of a picture.
At any time while viewing or building a picture, you can
press to return to the main menu. If the picture is one
of the four basic picture types (first four main menu
choices) it will automatically be saved before returning.
3-D, Sphere, and Convolution pictures are not automatically
saved and require that be pressed to save them.
For pictures of the Mandelbrot set, Julia sets, and Models
of Magnetism you must supply the following coloring
* Flat Range Limit - This is the highest iteration number
colored according to the flat range. It should
generally be below 20% of the max iterations, but you
should experiment with different values.
* Flat Band Width - This is the number of the iterations
within the Flat Range that you would like to see
represented as one strip. Usually this should be
small and if you enter 1, each successive iteration
will be represented as one strip. You can set this
equal to the Flat Range Limit if you want to
represent the Flat Band in all one color.
* High Band Width - This is the number of the iterations
within the High Range that you would like to see
represented as one strip. You should experiment a lot
with this. Low numbers give more "splash" color to
the picture but can mask out interesting features.
If you would like to see the picture colored in all high
range colors, just enter a 1 for the Flat Range Limit. This is
particularly useful when exploring the "midgets" found along
the stem of the full set in a non-smooth graphics mode.
To color pictures while viewing or building them, use
to select a random palette, to "white-out" all parts of
the picture that are not in the set, to save the current
palette with the picture, to return to the current saved
palette, and to return to the last random palette.
To cycle the color bands, press <+> to cycle both bands
forward, <-> to cycle both bands backward, left and right
arrows to cycle the low band only, and top and bottom arrows to
cycle the high band only. Press to see the bands
automatically flow from one to the next.
THE 16-COLOR PALETTE:
In EGA or VGA 16-color mode, each color is selected from one
of 16 palette registers. Each different register contains the
red, green, and blue (rgb) levels of the color represented by
the register and the intensity of the color.
For example, if a pixel is to be colored with the color 3,
this means that the color will be taken from the value found at
color register number 3. This is actually the fourth register
since the registers are numbered from 0 - 15.
When you press to randomly change the colors on the
screen, you are actually changing the rgb value at each color
Recursive Realm sets up the registers as follows:
Number | in Recursive Realm
0 | Background (in set) color - Always black (0).
1 | Start of low band.
2 | End of low band.
3 | Start of high band.*
15 | End of high band.*
* When using Mariani's algorithm in a smooth VGA mode, color
register 3 is reserved for use by the algorithm and the
high band uses only registers 4 - 15. When using
Mariani's algorithm in a non-smooth mode, register 15 is
used by the algorithm and the high band only uses
registers 3 - 14.
Example of colorization:
Iteration Limit = 500
Flat Range Limit = 40 iterations.
Flat Band Width = 2 iterations.
High Band Width = 5 iterations.
0 -------------40---------------------------->500 iterations
|<-- flat -->|<-------- high range ------->|
Flat Range represents iterations 1 - 40. Every 2
iterations is assigned a different hue (light or dark)
version of the same color.
High Range represents iterations 41 - 500. Every 5
iterations is assigned a different one of 13 colors (when
color 13 is reached the next set of 5 iterations starts
over with color 1). As previously mentioned, Mariani's
algorithm reserves one of the high band colors for it's
use and, consequently, uses only 12 colors for the high
A TYPICAL COLORING SESSION:
1.) I Press the key until I see a palette of
colors that I like.
2.) I think that I like this sequence better than the
current saved one, but I press to get the saved
one back to be sure.
3.) I press then several times to compare the
new palette to the current saved palette.
4.) I decide that I like the new one better, press
to display it, then press to save it with the
picture. This new palette now becomes the "saved
While building or viewing a picture you can press
to query the iteration value from any point in the picture.
This feature lets you see exactly how you should set the
band widths to get the desired results.
To use this feature, first notice that the color bands on
Mandelbrot and Julia set (function 1) pictures are arranged
in a circular pattern similar to the contour lines on a map.
While viewing a picture of this type press and move
the viewport to the band where you would like the flat range
to end and the high range to begin. Let the frame sit until
the iteration value shown at the top of the screen stops
changing. This value will be your Flat Range Limit. Move
the frame to the center of the contour lines (often the
center of the screen) and get the iteration value at this
point. Subtract the Flat Range Limit from this new value
and divide by the number of high bands you would like to see
on the screen. This will be your High Band Width. The Flat
Band Width can usually be set to 1 or to the Flat Range
Limit if you want to see the Flat Range represented in only
SMOOTH VGA PALETTE:
If you have VGA graphics capability, you can use a smooth
VGA palette to color your Mandelbrot, Julia, and Magnetism
pictures. Since pictures of Newton's method use a
"root-coloring" method, the smooth palette is not available
The smooth palette is set up so that each register
represents a progressively brighter hue of one color. For
example, your picture can be colored in 16 different shades
of gold where register 0 represents black (absence of gold)
and register 15 represents bright (pure) gold.
The smooth VGA modes produce some of the most beautiful
Mandelbrot and Julia set pictures. If you are exploring in
an area, such as Seahorse Valley, where many fine tendrils
are found, you will almost certainly want to use one of the
If you have built pictures using previous versions of
Recursive Realm, you may want to go back and rebuild them
using a new, improved, smooth mode.
STARTING FROM SCRATCH:
To build a new picture, one option is to move to the desired
main menu choice (basic picture type - first four choices only)
and press . A data-entry menu will be brought up with
a generic set of defaults which you can keep or change.
Another option is to choose the main menu selection, then
move to the name of an already completed picture and press
. The data-entry menu will be brought up with the
defaults matching the data of the selected picture (except for
the file name).
The final option for building a new picture is to press
while building or viewing another picture. This will
bring a "viewport" onto the screen (look closely, you'll see
it). If you don't have a mouse, you can expand or contract the
viewport with the , , , or
keys and move the viewport around the screen with the arrow
If you have a mouse, use it to move the viewport around the
screen. Press the right button and move the mouse left to
expand the viewport and right to contract it. Press the left
button once to again allow the viewport to move freely. When
you have boxed in the portion of the current picture that you
would like to magnify, press and you will go to the
data-entry menu with the viewport parameters already filled in.
Since Julia sets of the Mandelbrot function are derived from
a single point within the Mandelbrot set, you can go into the
viewport mode, by pressing , while building or viewing
a Mandelbrot picture, then press (instead of ) to
build a Julia set from this picture. The center point of the
viewport will define the new center point from which to derive
the Julia set.
Now that you have made it to the data-entry menu, the
following data fields can be entered or updated:
Graph Width - The actual screen width. For example, a full-
screen VGA 640x480 picture would have a Graph
Width of 640. Graph Width will always be
scaled to the nearest number that is evenly
divisible by 80.
Max Iterations - The maximum number of iterations performed
by the escape time algorithm. For pictures
of the Mandelbrot set and Julia sets of the
Mandelbrot function, this should increase as
the magnification of the picture increases.
For the other pictures, this should generally
remain low (25 - 300). The examples in the
enclosed catalog files "rrpics20.cat" and
"rrpics25.cat" will give you an idea of how
this parameter changes with picture type and
Left Bound - The lowest real bound of the picture.
Right Bound - The highest real bound of the picture.
Bottom Bound - The lowest imaginary bound of the picture.
Top Bound - The highest imaginary bound of the picture.
Real Start pnt - Mandelbrot pictures only. Set to 0 for the
and "true" Mandelbrot set and anything else for
Imag Start pnt "warped" Mandelbrot sets.
Real Center pt - Julia pictures only. The real part of the
constant "c" in the listed functions.
Imag Center pt - Julia pictures only. The imaginary part of
the constant "c" in the listed functions.
Real q Value - Models of Magnetism pictures only. The real
part of the constant "q" in the magnetism
Imag q Value - Models of Magnetism pictures only. The
imaginary part of the constant "q" in
the magnetism function.
Flat Range Limit - See COLORING.
High Band Width - See COLORING.
Flat Band Width - See COLORING.
Escape Radius - Mandelbrot and Julia pictures only. The
square of this is the limit that causes the
iterative process to terminate and the point
to be colored. (see "THE ESCAPE-TIME
Function Choice - Non-Mandelbrot pictures only.
The choice of the function that you will
be exploring. Possible choices are listed at
the right of the data-entry menu.
File Name - The picture name. This field will always be
brought up with the default name ("mbrot",
"julia", "newton", or "magnet"). To avoid
accidental overwrites, if you enter the name
of a picture that exists, you will be warned.
MAGNITUDE AND CENTER POINT:
An alternative to entering the picture bounds for Mandel-
brot or Julia pictures is to enter the center point and
magnitude. Press while in the data-entry menu and enter
the points when prompted. Press to accept the data and
the bounds will be filled-in automatically. You can use
scientific notation to enter the magnitude, but it must be
entered with a small "e" as in the following example:
To enter 10000 in scientific notation, type 1e4
< you want a magnitude of 3145, enter 3145, not 3,145 >>
CHOOSING THE MATH TYPE:
This Section applies to Mandelbrot set pictures and Julia
set pictures of the Mandelbrot function. All other pictures
use floating point math.
Recursive Realm lets you choose whether you want to use
integer emulation or true floating point math to build your
picture. Floating point math is the most accurate of the two,
but the difference is usually not visible to the naked eye. On
the other hand, integer math is many times faster than floating
point. You can use integer math if the magnitude of your
picture is less than or equal to ten billion (10,000,000,000).
Recursive Realm uses two levels of integer emulation - a super
fast level that kicks in for magnitudes less than or equal to
500,000, and a slightly slower (but still much faster than
floating point) level that kicks in for magnitudes between
500,001 and 10,000,000,000.
Unless your computer is a 80486, I suggest that you use
integer math whenever you can. This will usually be the
default when you enter the data-entry menu.
If you are lucky enough to be blessed with a 80486 computer,
it was made to crunch floating point numbers and you should
always use the floating point math type.
An important limitation of integer math is that the escape
radius must be 2.0. This is not much of a problem, however,
because "2.0" is generally the accepted escape radius for
pictures of this type. If you want to use a higher escape
radius, you can switch to floating point math.
To toggle between the two math types, press . If you
select integer math, Recursive Realm will automatically decide
which of the two integer levels to use. If your picture has a
magnitude greater than ten billion, Recursive Realm will
automatically switch to floating point before building the
Remember, press while in the data-entry menu to see
the current magnitude.
CHOOSING THE ALGORITHM:
This Section applies to Mandelbrot set pictures and Julia
set pictures of the Mandelbrot function (function 1). All
other pictures use the Level Set algorithm.
Recursive Realm lets you choose between Mariani's algorithm
or the Level Set algorithm.
The Level Set algorithm is the most accurate but the slowest
of the two. It works by iterating every pixel on the screen
from right to left and top to bottom.
Mariani's algorithm is named for It's discoverer Rico
Mariani. This brilliant algorithm works by iterating the
pixels along the perimeter of a rectangular region of the
screen. If the algorithm discovers that the pixels are all the
same color, it assumes that all of the pixels inside the
rectangle will be the same color and fills the rectangle. When
it hits a pixel that is not the same color as the rest, it
divides the rectangle into four subrectangles and recursively
calls itself to try to surround each of the four. Recursive
Realm uses a variation suggested in "Amygdala" #4 that divides
the rectangle into two subrectangles instead of four.
Mariani's algorithm starts out by trying to surround the
whole picture with pixels of the same color. When it reaches
the first pixel that is not the same color as the last, it
divides the screen into left/right halves if the width is
greater than the height, and top/bottom halves if the height is
greater than the width. The algorithm proceeds to try to
surround each new rectangle until it is successful, or until
the width or height is no more than three pixels, at which
point it computes each pixel in the rectangle separately.
Like the difference between integer and floating point math,
the difference between Mariani's and the Level Set algorithm is
hardly visible to the naked eye. Unless you are absolutely
fanatical about getting the most accurate picture possible, I
suggest using Mariani's algorithm.
There are a couple of minor limitations of Mariani's
algorithm. One is that pictures are not saved every 25 lines
like they are with the level set algorithm, but they will be
automatically saved when you press to return to the main
menu. Another limitation is that tracking, , is not
available while the picture is building. But, is
fully functional after the picture is finished. These
limitations are very minor and should not keep you from using
Mariani's algorithm whenever you want to get all of the speed
that you can out of Recursive Realm.
When you feel comfortable with the data, just press to
begin building the picture in the current graphics mode. "But
what data should I enter?", you ask. There are many excellent
sources for data, some of which are listed in the bibliography
of this guide. In addition to these, I have included two
catalog files, "rrpics20.cat" and "rrpics25.cat" which contain
the parameters for several of the pictures that I have
explored. There should be enough there to keep you busy for
A word of warning -- these pictures are addicting and can
take from only seconds to several days of building time. You
can turn off your monitor and go to bed while building them but
be prepared, when you wake up the next morning and turn your
monitor back on, you may be breathless for awhile. Make sure
that your cat is not in the room when you are building fractals
or you may never get him out from under the bed.
All of the functions explored by Recursive Realm are
complex. The purpose of this section is to provide a general
introduction to complex math for those unfamiliar with it. For
a more rigorous presentation see Dettman, 1965, in the
Bibliography of this guide.
First let's take a look at the "real" number system.
Numbers in the real system are one-dimensional. This means
that they only move to the left (negative) or right (positive).
For example, to solve 4 + 2, place a ruler in front of you, put
your finger on the 4-inch mark, then move your finger 2 inches
to the right (positive). Your finger will be on the answer, 6.
To solve 4 - 2, move your finger 2 inches to the left
(negative) from the 4 and it will arrive at the answer, 2.
The complex system adds a second dimension to the real
system, known as the imaginary plane. Numbers in the imaginary
plane are denoted by the letter "i" and move upward (positive)
or downward (negative).
If this sounds complicated, try to think of the imaginary
system as a map. In this map, north (upward) represents the
positive imaginary direction, south (downward) represents the
negative imaginary direction, east (right) represents the
positive real direction, and west (left) represents the
negative real direction.
Let's assume the origin (0 + 0i) is at the center of our
map. If you place your finger at the complex number on the map
represented by 4 + 2i, your finger will be 4 units to the east
of the origin and 2 units to the north of the origin. You can
then add the number 3 - 4i to the number at your finger by
moving your finger 3 units to the east and 4 units to the
south. Your finger will then be at the position represented by
7 - 2i. In other words, 4+2i + 3-4i = 7-2i.
In Recursive Realm, pixels on your screen running to the
left and right represent the real part of the complex system,
and pixels running up and down represent the imaginary part.
In the complex system, the variable "i" represents the
square root of -1. At this point you may be exclaiming "but
wait, you can't take the square root of a negative number!".
You would be absolutely correct in the real system, but the
real system sometimes falls short in providing the solutions to
certain polynomial functions.
Suppose we need to find all of the values for "x" that make
the polynomial x^2 - 1 = 0 true (the ^2 means "raised to the
second power"). The x values that will make this true are
known as roots. A general rule in solving for the roots of a
polynomial is that the number of roots is the same as the
highest power (known as the "order") of the polynomial. The
order of x^2 - 1 = 0 is "2" so we know there are two roots. A
general inspection of this polynomial shows that the roots are
1 and -1.
(1)^2 - 1 = 0 and (-1)^2 - 1 = 0
Now, suppose we need to find the roots of the polynomial x^2
+ 1 = 0. It's easy to see that the real system will not
provide any roots in this function. This is where our
imaginary system comes to the rescue. We know that i =
sqrt(-1) (sqrt means "the square root of"). If we raise the
square root of any number to the second power we get the
original number back. For example, sqrt(3)^2 = 3. Therefore,
i^2 = sqrt(-1)^2 = -1. In other words, i*i = -1.
We can now see that the complex system will provide us with
the two roots for our function x^2 + 1 = 0. The roots are i
(i)^2 + 1 = i*i + 1 = -1 + 1 = 0
(-i)^2 + 1 = i*i + 1 = -1 + 1 = 0
For the root, -i, the "-" sign becomes positive when raised
to the second power (ie. (-i)^2 = (-1)*(-1)*i*i = -1 since
(-1)*(-1) = 1).
To get the most out of Recursive Realm, it is not so
important that you can work complex mathematical problems. It
is, however, important that you understand the two main points
of this section, summarized as follows:
1). Complex numbers are represented in a two-dimensional plane
requiring both a real (left-right) and imaginary (up-down)
part. The pixel grid that makes up your computer screen
represents this plane.
2.) Complex math has the very real application of finding
the roots of polynomials that can't be solved with the
real number system.
THE ESCAPE-TIME ALGORITHM:
Recursive Realm uses an algorithm known as the "Escape-Time
Algorithm". The algorithm is very simple to understand and can
be explained with the following complex-function example:
Given the following three items:
1.) A function. Let's use x^2 + 5 - 3i.
2.) A starting point. Let's use -1 + 2i.
3.) An escape radius. Let's use 10.
Perform the following steps (iterations):
1.) Plug in -1 + 2i for x. We get
(-1+2i)*(-1+2i) + 5 - 3i = 2 - 7i
check escape limit -
2*2 + (-7)*(-7) = 53 so the square of our escape
radius (100) has not yet been reached.
2.) Plug in 2 - 7i for x. We get
(2-7i)*(2-7i) + 5 - 3i = -40 - 31i
check escape limit -
(-40)*(-40) + (-31)*(-31) = 2561
The square of our escape radius (100) was surpassed
on this second iteration so we assign the pixel
representing this starting
point (-1 + 2i) the second color from a list of
colors. Choose another starting point then go back
to step 1.
Recursive Realm assigns a starting point to every pixel on
the screen depending on the picture type, function, and picture
limits that you set, then performs the above steps to assign a
color to that pixel.
ESCAPE SEQUENCE TRACKING:
If you are tracking the escape sequence of the point by
using , the answer of each step of the iteration (eg.
2-7i and -40-31i,) would be temporarily plotted as they are
generated. This lets you see whether the value at that point
is escaping to infinity, or converging onto one or more points.
For example, if the tracking of a point produces three distinct
whirlpools of dots spiraling inward toward their centers, then
the point is said to have a cycle of three.
OTHER ESCAPE CONDITIONS:
Not all of the 22 functions explored by Recursive Realm use
the square of the escape radius as a terminating point for the
iteration sequence. Here is a complete list of all of the
escape conditions used by Recursive Realm:
For the current iteration,
zx = real part of iterated value.
zy = imaginary part of iterated value.
lastzx = real part of the value of the previous
lastzy = imaginary part of the value of the previous
I. Sum of the squares of the zx and zy reaches
the square of the escape radius. (discussed above).
II. The absolute value of zx >= 100 or the absolute
value of zy >= 100.
III. zx = lastzx and zy = lastzy.
IV. The absolute value of (zx - lastzx) <= 0.01 and
the absolute value of (zy - lastzy) <= 0.01.
V. The absolute value of (zx - 1.0) <= 0.00001.
VI. The absolute value of (zx - lastzx) <= 0.0000001
and the absolute value of (zy - lastzy) <=
VII. The absolute value of zy reaches the square of the
VIII. The absolute value of zx reaches the square of the
escape radius and the cosine of lastzy < 0.
The following chart shows the condition(s) used by each
Picture Type | Function Choice(s) | Escape Condition(s)
Mandelbrot | N/A | I
Julia | 1 | I
| 2,3 | VII
| 4,5 | VIII*
Newton | 1 - 13 | II, III
| 14 | II, VI
Magnetism | 1 | I, IV
| 2 | I, V
Where a function has more than one escape condition, only one
needs to be met in order to escape.
* The escape radius is automatically set to the square root of
50.0 for Julia, function choice 4.
THE MANDELBROT SET:
Benoit B. Mandelbrot, considered to be the father of the
"fractal"(1), first described this set in 1980. The set is
formally described to be "the set of all values of 'c' in the
equation x*x + c that have connected Julia sets" (2). (See
next section for a description of Julia sets). The Mandelbrot
set is generated by performing the escape-time algorithm on
the function x*x + c, where x is a complex variable and c is a
complex constant. To show the function on the computer screen,
we set the screen up as follows:
Imaginary | Computer |
Axis | Screen |
(positive | |
upward) | |
Real Axis (positive to the right)
You supply the real bounds (left and right limits), the
imaginary bounds (top and bottom limits) and the real graph
width (ie. 640 for a full screen VGA 640x480 picture). The
screen is automatically scaled so that each pixel represents
one point within the area bounded by your limits. For example,
if you specified -2.0 to 1.0 as your left and right (real)
bounds and -1.2 to 1.2 as your bottom and top (imaginary)
bounds, the pixel in the upper left corner would represent the
complex number -2.0 + 1.2i, and the pixel in the lower right
corner would represent the complex number 1.0 - 1.2i.
The picture is generated by taking each pixel* from the top
left to lower right, plugging it's representative "c" value
into the Mandelbrot equation, then iterating (repeatedly
putting the answer back in for x) until the square of the real
part plus the square of the imaginary part becomes larger than
the square of the escape radius, or until a maximum number of
iterations is reached. The Mandelbrot set is composed of all
starting values for "c" that never escape this iteration
sequence (ie. reach the maximum number of iterations).
* Mariani's algorithm does not iterate every pixel (see
"CHOOSING AN ALGORITHM" on page 30).
When the end of the iteration process is reached, the pixel
is colored according to the number of iterations that it took
to escape, or if it reached the maximum (ie. it is in the set),
it is colored black. Since border areas take longer to escape
than areas away from the set, these are the most interesting
and make the most awesome pictures when magnified repeatedly.
You will notice that an exact duplicate (midget) of the
entire Mandelbrot set is often found in the blow-ups of the
When building the real Mandelbrot set, the value of x in the
equation x^2 + c is initialized to 0 before starting the
escape-time algorithm. Recursive Realm lets you to change this
and create some "Mandelbrot Monsters" that I call warped sets.
In order to build these sets, set the "Real Start Point" and/or
the "Imag Start Point" to anything except 0.0. Blowups of the
border areas of these sets can be just as weird as the sets
The colorization of the set can be visualized as a
topographical map with the flat lands colored by the light and
dark hues of one color, the high lands colored in strips with
the next thirteen colors, and the highest land colored in the
background color (black). This highest land is the actual set
itself and can be thought of as a volcano in the center of the
mountain. See "COLORING" on page 21.
THE JULIA SET:
The Julia set is named for French mathematician Gaston Julia
who first studied it in the early 1900's.(3) It is described
as the set of all points of a function and starting point that
are generated by the iterative process. There are two types of
1.) Values generated eventually grow towards infinity.
2.) Values generated stay within a well-defined area.
The type 2 Julia set is often referred to as the "connected"
or "closed" Julia set(4). As described in the previous
section, the Mandelbrot set is the set of all starting values
of 'c' in the complex function x*x + c that lead to connected
Julia sets(5). In addition to the Julia sets of the Mandelbrot
function, Recursive Realm lets you produce beautiful pictures
of the functions c*sin(x), c*cos(x), (e^x)/e, and c*e^x. The
constant e is a common mathematical constant (2.71828....)
known as the base of the natural logarithm (ie. ln e = 1).
Pictures of the sin and cos functions are some of the most
beautiful fractals you will find.
Pictures of the Julia set are generated in a manner similar
to those of the Mandelbrot set. The difference is that each
pixel in the Julia set represents a different starting point
for 'x' rather than for 'c' as in the Mandelbrot set. The
constant 'c' is entered in the data-entry menu and remains
constant throughout the building process.
You will notice some differences in the data-entry menu of
the Julia set pictures. Two new entries in the data-entry menu
are the real and imaginary center points. These values
represent the real and imaginary parts of the constant 'c' in
functions 1-3 and 5. For pictures of the Julia set of the
Mandelbrot function, the real and imaginary values of 'c'
should come from locations in and along the border of the
Mandelbrot set. For Julia sets of the sin and cos functions,
the Max iterations should be set at about 100. For Julia
sets of the exponential functions, the Max iterations should be
set from about 25 - 100 (function 4 will automatically be set
at 25 by the program).
You can use the viewport option to box in a portion of the
Mandelbrot set then press to start a new Julia set
from the point that is defined from the center of the viewport.
For pictures of the sin and cos functions, the range of the
right and top bounds should be about the same as that of the
Julia set of the Mandelbrot function. The real value of 'c'
should be kept at or very near 1.0, and the imaginary value of
'c' should range from about 0.0 to 3.0. For pictures of the
exponential functions (4 and 5) try setting the real and
imaginary c values as increments of pi (3.14). As with all of
these pictures, you should explore any set of values that you
feel like. If you enter a value that is out of the range of
the program, it will notify you and return to that value on the
Newton's method for finding the roots of a polynomial is
probably the most well-known of the function-types represented
here. The method is described as follows:
given the polynomial function f(x)=0,
answer = x - -----
where f'(x) is the first derivative of the function.
Put this formula through the iterative process (answer
back in for x each cycle) and the answer will usually
reach the value of one of the roots of the polynomial.
The iterative process is stopped if one of the following
conditions is met:
1.) The value produced by the current iteration is the
same as the value produced by the previous iteration.
In this case the root has been reached and the pixel
is given the color assigned to that root.
2.) Either the real or imaginary part of the root exceeds
100 or becomes less than -100. In this case we
assume that we are snowballing toward infinity and
the root will never be reached. The pixel is colored
If you haven't studied Calculus and don't know what a deriv-
ative is, don't worry - all you should really understand is
that a polynomial has as many roots as its highest exponent
(referred to as the "order" of the equation). For example,
the polynomial x^3 - 2x - 1 has 3 roots. Each root will be
displayed in a different color, so if you see large pools of
red and light red, for example, all of those pixels reached the
Recursive Realm lets you build and explore Newton's method
for 14 functions. You enter the left, right, bottom, and top
limits and, like the last two sections, the screen is scaled to
meet these limits.
Colorization of these pictures is different. The
representative value for each pixel is placed into the above
formula as a starting point and iterated until either a root or
the maximum number of iterations is reached. Each new root is
assigned a different color. The light and dark hues of this
color are used to color all pixels leading to this root. If a
pixel never leads to any root (ie. the max iterations are
reached) then the pixel remains black.
An interesting aspect of Newton's Method is that all of
the pixels that remain black make up the Julia set of the
function being explored (6). The maximum amount of colors used
to color roots is 7 (or 14 if you count the light and dark
colors of each root separately) therefore, if a polynomial has
more than 7 roots, the colors for the 8th root will be the same
as the colors for the 1st root and so on. When the picture is
finished you will have a beautiful image of the "basins of
attraction"(7) for the function.
Function Choice 14 is a little different than the rest.
This choice explores q-plane pictures of the function
(x - 1)(z + 1/2 - q)(z + 1/2 + q). In other words, each pixel
represents a different value for q rather than x. This method
is similar to the c-plane pictures of the Mandelbrot set and is
included to show the "universality" of the Mandelbrot set. You
will notice that small reproductions of the Mandelbrot set
appear during the exploration of this function.
MODELS FOR MAGNETISM: (A.K.A. PHASES FOR MAGNETISM)
"Models for magnetism" is the study of the phase transition
from magnetic to non-magnetic states of a material as described
by "The Beauty of Fractals" pp. 128-146. In 1952, physicist
C.N. Yang and T.D. Lee found that for a finite number of
particles, the equation c0 + c1*x +...+cn*x^n = 0 gives a
finite number of zeros in the complex plane.(8) These are
called Yang and Lee zeros. The Julia set of the
"renormalization transformation" function of the temperature
occurring during the magnetic phase transition is identical
with the set of Yang and Lee zeros(9). The function studied in
Recursive Realm is the renormalization transformation -
(x^2 + q - 1)^2
x -> ------------- (10)
(2x + q - 2)^2
The mathematics behind this section are beyond the scope of
this guide but are very well explained in "The Beauty of
You will notice that there are two function choices
available from the data-entry menu. The first one scales the
screen so that each pixel represents the starting "x" value in
the above equation. These are known as "x-plane" pictures.
The second one scales the screen so that each pixel represents
the starting "q" value in the above equation similar to
Mandelbrot set pictures. These are known as "q-plane"
pictures. This second function shows the "universality" of the
Mandelbrot set (see next section).
The "universality" of the Mandelbrot set is shown by the
set's appearance during the exploration of functions other than
the Mandelbrot function, f(x) -> x*x + c. Recursive Realm
contains two functions to display this universality. One is
Newton's Method, function choice 14, and the other is
Magnetism, function choice 2. See the catalog file,
"rrpics25.cat" for the parameters of a picture called
"NWTBROT1" to show the universality via the Newton function 14
and a picture called "BFMAG2" to show the universality via the
Magnetism function 2.
3-D, SPHERES, AND CONVOLUTION:
Once a picture exists, you can project it onto a 3-D block,
plate, or sphere, or "convolute" it. During this process the
key will, of course, give you a help screen. The coloring
keys and are also available here. Since these
pictures take only minutes to build, they are NOT saved
automatically. If, at any time during building, you decide you
want to save the picture, just press and enter the file
name. Once you have done this, resumes it's normal role
as the palette-saving coloring key (See "COLORING").
If the picture does not run to the edges of the screen,
there will be a scaling-delay before the picture begins
When you select this option, you will be asked to enter the
angle into the screen, the clockwise angle, and your choice
between a "block" or "plate". 3-D blocks have a thickness that
runs to the bottom of the screen. 3-D plates have a much
smaller thickness and black holes within the picture are
surrounded by this thickness to give the picture the illusion
SPHERE PROJECTION (A.K.A FRACTAL PLANETOIDS):
When you select this option, you will be asked to enter the
sphere radius and whether or not you want a "halo". To get a
feeling for what type of sphere is being developed imagine a
photograph of the picture being placed upon a baseball and
folded down over the sides. Smooth out the wrinkles and you
have a "fractal planetoid". The halo option lets you add an
interesting set of rings to the planet. The building of the
sphere begins by moving data from the projection area to the
other sections of the screen. This gives the illusion that
"garbage" is being placed all over the screen, but don't worry,
it will pull itself together at the end to make the planetoid.
The idea for convolution comes from an article in "The C
Users Journal" by Wesley Faler. When you select this option
you will be asked to enter each value of a 3x3 matrix.
Convolution has the effect of finding edges and lines in an
image by recoloring each picture with a color that is a
function of the color of the pixel's neighbors. For example,
Let's say you have a convolution matrix of
|1 1 -1| and you encounter a pixel with neighbors colored
|0 3 -1| as follows:
|1 1 -1| 3 5 2
2 4 6 (the center, 4,
7 0 1 represents our pixel)
The new color for the pixel would be:
new color = (3)(1)+(5)(1)+(2)(-1)+(0)(2)+(3)(4)+(6)(-1)+
(7)(1)+(0)(1)+(1)(-1) = 18
The effect is usually a "skeletonization" of the picture.
Each matrix element should be between -9 and 9, and the sum of
the elements should be greater than or equal to zero.
What the heck are jigsaw puzzles doing in a fractal explor-
ation program? Well, every once in awhile it's fun to take a
little time off from the exploration to play. When you select
this option, the picture will be displayed, an image-gathering
delay will occur, then you will be asked to mix the puzzle.
Once the puzzle is mixed, you can use your arrow keys or mouse
(see "USING A MOUSE") to move the cursor to the piece to be
marked for moving. When the cursor is on the piece, press a
regular key (or left mouse button) to mark it. Once marked,
the border surrounding the piece will change color. Move the
cursor to the new location and press a regular key (or left
mouse button) to exchange the two pieces.
While playing, you can press for help, to mix the
puzzle further, to change the marked-piece border color,
to preview the finished puzzle, or to return to
the menu. If you have any EGA or VGA pictures in PCX format
from another source, you can give them a ".rrm" extension to
fake-out Recursive Realm and make jigsaws out of them.
Rapid expansion lets you get a quick, rough blowup of an
area of a picture. Move and expand the viewport as described
in "STARTING FROM SCRATCH". When you have the area surrounded,
press to blow it up. There will be a short delay before
the picture is blown up.
Large blowup areas will create higher quality pictures. You
can use the coloring keys, - here, but the blowups
are not saved.
PICTURE BUILDING STRATEGY:
To get the most out of your sessions with Recursive Realm,
you will probably want to zoom in on several fast pictures and
save the slow ones for overnight delivery.
Unless your computer is a 486, the fastest pictures are
Mandelbrot pictures and Julia set (function 1) pictures under
a magnitude of 500,000. Pictures of this type with
magnitudes between 500,001 and 10,000,000,000 are a little
slower, but usually fast enough to sit and watch.
Remember, all pictures go through the data-entry menu before
being built. If you want to know the magnitude of a picture,
just press while in this menu. If the picture already
exists, highlight the name of it in the main menu, hit
to get to the data-entry menu with the it's parameters in
place, then hit to get the magnitude and center point.
To take advantage of the speed Recursive Realm has to offer,
explore the stem and outskirts of the Mandelbrot set using
integer math and Mariani's algorithm. Stay under the 500,000
magnitude range, if possible. I usually find a fast picture
that I like, then experiment with the band widths and smooth
coloring types. When you find a high-magnitude, slow picture,
just start it, then abandon it until you are ready to leave
your computer alone for awhile.
You can build pictures in the background using DESQview, but
the coloring keys will not function.
The picture catalogs (rrpics20.cat and rrpics25.cat) contain
several pictures of the fast and slow types. When you want to
build a few of these pictures of the slow type, just stick them
in a batch file and let them build overnight. There's nothing
like waking up to a few new fractals every morning. (See
APPENDIX A for more about using Recursive Realm in batch mode).
Julia sets (function 1) provide some of the fastest pictures
that Recursive Realm has to offer because they rarely require
limits of more than a few hundred iterations. One of my fav-
rite methods of exploring is to view a nice Mandelbrot picture,
press to enter zoom mode, then hit to build a
Julia set derived from a point in the Mandelbrot picture.
Notice how similar the features of the Julia set are to it's
parent Mandelbrot picture. This, of course, is because the
Mandelbrot set is composed entirely of Julia sets, but it never
fails to fascinate me.
PICTURE BUILDING TIPS:
* If you are seeing too much "shapeless" black in the pic-
ture, raise the iteration limit.
* Don't make the iteration limit unnecessarily high. This
will only slow the picture down.
* Build small 80 or 160 width pictures to experiment with
different color band settings, then when you feel satis-
fied with the results, build a full-screen (640) picture.
* Tracking the escape sequence while building a picture
with the Level Set algorithm can be fun but, when you
don't want to see it, make sure that the tracking is
toggled off because it slows down the development of the
picture. Pressing while tracking can make the dots
more visible. Some pictures are in areas that escape so
fast that you will not see any dots at all when you track
* Use the enclosed catalog of examples or other picture
sources to build master pictures then make use of the
zoom, , feature.
* If you are building a picture using the Level Set
algorithm and want to exit before it is complete, wait
until the current line finishes so it doesn't have so far
to catch up when building resumes.
* When using a mouse with the viewport, keep the viewport
small while moving it around the screen, expanding it
only after you move it to the area you want to zoom.
MANDELBROT SET PICTURES:
* Use the "white-out" feature to locate tiny black
spots in border area pictures then zoom in on these black
* The far outskirts of the set provide some excellent
pictures at relatively low iteration limits. Try
exploring the "midgets" way out at the tip of the stem
and perched in the upper and lower branches of the set.
* Tracking the escape sequence works best in pictures of
low magnification. View the full set then track (CTRL-T)
areas all around it.
* The area called "seahorse valley" (see "TERMINOLOGY"
section) is, in my opinion, the most difficult of all of
areas to get the parameters just right. But, it's worth
the hassle! If your computer has VGA capability, use a
VGA SMOOTH mode. When exploring this area, keep the max
iterations low (150-300). Try the following parameters -
Max iter = 160, Flat Range Limit = 75, High Band Width =
25, Low Band Width = 1. Use your "white-out" key to
see if your iteration limit is set correctly. You should
see a beautiful black seahorse-like pattern. If the
pattern is faint (ie. too little black) then lower the
iteration limit. If the pattern has large, shapeless
black globs, then raise the iteration limit. Build
several small pictures until you see what you want, then
build the full-screen picture.
JULIA SET PICTURES:
* Make frequent use of the function while building
or viewing Mandelbrot pictures. Explore how the set
changes as you cross the border areas of the Mandelbrot
* Tracking can be very nice in Julia sets of the Mandelbrot
* The iteration limit for Julia sets of the Mandelbrot
function usually works fine at only a few hundred iter-
ations. For the sin and cos functions, I usually keep it
at about 50 - 100. For the exponential functions, 25 -
100 works well. In fact, function 4 will always be set
at 25 by the program.
* For exponential function 5, use increments of pi for the
real and imaginary C points. (eg. 3.14, 6.28...).
NEWTON'S METHOD PICTURES:
* Zoom in on convoluted borders between different basins of
attraction (color pools).
* The iteration limit is usually fine at about 100.
MODELS OF MAGNETISM PICTURES:
* Repeated zooming produces pictures that are very similar
to the original picture.
* The iteration limit usually can range from only 25 to
USING A MOUSE:
Mouse support is available in two basic areas of Recursive
Realm. One is while moving the viewport. Press the left
button to let the viewport to move around the screen and the
right button to let the viewport to expand. For best results
stop moving the mouse before pressing a button.
<> Keep the viewport small while moving it around the
screen, expanding it only after you move to the area you want
The other area where a mouse is used is in the Jigsaw Puzzle
section of the program. This section uses a standard mouse
cursor. Use the mouse to move the cursor to the desired piece
and the left button to mark/place the piece. The right button
will bring up the help screen.
BEHIND THE SCENES:
Have patience, my friend. As previously mentioned some of
these pictures take a long time to build. The best way to
get the most out of your pictures is to experiment with
color band widths and create small versions of each picture
before creating the final full-screen version. Take
advantage of the integer math type and Mariani's algorithm
to get the most out of the speed.
THE PCX FORMAT:
The popular PCX format was developed by the ZSoft
corporation for use with their PC Paintbrush program. There
are several good commercial and Shareware programs available
for doing just about anything to PCX files that you could
possibly want to do. In addition to the commercial appeal,
the files are, on the average, about 50% smaller than those
in Recursive Realm version 1.0. If you have a PCX graphics
program such as PC Paintbrush or Word Perfect, then you can
generate very nice fractal printouts.
To provide fast and efficient display operations, Recursive
Realm always attempts to use virtual memory instead of disk
memory. If your computer uses expanded memory (EMS),
Recursive Realm will use as much of it as possible before
switching to conventional memory. Since expanded memory
managers vary in operation as much as they vary in number,
there is always the chance that a conflict between the
memory manager and the software will occur.
If you discover a conflict between your expanded memory
manager and Recursive Realm, you can disable EMS through the
"Options" choice in the main menu. Unless you have a high
number of Terminate-Stay-Resident (TSR) programs loaded
into conventional memory, Recursive Realm should have no
problem running under conventional memory. If you do
discover a conflict, please let me know about it.
Version 3.0 handles errors much better than any previous
version. If an error is encountered, Recursive Realm will
sound three beeps going from high to low and will try to
give you an error message. In almost all cases you will be
able to fully recover from the error. Here is a list of
errors you could encounter:
1.) "Value at cursor out of range" - A data value in the
data-entry menu is too high or two low. The cursor
will be positioned at the location of the incorrect data
2.) "Escape Radius must be 2 for INTEGER math" - Change the
escape radius to 2.0 if you want to use integer math, or
change the math type (F7) to floating point to use an
escape radius other than 2.0.
3.) "Invalid Magnitude" - You tried to enter an invalid
magnitude for a picture. Magnitude must be entered as
a string of digits (with or without a decimal) such as
"20000.0" or in scientific notation such as "2.0e4".
Don't use commas!
4.) "Invalid filename" - You entered an invalid picture
name. For example, you can't name a picture "my*pic*"
because "*" is an invalid character for a DOS filename.
5.) "Error opening rrealm.cfg" - The global configuration
file "rrealm.cfg" could not be created when you tried to
update the "Options" in the main menu. Is the disk
full? Have you write-protected the file "rrealm.cfg"?
If so, you should unprotect it.
6.) "Invalid directory" - You tried to switch to a directory
that doesn't exist.
7.) "Not enough memory" or "No memory" - Not enough expanded
or conventional memory could be found for an operation.
Free up memory by removing TSR programs.
8.) "Out of Memory - Decrease max iterations" - Newton
pictures require memory in direct proportion to their
maximum number of iterations. Decrease this number in
the data-entry menu.
9.) "Not Mandelbrot Picture" - You tried to use
while in zoom mode to build a Julia set from a point
taken from a Mandelbrot picture, but the picture you are
currently viewing is not a Mandelbrot picture.
10.) "Error initializing graphics" or "Error setting
graphics mode" - Current graphics mode could not be
set. Recursive Realm will notify you if it doesn't
detect the current mode, but you can tell it to try
anyway. You will get one of these messages if it
11.) "Error retrieving palette" - An error was encountered
while reading the palette information from a picture.
12.) "Error setting palette" - An error was encountered
while trying to set the display palette.
13.) "Error displaying file" - The picture file (.rr?) has
been deleted, corrupted, or marked as a hidden file.
14.) "Error opening data file" - The data file (.dat) has
been deleted, corrupted, or marked as a hidden file.
15.) "Save error - Disk full?" - The current picture could
not be completely saved. The most common reason for
this is that the disk is full.
GETTING THE LATEST VERSION:
One of the benefits of registering is that you will never
have to go out and find the latest version. When I finish an
upgrade I will notify you by mail. The upgrade fee will be
small and I always take care of the registered users before
shipping Recursive Realm to the vendors.
Recursive Realm is composed of over 12,000 lines of C and
Assembly language source code. I try my best to work the bugs
out before releasing a version, but occasionally one slips by.
If you find one of these bugs, don't spray Raid into your
computer, but please try to determine exactly what happened and
let me know.
See "ERROR HANDLING" in the "BEHIND THE SCENES" section for
a description of errors you could encounter.
Here are a few commonly asked questions and problems:
COMMONLY ASKED QUESTIONS AND PROBLEMS:
When I press from the data-entry menu, I hear a
"blatt" and nothing happens. When I change the Graph
Width to 639 instead of 640, the problem goes away.
Some computers convert the string "640" to 640.0000001
and, since this is greater than 640.0, it was flagged
as out-of-range. This has been fixed. By the way, the
"blatt" was Recursive Realm's error notification. The
error signal is now three beeps going from high to low.
When I resume building an unfinished picture, sometimes
it takes a long time before I see any progress being
Recursive Realm resumes building an unfinished picture
at the BEGINNING of the last unfinished line so you
won't see any new pixels being added until it catches up
to where it left off. If you are using Mariani's
algorithm, a delay will occur while the scans the
picture to determine how much is finished.
When I try to move the viewport with my arrow keys, it
If you have a mouse, the viewport responds to it
instead of the arrow keys. You can either use the mouse
to move the viewport, or, if you don't want to use a
mouse, you can disable mouse support through the
"Options" choice on the main menu.
When I press or , I sometimes get a
"divide error" and my computer locks up.
This version 2.0 bug has been fixed.
Recursive Realm sometimes has a conflict with QEMM
See "MEMORY MANAGEMENT" in the "BEHIND THE SCENES"
If you do have a problem, please give me as much information
about your computer system (eg. graphics card, TSR's present,
etc.) as you can, along with a description of the problem in
as much detail as you can.
CONTACTING AUSTIN SOFTWARE DESIGN:
I love to correspond, so please contact me even if you just
want to tell me about a great picture that you found.
You have probably noticed that I sometimes use a
double-address system in my documentation. If you are unsure
of where to reach me, mail will ALWAYS reach me if it is sent
to the following address:
Austin Software Design
Rt. 3 22514 W. Gibson
Buckeye, AZ. 85326
I move around a lot, but this address is the permanent
address of a family member who always forwards my mail. Here
are some ways to contact me:
1.) CompuServe Electronic Mail - My user ID is [71241,1121]
and I check my mail frequently.
2.) U.S. Mail - If you are registered, you can always be
sure that you have my current address and phone number.
Again, if you are unsure, use the above address.
3.) Telephone - If you have registered, you have my number.
If not, before July 1, 1992 call (303)-242-7606. After
this date, call (602)-386-3606.
< from contacting me with questions or problems. Remember,
this is shareware and you should be fully satisfied
before paying for it. >>
POSSIBLE UPCOMING FEATURES:
Recursive Realm is improved almost solely on the basis of
your input. Please keep your ideas coming and let me know if
you find any great pictures so I can add them to the catalog.
Here are some of the ideas I have received so far:
* Speed - I am always optimizing the code and looking out
for new algorithms. I expect each upgrade to be faster
than the previous version.
* Higher graphics modes - VGA 800x600x16 added in version
3.0. Look for 256 color modes soon.
* DESQview support - You can build pictures under DESQview
but the coloring keys will not function. I may be able
to correct this soon.
* 3-D - "Pseudo 3-D" added, version 2.5. 3-D landscapes
may be added in the future.
* Change band-widths of a picture after it is finished - This
is a great idea and will require a new type of "data"
file containing the iteration value of each pixel,
(I can't reverse-engineer this from the color on the
screen). As soon as I figure out a good way to keep
the size of this new file to a minimum, I will prob-
ably add it.
* Hold one band constant while coloring the other band.
* Let you specify each color in the color palette - These two
ideas suggest an overall need to add more color control.
On the other hand, many people have
stated that they like the current coloring system
because it is so simple. Version 3.0 gives you much more
coloring control and still maintains the simplicity. Look
for even more control in the future.
* Use the catalog file directly from the data-entry menu -
I'm trying to build another level in which a data-file
containing only picture parameters can be updated and
used to generate a printed listing and/or read directly
from the data-entry menu.
* Add User Equations - I would like to accomplish this
without requiring you to re-compile or re-assemble
any section of the program. This will require a complex
equation parser. I have had some success with such a
parser, but the added parsing slows the program down
even further. I'll keep looking for a way to do this.
WHILE IN THE MAIN MENU:
- Clear canvas or exit to DOS.
- Change drive and/or directory. (
clears entire directory string).
- Animate all existing pictures of current
menu choice type.
- Generate new picture of current menu
choice type. If a picture is highlighted,
the default values will come up as those
of the current highlighted picture.
- Delete highlighted picture.
- Rename highlighted picture.
- Beginning of file list.
- End of file list.
To make a choice from the main menu, move to that
choice and press or press the first letter of
that choice. Use the arrow keys to move to an
existing picture. The picture choices will be
sorted and pressing the first letter of the name of
a picture will move you to the first picture that
begins with that letter.
WHILE ENTERING NEW PICTURE DATA: (DATA-ENTRY MENU)
- Exit to main menu.
- Accept values and create picture in
the current graphics mode.
- Clear current data-entry field.
- Toggle between integer and floating
point math. Mandelbrot and Julia
set (function 1) pictures only.
- Toggle between the Level Set and Mariani's
algorithm. Mandelbrot and Julia
set (function 1) pictures only.
- Toggle current graphics mode.
- Mandelbrot and Julia pictures only.
Enter magnitude and center point.
WHILE BUILDING OR VIEWING PICTURE: (NOT ANIMATING)
- Exit to main menu.
- Randomly change color palette.
- "White out" all colors not in set.
- Return to starting palette.
- Return to last random palette.
- Save current color palette.
Right Arrow - Cycle low band forward.
Left Arrow - Cycle low band backward.
Up Arrow - Cycle high band forward.
Down Arrow - Cycle high band backward.
Plus Key - Cycle both bands forward.
Minus Key - Cycle both bands backward.
- Cycle color bands automatically causing
the colors to "flow".
- Track escape sequence. Toggles this
feature on or off. (Not while Mariani's
algorithm is in use).
- Enter "zoom" mode..
(The viewport starts small. Expand
it or press F10 until you see it.)
WHILE IN ZOOM (VIEWPORT) MODE:
<< See "USING A MOUSE" >>
- Return to picture.
or - Expand viewport.
or - Contract viewport.
or - Move
viewport around screen.
- Accept viewport bounds and go to
data-entry menu (any unsaved
work on the current picture will be
- Build a new Julia set from the
center point of the viewport. (this
is only available if you are view-
ing or building a Mandelbrot pic-
- Randomly change color palette.
- "White out" all colors not in set.
- Return to starting palette.
- Return to last random palette.
- Exit to main menu.
- Pause. (hit a key to resume).
WHILE CONVOLUTION OR PROJECTING ONTO 3-D OR SPHERE:
- Save picture. After you enter the
name, this becomes the "saved palette"
key. You must let a picture finish
or it will not be saved.
- Exit to main menu. (You must press F2
to save the picture and it will not
be saved if it is incomplete).
COLOR KEYS: (See "While Building or Viewing a
WHILE BUILDING JIGSAW PUZZLE:
<< See "USING A MOUSE" >>
- Exit to main menu.
- Preview finished puzzle.
- Change non-mouse cursor color or marked-
- Move cursor around if not using a mouse.
- Mark/place piece if not using a mouse.
WHILE CREATING RAPID EXPANSION:
<< See "USING A MOUSE" >>
- Return to main menu.
or - Expand viewport.
or - Contract viewport.
or - Move
viewport around screen.
- Accept viewport bounds and expand
- Randomly change color palette.
- "White out" all colors not in set.
- Return to starting palette.
- Return to last random palette.
Recursive Realm creates one or two different types of
files for each picture. Each of the files has the picture
name for the first part. Regular Mandelbrot, Julia,
Newton, and Magnetism pictures have a data file that holds
the picture parameters and has the extension ".dat". The
picture file contains the actual image in PCX format and
has the extension ".rrm" for Mandelbrot set pictures,
".rrj" for Julia set pictures, ".rrn" for Newton's method
pictures, ".rrp" for Magnetism pictures, "*.rr3" for 3-D
pictures, "*.rrs" for sphere pictures, and "*.rrc" for
Some commercial packages that read PCX files, require
the file extension ".pcx". If you are using one of
these packages, then copy or rename the Recursive Realm
picture file to the proper filename. If you rename this
file to give it the .pcx extension, don't forget to
rename it back to it's old name and extension before you
use it with Recursive Realm again.
SOURCES OF INFORMATION:
Everything that I have learned about these Fractals came
from the books listed in the bibliography of this guide.
While I have tried to provide as much information as I can
to help you understand what is actually being generated on
your screen, these books provide a wealth of additional
information that cannot possibly be covered here.
DIFFERENT GRAPHICS RESOLUTIONS:
If the data-entry menu is called with no pictures high-
lighted, Recursive Realm will automatically detect the
current driver and use the mode VGA 640x480x16 if
available. If you bring up the data-entry mode using the
defaults from an existing picture (by pressing in
the main menu while a picture is highlighted or by zooming
another picture), the default mode will be the mode in
which that picture was built. will proceed to build
the picture in this default mode. You can toggle the
current mode with .
Recursive Realm supports the following graphics modes:
* EGA 640x350x16
* VGA 640x480x16
* Super-VGA 800x600x16
You can use a smooth palette with the two VGA modes.
One problem with the 800x600 mode is that the mode
number used to set it differs with each graphics card.
Recursive Realm queries the chipset of your graphics
card in order to decide which mode to use. If your card
uses a Video 7, Paradise, Tseng, or ATI chipset, or
anything close to these you should have no problem with
the 800x600 mode. If you do have a problem, please let
me know as much information about your graphics card as
possible and I'll try to find a way to support it.
Some regular VGA cards (such as the Video 7 VEGA VGA)
will support the super-VGA 800x600x16 mode, but you may
have to adjust the horizontal and vertical size and
position controls on your monitor to view it. See the
documentation that came with your graphics card to see
if your card will support this mode. If you are using a
regular VGA card for super-VGA modes, Recursive Realm
may warn you that super-VGA is not detected. If you
know that your graphics card can handle super-VGA, just
tell Recursive Realm to try anyway.
USING RECURSIVE REALM IN BATCH MODE: (UNATTENDED)
Recursive Realm gives you the option to skip the menu,
finish a picture, then quit. This is useful when you
would like to build several pictures in a batch file
without ever going to the main menu. To use this
method, type (from DOS), or place in a batch file, the
rr [path]filename "type of picture"
where the path is optional and the "type of picture"
is defined as follows -
m - Mandelbrot pictures
j - Julia pictures
n - Newton pictures
p - Phases for Magnetism pictures
For example, if you wanted to leave the computer for
several hours (or days) and build three pictures while
you are away, you could start each picture and immed-
iately quit (so the picture would exist on the disk)
then create a batch file as follows:
(assume picture one is a Mandelbrot picture named
"mborder", picture two is a Julia picture named
"nicejul" and picture three is a Newton picture named
create a batch file called "away.bat" (or any name with
the .bat extension) containing the following three
rr mborder m
rr nicejul j
rr newtx4-1 n
At the DOS prompt just type "away" and leave your com-
puter alone for awhile. You can turn off the monitor
while building pictures.
1.) The Fractal Geometry of Nature. Inside back cover.
2.) The Mathematical Tourist. p. 159.
3.) The Mathematical Tourist. p. 157.
4.) Ibid. pp. 158-159.
5.) Ibid. p. 159.
6.) Ibid. p. 167.
7.) Ibid. p. 168.
8.) The Beauty of Fractals. p. 132
9.) Ibid. p. 133.
10.) Ibid. p. 194.
Peitgen, H.-O. and Richter, P.H. THE BEAUTY OF FRACTALS.
Springer-Verlag Berlin Heidelberg, 1986
Peterson, Ivars THE MATHEMATICAL TOURIST. W.H. Freeman and
Peitgen, H.-O. and Saupe, Dietmar. THE SCIENCE OF FRACTAL
IMAGES Springer-Verlag New York, 1988
Gleick, James CHAOS - MAKING A NEW SCIENCE Penguin Books, 1987
Mandelbrot, B.B. THE FRACTAL GEOMETRY OF NATURE W.H. Freeman
and Company, 1977, 1982, 1983
Dettman, John W. APPLIED COMPLEX VARIABLES. Dover
Publications, inc. New York, 1965
Barnsley, Michael. FRACTALS EVERYWHERE Academic Press, inc.
Stevens, Roger T. FRACTAL PROGRAMMING IN C M&T Publishing,
Briggs, John and Peat, F. David. TURBULENT MIRROR Harper &
Row Publishers, New York. 1989
Dewdney, A.K. THE ARMCHAIR UNIVERSE W.H. Freeman and Company,
Gardner, Martin - Anything and everything!
Dewdney, A.K. - "Computer Recreations" and "Mathematical
Recreations" columns in SCIENTIFIC AMERICAN magazine.
Faler, Wesley - "Image Manipulation By Convolution". The C
Users Journal, August, 1990. pp. 95-97.
Silver, Rollo - AMYGDALA NEWSLETTER - The Newsletter of the
Mandelbrot Set. This is the best source that I know of for
information on the Mandelbrot set. Definitely not to be
missed! For more information on AMYGDALA write to: AMYGDALA,
Box 219 San Cristobal, NM 87564
RECREATIONAL AND EDUCATIONAL COMPUTING (REC):
I wanted to place REC in it's own section because it is so
fantastic. REC is described as "A Mathemagical Panoply of
Computer Recreations for Involved Readers". It is a gold mine
of information and fun for recreational math enthusiasts.
You'll find gems in here to satisfy readers at all levels of
expertise - and plenty of source code to boot! REC is
published eight times a year by Dr. Michael W. Ecker, a Penn
State math professor and all-around great guy. I can honestly
say that I have enjoyed reading and responding to REC
challenges more than any other publication I have ever found.
For more information on REC send a SASE to: Dr. Michael W.
Ecker, Editor, Recreational and Educational Computing, 909
Violet Terrace, Clarks Summit, PA 18411.
Recursive Realm uses the PCX Programmer's Toolkit, version 4.0
and GX Graphics library, version 1.0 Copyright Genus
Microprogramming, Inc. 1988-91. All Rights Reserved.
PC Paintbrush is a trademark of ZSoft Corporation.
IBM is a registered trademark of International Business
DESQview is a registered trademark of Quarterdeck Office
All other products mentioned within this manual are trademarks
of their respective companies.
Thanks to the Association of Shareware Professionals for
providing the description used in the "Shareware Info" section
of this guide (and for about a trillion other things!)
Thanks to the authors of FRACTINT for setting standards in
Special thanks to Bob Falk for allowing me to distribute
"PERUSE" to Recursive Realm registered users, James Woulfe and
John Comyns for beta-testing, and William Dorion for keeping me
supplied with information on other fractal programs.
The biggest thanks of all goes to all of the users (too
numerous to mention by name) who kept me supplied with new
ideas, source code, and nice comments. I can't thank you
enough, and please keep your ideas coming!
Name and Address: _________________________________________
(phone optional) _________________________________________
Computer Model: ___________________________________________
Monitor Type: ___________________________________________
Math Coprocessor Present? YES _____ NO _____
Mouse Present? YES _____ NO _____
Graphics: EGA ______ VGA _______ Other ______
Graphics Card Model (if known): ___________________________
Disk drive(s) 5 1/4" ____ Fixed _____
Size: ____ Size: _____
(All disks will be sent in 5 1/4" format)
DOS Version: _______
Where did you find Recursive Realm? (If it came from a vendor
or BBS, please provide the name so I can keep them up-to-date):
If you have a CompuServe account, what is your user
I.D number? _______________
Registration Fee $20.00 - Thank you very much
Please include $3.00 per order for postage & handling.
Please make checks payable to Scott Jones