--> FracKit 2.1 <--
Designed and programmed
by Brian N. Hershey
of CompuSine Studios
(C)1990
Public Domain - Not For Sale
Never before has a program so richly illustrated the beauty of
mathematics like FracKit. With this user-friendly program, you can explore,
manipulate and admire the Mandelbrot and Julia sets. There are no
intimidatiing 10-digit numbers to enter, and there's no need to remember
file names...FracKit takes care of all that for you.
MAJOR FEATURES
* Magnify a picture up to sixteen trillion times to reveal new,
uncharted areas never before seen.
* Zoom between two chosen pictures automatically... up to
hundreds of times and then play them back, controlling the
pause, speed and direction of the Movie playback.
* Pan a picture up or down, left or right, to better position
your masterpiece on the screen.
* The stunning effect of color-cycling will bring your pictures
alive with the touch of a button.
* A new palette of colors will be displayed with each touch of
the mouse button.
* Convert your drawings to DEGAS or NEO format to further enhance
your artwork with other programs.
* Four coloring options let you color the interior or exterior of
the Mandelbrot and Julia sets in various ways.
* Draw a picture one-fifth of the normal screen size by using the
Sample feature... a great time-saver when experimenting with
different options.
* Save pictures while they're plotting, and at a later time let
FracKit load, finish plotting, and then save them all back to
disk... automatically!!
VERSION 2.1 ENHANCMENTS
* The Drive selection in 2.0 is replaced with Path(see #3)
selection... much more sensible and bugless this time around.
* AutoBand was taken out, with it now kicking in when MinBand or
MaxBand(see #18) is greater than zero... a little less
confusing.
* Partially Saved pics now have their own unique filenames, and
the new function AutoPlot(see #10) will Load each partial,
finish plotting it and then Save it back to disk... and it's
all automatic!
* Sample files now take up about five times less disk space.
* 2.0 didn't check what resolution it was run in, so many users
reported bugs when they ran in Med or High rez. Now the
program only runs in Low rez, which was the original intention.
* LineZoom(see #27) allows you to make a Line Movie of a
* magnified * Julia set, opening up a whole new world of
animation possibilities! The Line Movies in 2.0 only showed
unmagnified Julia sets... man, what a difference.
* First and Last frame selection on Line Movies has been added,
giving you even more editing possibilities! (see text
preceding #23)
* Switch(see #17a) lets you swap the black and white backround
and text colors.
* A more detailed description of the way FracKit handles certain
features were added to these docs, so if you already have 2.0
you should read over these expanded docs for better
understanding.... hopefully!
* While making a Movie with 2.0, you could pause the film, make
some changes, re-Start the Movie and Save it to disk. If you
Loaded that Movie at a later time, you could Play it, but
re-Starting it with changes wouldn't work. This version fixes
that, so now you can change Values and remake a Loaded Movie
without being presented with a blank screen.
FILENAMES
When a picture, Movie, palette or a converted file is saved from the
files menu, FracKit gives it the appropriate name as outlined below. A
number is put in the name of the file, starting at 1. The next file saved
will have a 2, and so on. If a file is deleted or copied to another disk,
FracKit will notice the break in sequence when a file is saved and will
replace it.
Pictures
MANDEL(number).FKM - A Mandelbrot picture
JULIA(number).FKJ - A Julia picture
PART(number) - Partially saved picture
Movies
MOVIE(number).MKM - Mandelbrot Zoom Movie
" " .MKJ - Julia Zoom Movie
" " .MKL - Julia Line Movie
Palettes
COL(number).PK(1,2,3 or 4) - Colors used with option 1,2,3, or 4.
Conversions
DEGAS(number).PI1 - Low-rez Degas picture
NEO(number).NEO - NEO picture
******
This section will list all the menu choices under each menu heading with a
description of each.
FILES
(1) Load - A fileselector is shown listing all the FracKit
picture filenames on the active drive/path. Choose
one, and it will be loaded and displayed. When
loaded, a partially saved picture will resume
plotting.
(2) Save - The picture on screen will be saved to the active
drive/path.
(3) Path - All FracKit disk operations use the path and drive
you choose from the displayed fileselector. Don't
pick individual files here, just click on 'OK' when
the drive/path are selected. The default drive/path
is the one that FracKit was run from.
(4) Delete - A fileselector shows all the FracKit files on the
active drive/path. Choose a file and it will be
deleted from disk.
(5) Convert - Choose from an alert box to save the displayed
picture to disk in either Degas or Neo format. The
file is named as described in the filename section.
(6) Quit - Returns to the desktop and resets the system colors.
OPTIONS
(7) Plot - Plots the picture on screen, using the current
coordinates in memory.
(8) Enlarge - Click the left mouse button, and while holding
it down, move the mouse to the right. The size of
the box changes with the mouse movement. Release
the button at the size you want, and then you can
move the box around with the mouse and place it over
a picture area you want to enlarge. Clicking again
with the left button will set the new picture
coordinates into memory. Start the new, enlarged
picture by then selecting Plot(see#7).
(9) Sample - Clicking on this section will activate it with a
checkmark. Clicking again will deactivate and
remove the checkmark. When active, all pictures are
drawn one-fifth of the full screen size... otherwise
the pictures take up the whole screen.
(10) AutoPlot - The active drive/path is searched for any partially
saved pictures. If present, FracKit loads each one
and finishes the picture, and then saves it back to
disk... all without your interaction! This feature
will save you lots of time. Here's a typical
scenario... magnify and experiment with different
Values on a picture in the Sample size until you're
satisfied. Then start the picture plotting with
Sample off, hit a key to pause the plotting, and
then pick SAVE from the Stop/Save/Continue box.
After you have a number of pictures saved this way
on disk, just click on AutoPlot, turn your monitor
off and go to bed (or whatever!). You'll then have
a bunch of full-screen pics on disk ready to be
admired the next morning!
(11) Mandel - When a Mandelbrot picture is displayed, a checkmark
is in front of the word "Mandel". When a Julia
picture is on screen, selecting Mandel and then Plot
will plot the last Mandelbrot picture that was on
screen. The picture plotted when the program is
first run is the un-magnified Mandelbrot set, just
waiting to be explored!
(12) Julia - Julia pictures can be seen as the 'daughters' of
the Mandelbrot set, in that the coordinates of every
individual point on a Mandelbrot picture can be used
to plot a different Julia set. There is only one
Mandelbrot set, but there are an infinite number of
Julia sets depending on which point you choose from
the Mandelbrot set. You can magnify Julia pictures
as well, giving an endless variety of pictures.
When a Julia picture is on screen, a checkmark is
in front of the word "Julia". When a Mandelbrot
picture is on screen, "Julia" can be selected with
the mouse. When selected, the mouse pointer will be
changed from the hand sign to a cross. Moving the
cross over an area of the displayed Mandelbrot
picture and clicking the left button will set new
Julia coordinates in memory. Draw the new Julia set
by selecting the Plot option(see #7).
(13) Options - These options will color either the interior or
(1,2,3,4) exterior of the set, plotting with various coloring
schemes. Experiment with different settings to see
the specific results. To further customize the
drawing, see the Density selection on the Value
screen (#18).
(14) Change - When active, every click of the right button will
display a new palette of colors. See the Contrast
selection on the Value screen (#18) to alter the
contrast between adjacent colors.
(15) Cycle - When active, every click of the right button will
cycle the palette through the on-screen colors.
While cycling, the number keys change the speed, the
+ and - keys change the direction, and the * key
single steps through the colors.
(16) Save - The on-screen palette will be saved to the active
drive/path, numbering the file as described in the
filename section above.
(17) Load - A fileselector is shown listing all the palette
files on the active drive/path. Choosing one will
then load and display it.
(17a) Switch - Clicking on Switch will swap the backround and
text colors, and back again with the next click.
(18) Values - A list of changeable options will appear in the
center of the screen. Clicking the left button in
the small box to the left of the option you wish to
change will print that current value in the top box.
You can change that value by clicking in the ADD and
SUB boxes. The longer the button is held down, the
faster the value will change. DEFAULT returns the
value to where it was when you selected Values from
the menu. OK returns you to the normal menu
control. Here is a description of each option...
Iterations - Best described as a picture-detail control...
generally, the higher the Iteration the more
detailed the picture will be and the longer the
picture takes to complete. Low Iterations are mostly
less detailed but will take less time. Experiment
for better understanding.
MinBand - Looking at the Mandelbrot set drawn at the program
MaxBand beginning, you can notice the colors form circular
bands of color that surround the black, inside area.
FracKit keeps count of these bands as a picture is
plotting and uses MinBand and MaxBand to determine
which bands to plot. The outermost band of color
would be numbered one, with the number increasing
with each band towards the inner sections of the
picture. Only the bands numbered greater than
MinBand will be colored, and the bands less than
MaxBand will be colored. All bands are colored when
MinBand and MaxBand are both set at zero.
For example, if you set MinBand at 2, the two
outermost bands will not be colored. The pictures
usually look better using MinBand by getting rid of
the bands around the edges of the screen, which
often distracts attention away from the more
detailed, middle areas.
Maxband is most useful when making a movie. If
you would set it to 60, then every frame of the
movie would have sixty bands of color, which really
helps for smooth animation.
Escape - Technically, this is the conditional exit value
for the fractal math procedure within the program,
which is normally 4. Setting to 2 or 3 at low
magnification drastically alters the fractal shape,
while higher numbers seem to only affect the orders
of color.
Contrast - When the Palette is changed (see#14), this determines
the amount of contrast of adjacent colors.
Density - Determines how many adjacent bands are colored the
same when a picture is plotting. If set at one,
every band is a different color. If Density is set
at five for example, every five bands would be the
same color. Increase Density when the colors look
jumbled together with little or no detail.
Frames - Determines how many frames to draw when making a
Movie.
ANIMATION
First a word about the three kinds of Movies you can make. The first
two are Zoom Movies, which are Mandel Zoom and Julia Zoom. You set the
first frame, enlarge the picture to any area of higher magnification and
then set the last frame. Making the Zoom Movie will then plot frames
smoothly between those frames.
The third type is a Julia Line Movie. Please read #12 above to better
understand the relationship between the Julia and Mandelbrot sets. A Julia
Line Movie is drawn based on a line of points taken from a Mandelbrot
picture. The magnification doesn't change between frames like the Zoom
Movies, but each frame is a slightly different Julia picture. Put together
in a Movie, those different pictures form amazing, flowing animations.
When you watch a Julia Line Movie and you see an area that you would
like to see in more detail, you can pause the Movie, zoom to that area and
then make a new Line Movie at that new magnification.
(19) Load - A fileselector is shown listing all Movie files on
the active drive. Choosing one will load the Movie
into memory.
(20) Save - The current Movie in memory will be saved to the
active drive, naming the file as described in the
filename section above.
(21) Play - Plays the Movie currently in memory. While playing,
the number keys control the speed, the +, - and /
keys control the direction of playback, and the * key
single-steps through the frames. Hitting a mouse
button stops the Movie if you should wish to enlarge,
replot, or use any other FracKit option on any single
frame.
(22) Clear - Clears the Movie from memory, along with all
Animation coordinates. To save the program and
yourself some possible confusion, it's good to Clear
when you're done using the Animation section and
before you set new Movie coordinates. Don't forget
to Save your work first!
MANDELBROT and JULIA
Using the Start, First and Last menu selections under the MANDELBROT
heading in the program menu will set coordinates for a Mandel Zoom movie.
The same selections under the JULIA heading will set Julia Zoom
coordinates. And again, the same for LINE. Start, First and Last are
described here once since they operate the same.
Take note that you can edit your Movie too! Load, Play and then step
through the frames with the '*' key. You can then set First and Last from
any frames of that playing Movie to make another one. To keep away from
unpredictable results, make sure the First frame # is lower than the Last
frame # when you set them. The frame numbers are displayed in the upper
right corner of the screen. Look for more info in the T & T section
below.
(23) Start - Once the First and Last picture coordinates are in
memory(see #24,25), Start will begin drawing and
saving the Movie to memory. Abort the Movie by
hitting a mouse button. If aborted after more than
one frame is drawn, you can still Save and Play the
frames as if it's a complete movie.
(24) First - Sets the coordinates of the displayed picture as the
first frame of a Movie.
(25) Last - Sets the last frame of a Movie.
(26) Line - This feature will make a Julia Line Movie based on a
line of points taken from a Mandelbrot picture, so
it's only active when a Mandelbrot picture is on
screen. When selected, move the mouse pointer over
an area of the picture and click and hold the left
button. Moving the mouse will then draw a line from
the initial click position. Releasing the button
will set the coordinates of the line in memory.
Begin the Line Movie by clicking on Start.
(27) LineZoom - Without this feature, a Julia Line Movie shows an
entire Julia shape being animated in the center of
each frame. With LineZoom, you can magnify a
section of the Julia and then keep that
magnification during a Line Movie. Clicking on
LineZoom activates it with a checkmark, while
clicking again or selecting Clear(see #22)
deactivates it, removing the checkmark.
To use it, start a Line Movie as usual(see #26),
and then after watching some frames to see
where you would like to magnify, interrupt the Movie
by hitting a key and select Stop from the
Continue/Stop box. Activate LineZoom by clicking on
it and then Enlarge(see #8) as usual on the Frame
you stopped at. When done enlarging, re-Start the
Line Movie by clicking on Start... that's all there
is to it! The new Line Movie will be made at the
last magnification you used. You can also activate
LineZoom when viewing a Line Movie Loaded from disk.
TIPS AND TECHNIQUES
* It's a good idea to Save a picture before you try out different
options until you become more familiar with all of FracKit's
features. If you or the program get hopelessly lost, just
select Load from the Files menu and choose the file
MANDEL1.FKM. This is the un-magnified picture of the
Mandelbrot set... a good place to get your bearings straight
whenever there's a problem.
* Hitting any key while a picture is drawing will abort it after
the current line is finished plotting. You can then choose to
continue drawing, save to disk, or stop plotting.
* Hitting an arrow key any time a picture is displayed will Pan
the picture one line in the direction of the arrow. Use this
to better position the picture on screen.
* Options 3 and 4 draw the interior of the Mandelbrot and Julia
sets with color, and plot the exterior of the sets with
alternating colors of black and dark grey. If you don't like
the grey stripes, adjust the contrast/brightness controls of
your monitor to get rid of them.
* When a picture has lots of areas of color that are all jumbled
and have no definable shape, increase the Density option on the
Values screen (#18) and Plot again to bring out more detail.
* When Enlarging to set the First and Last Movie frames, position
the Enlarging box so that the area you want to get too will be
plotted at the top of the next picture. When Plot is then
selected, as soon as you see that area drawn, you can abort the
Plot and Enlarge again. This way you don't have to wait for
the whole picture to be plotted.
* Sample pictures take up much less space on the disk than
full-screen pictures, which make them useful for uploading to
BBS's or for archival purposes, not to mention they take
1/25th the time to plot!
* Hitting the / key while a Movie is playing is especially nifty
by cycling the frames to give a pulsing effect.
* If you have a mega-awesome 200 frame Movie you want to share
with others on BBS's, Load the Movie and go to the Values
screen. Change the Frame value to 3 and make that Movie.
Save it, upload it and tell them how many frames to use. They
can then Load the 3 frame Movie, set the Frames to 200 and
make the Movie just like your original!
SPECIAL THANX to...
* Mike McCarley and --> Our coast-to-coast CA/PA code swapping
Mitch Howard gave FracKit 2.1 an ML pixel
plotting routine.
* Dave Staab --> My prime bug chaser/advisor
* Les Neidig --> ...I'm not sure! (-:
ABOUT THE PROGRAM...
FracKit was written with GFA Basic vs 3.07 and compiled with the GFA
Basic Compiler. FracKit and the documention are Public Domain, so feel
free to distribute it as you wish, as long as you keep the program and docs
together.
I am constantly updating this program with more features, so I'd like to
ask anyone that uses FracKit and thinks of something that could make it a
better program, please call or write me with your suggestions. With your
help we can make FracKit >THE< Fractal generation program.
The thing that the program could use the most is a machine language
routine for the Mandelbrot and Julia math routines. Let me know if you can
help FracKit with this mega-speed enhancers.
If you would like the GFA Basic 3.07 source code for FracKit 2.1 in
ASCII format, send $15 by check or money order made out to me at the
address below. Please specify if you want it on paper, disk or both. If I
send you a disk, I'll put a bunch of nifty FracKit pics and Movies on it
too. With this purchase, you'll be entitled to the source code of any
future version of FracKit for just $5.
Brian Hershey
4 E. PARK ST,#2
Elizabethtown, PA 17022
(717) 367-7458 mornings and weekends
WHAT'S A FRACTAL???
While there isn't enough space for an adequate explanation, I will
recommend these books that are a "must have" for the budding Fractologist.
Hopefully the FracKit pictures will spawn your interest enough to want to
learn more.
CHAOS...Making a New Science
...a great historical account of this new wave of scientific thought.
James Gleick - Viking - 1987
The Science of Fractal Images
...beautifully illustrated introduction to computer imaging of many
fractal types...many detailed algorithms in Basic.
Peitgen/Saupe - Springer Verlag - 1988
Fractal Programming in "C"
...program listings for dozens of visual mathematical wonders. Listings
are in print and on an included source code disk in MS-DOS format.
Roger T. Stephens - M&T Books - 1989