Fractal Engine (The)

Votes / Statistics
Hits: 3,561
Downloads: 948
Votes: 2
Your vote:
My Atarimania
Bookmark and Share
Comments (0)

Screenshots - Fractal Engine (The)

Fractal Engine (The) atari screenshot
Fractal Engine (The) atari screenshot
Fractal Engine (The) atari screenshot

Information - Fractal Engine (The)

GenreGraphics - MiscellaneousYear1992
LanguageGFA BASICPublisher[no publisher]
DeveloperDistributorST Format
ControlsMouseCountryUnited Kingdom
Box / InstructionsEnglishSoftwareEnglish

Harris, Mike / Grace, Daniel

LicensePD / Freeware / Shareware
SerialST TypeST, STe / ?
ResolutionLowNumber of Disks1 / Double-Sided
Dumpdownload atari Fractal Engine (The) Download / STMIDI

Additional Comments - Fractal Engine (The)

Other version with the same title:

[no publisher] (version 3.0 [Registered]) ().

Instructions - Fractal Engine (The)

                              The Fractal Engine

                              Instruction Manual

                             Atari ST version 1.0

                 written by Daniel Grace B.Sc. and Mike Harris

                                  (c) 1992




  Section 1: Introduction
     1.1 - What is a Fractal ?
     1.2 - About the Fractal Engine.

  Section 2: Reference Manual

     2.1 - Fractal types.
     2.2 - Drawing Julia sets and Mandelbrot sets.
     2.3 - Palettes.
     2.4 - Loading and Saving.
     2.5 - Entering Co-ordinates and Animation Sequences.

  Section 3: Extra Information.

     3.1 - Notes on fractal parameters.
     3.2 - Bibliography.
     3.3 - Disclaimer, copyright
     3.4 - Other programs to follow


Section 1: Introduction

Welcome to the Fractal Engine version 1.0 for the Atari ST.  This document is
broken in to two main parts.  This part explains what's going on in the world
of fractals and about the Fractal Engine.  The Second section is a kind of 
reference manual and tells you all about how to use the program. 

1.1 - What is a Fractal ?

A Fractal is the graphical representation of the behaviour of a non-linear
dynamical system.  A fractal has a property known as self-similarity, roughly 
this means that a single part of it looks like the whole.  Theoretically one
can 'zoom in for ever' on a fractal and never run out of detail.  Practically, 
however, you are restricted by the accuracy of the computer's real arithmetic 
and the time taken by the computer to perform an increasing number of
calculations the futher you 'zoom in'.

1.2 - About the Fractal Engine.
The Fractal Engine can be used to draw Mandelbrot and Julia sets (abr. Mset 
and Jset) for eight different families of complex functions.  What then are 
Msets and Jsets ?  The former represents the behaviour of a whole family of 
functions and the latter represents the behaviour of an explicit function of 
some family. The Mset of a family of functions can be thought of as a 'single
image dictionary' of all the Jsets of that family.  All the families of
functions used in Fractal engine are complex functions of Z parameterised by
a complex variable C.  Msets are graphs of C (initial Z fixed) and Jsets are 
graphs of Z (C fixed). For the purposes of using this program the main thing
to remember is that each point on a Mset image corresponds to a Jset image.

The program allows you to zoom in and out on both Mset and Jset images, giving 
you the opportunity to explore the wealth of geometric structures found within 
them. You can also create animation sequences to make you fractal images move. 
Degas and Neochrome format files are also supported to allow you to use the 
images in an art package.

The program uses the novel method called divide-and-conquer for calculating 
the image.  Also a technique which we call 'the level estimator' is used to 
highlight the boundary (often the most interesting part of a fractal image).  
This solves the problem (usually ignored by the authors of other fractal 
programs) caused by rapidly changing colours which can degrade the image.

You do not need a deep understanding of fractals to use this program.  In fact
a general knowledge of the ST is more useful.  However we have included
mathematical details and references herein for fractal enthusiasts.

FRAC_ENG.PRG can be in run in or out of the FRAC_ENG folder with the DEFAULTS 
folder there too.  The PICTURES and COORDNTS folders must also be there if you 
wish to load/save pictures or co-ordinate files (see 2.4) from/to the same 
disk.  To set up a data disk (eg containing just picture or co-ordinate data) 
you must create the folders PICTURES, COORDNTS and ANIMATE in the root
directory.  You will encounter problems if these folders are in the FRAC_ENG
folder unless it contains a file (eg DISPANIM.PRG) and not just folders.
Be careful when swapping disks, especially if you have an old ST.  The
best thing is to have the opposite write protect on newly inserted disks.

The Fractal Engine is written entirely in GFA BASIC v3.0 and compiled using
the v3.6 compiler.  


Section 2: Reference Manual

The reference manual lists all the available functions of the Fractal Engine.
They are grouped in topics.  The Main menu is the main display which is first
shown after loading the program.  The title screen will remain displayed after
loading until a mouse button is clicked (It is a 3D rendering of the Z^2+C
Julia set for C=i).

2.1 - Fractal Types.

The following types are available:

   1. Quadratic - The equation Z->Z^2+C yields the 'classic' Msets and Jsets.
                  The Mset of this equation was the first of its kind to be
                  discovered (by Benoit Mandelbrot).  Fondly known by Benoit 
                  himself as 'My baby', many people know it as the 
                  'squashed beetle'.

   2. Cubic     - A home grown fractal!  The equation Z->Z^3-Z+C yields this
                  variation of the 'squashed beetle'.

   3. Degree 4  - This fractal is drawn from equations for modeling magnetism
                  and remarkably contains the 'squashed beetle'.  The Jsets,
                  called 'Yang-Lee Zeroes', are quite different from anything 
                  else and are definitely worth a look.  The equation is: 
                  Z->((Z^2+C-1)/(2*Z+C-2))^2 .
   4. Newton    - This fractal is drawn by applying Newton's method for 
                  solving  P(Z)=(Z-1)(Z+C)(Z-C)=0.  This yields the dynamical
                  system Z->Z-P(Z)/P'(Z)  (' meaning the derivative of P(Z)
                  w.r.t. Z).  A point is coloured depending on which of the
                  three roots Z has converged on (eg Z=1,-C or C).  Try and 
                  spot the 'beetles' in this one!

   5. Sine      - The equation Z->C*SIN(Z) produces very different looking
                  Mset and Jset images.  

   6. Cosine    - As for sine but the equation is Z->C*COS(Z).

   7. Jellyfish - The fractals yielded by Z'->Z, Z->Z^2+C, C->Z' contains
                  absolutely no beetles at all, even though the equation
                  is very close to the classic Z^2+C.

   8. Barnsley  - Based on the iterated function systems (IFS), as described
                  by Michael Barnsley in his book 'Fractals Everywhere'. Zooms 
                  can produce cell like patterns similar to the cross-section 
                  of a plant.  Two equations are used here : Z->(Z-1)/C
                  If Re Z>=0, otherwise Z->(Z+1)/conjugate(C). 

The fractal type can be changed from the Types menu or by loading a picture or
data file of a different type from that currently being used.  The Types menu
is selected by clicking on the  'TYPES' button from the main menu screen. 
When in the menu, clicking on 'TYPE +' or 'TYPE -' increments or decrements
the current type respectively.  Click on 'CHOOSE' to change to the new type
selected or 'EXIT' to return to the main menu with no change.  Upon start-up
the initial type is 'QUADRATIC'.

2.2 - Drawing Jsets and Msets.

There are an infinite number of possibilities for drawing different pictures  
and this is all, normally, done from the main menu.  There are two options

   JULIA  - Draws a Jset by selecting a C-value from the current Mset image.  
            This is done by firstly clicking on the 'JULIA' button.  You
            should then move the mouse pointer around in the top window.  
            Clicking in this window updates the current C-value for drawing 
            the Jset image. Clicking in the lower window selects the currently 
            displayed C-value and prompts you to enter or change the other 
            drawing parameters (see 3.1).

   ZOOM   - Zoom in (or out) on the current Mset image or, if it exists, Jset 
            image.  This is done by firstly clicking on the 'ZOOM' button and 
            then selecting whether you wish to zoom on the Mset or Jset.
            Depending on which was selected a square box with diagonals will 
            appear in the relevant window.  This is the 'zoom-box viewfinder' 
            and can be moved around in it window with the mouse and made to 
            grow or shrink by clicking the right and left mouse buttons 
            respectively. When you are happy with the view, press the space 
            bar and select whether you wish to zoom in or out.  Then enter the 
            parameters, as described in 3.1.

Having entered all the parameters confirm whether or not you wish to draw the
picture and then whether a small or full size screen is desired.  Once the
image has been calculated, a value for BOUND is requested, enter a value and 
the picture will be completed.  You can either try another value or accept the 
current and return to the main menu.  See 3.1 for more on the parameter BOUND.

   SHOW C - Performs the opposite of JULIA in that it takes the current Jset
            image and shows the corresponding point on the Mset image.  Click 
            the mouse again to continue.

   RESET  - Takes images back to initial status as if you selected a new type.
            All pictures you have found (stored in memory) are lost, so you
            have to confirm this operation.

2.3 - Palettes.

Selecting the 'PALETTES' button or the 'FULL' button from the main menu takes
you to the palette menu. A box at the bottom right of the screen describes
which image the current physical palette is for (eg. FULL, MSET, or JSET), its
palette number and mode number. There are 31 palettes (0 to 30) each of which
can be displayed in one of 12 modes (0 to 11).  Palettes numbered 21 to
25 are intended to be used for the DEGREE 4 fractal type while 26 to 30 are
for NEWTON. The remaining palettes are for the other types. The palette and 
mode numbers for the current physical palette can be changed by using the top 
four buttons of this menu.

The other options on this menu are :

    (Click on the centre window(s)) - switches the current palette 
             between the Mset and Jset or displays the entire FULL image. 
             The former can also be done from the main menu.

    EDIT  -  This allows you to edit individual colours of the current palette
             via another menu. The top six buttons are used to change the red,
             green and blue values of the current colour, which can be selec-
             ted by clicking on 'COLOUR' and then any pixel.  STE owners can
             use the right mouse button for fine editing of colours. The EXIT
             button takes you back to the Palettes menu.

    SAVE  -  Click on this to save the entire palette data onto disc. You only
             need to do this if you have edited a palette and want to use this
             palette at a later date.  It is saved to the DEFAULTS folder.

    SWIRL -  Rotates the colours in the current palette to produce a lovely 
             psychedelic effect. Click the mouse again to continue.

    EXIT  -  Takes you back to the main menu.

2.4 - Loading and Saving.

The two types of file that can be loaded and saved by the program are picture
files and co-ordinate files.  The picture files end in either '.SML', '.FUL',
'.NEO', '.PI1' for small screen, full screen, neochrome or degas file formats
respectively.  The co-ordinate files end in '.CDF'.  An explanation of each 
follows :

2.4.1 - Picture files  

The loading and saving of these files is done from the main menu by clicking
on the 'LOAD PIC' and 'SAVE PIC' buttons respectively.  


Having selected to load a picture file, an alert box asks you whether you
wish to load a small or full screen picture.  A fileselect box then appears
for you to select the file you wish to load, clicking the 'CANCEL' button will
return you to the main menu.  Having selected the file, it now loads.

If you have selected a full size screen, you have the option of having a small
copy made so that you can perform further investigations on the picture. 

Note : That an existing image can be lost from memory when loading a picture , 
and always if the loaded picture is of a different fractal type from that 
currently in use. So save anything you wish to keep before loading.


Having selected to save a picture file, an alert box asks you which out of
the Mset, Jset or Full screen images to save.  If only the Mset image exists 
then this is chosen by default.

If you choose to save the Mset or Jset images, a prompt will appear suggesting 
the next file number available and giving you the opportunity to edit it.  It 
is a good idea to accept the current number and make a note of which picture
it was.  Editing the file number can be useful for overwriting old files
with new ones.  You are then asked to confirm the save operation. 

If you choose to save a full size screen, you will be first asked whether you
whish to save the picture in Fractal Engine, Degas, or Neochrome format.  Only
the Fractal Engine format has the co-ordinates and parameters saved with the
picture so remember that Degas and Neochrome pictures cannot be loaded back 
in.  A prompt then appears for file number followed by a confirmation request,
as above.

If Degas or Neochrome was selected, you then have the option to reduce the
number of colours used in the picture in order that extra colours may be used
for other things, such as text, in an art package.  The default is sixteen,
but nine or four colours can be also selected.  Having chosen this, the picture
is promptly re-coloured, if necessary, and saved.  To obtain a print-out of a 
full sized picture you will have to use some package supporting Neo or Degas
and with a suitable printer driver.

Before saving files ensure the PICTURES folder are on disk otherwise the 
program will crash.

2.4.2 - Co-ordinate Files

The co-ordinate files occupy fifty bytes of storage and contain only the
co-ordinates of a fractal image and not the picture itself.  They are loaded
and saved by clicking on the 'LOAD CDF' and 'SAVE CDF' buttons, respectively,
from the Co-ordinates menu.  The loading and saving operations act the same as 
those for a small screen picture files (2.4.2, above) except the COORDNTS
folder is used instead of PICTURES.

Co-ordinates files are useful as they do not take up much storage space and
are handy for saving the start and end frames for an animation sequence, see
2.5.2, but remember that the pictures have to be re-draw if you wish to view 

2.5 - Entering Co-ordinates and Animation Sequences.

As well as drawing Jsets and producing Zooms from the main menu, you are also 
able to draw images from parameters entered from the keyboard.  This is
useful for slight adjustments to the number of iterations or the area in view.
Another function is to produce an animation sequence of a zoom or changing
julia set image.  This is great for impressing people as they can actually
see something moving on the screen.

Both these functions are used by first entering the Co-ordinates menu, click
on the 'CO-ORDS' button from the main menu, and are described below:

2.5.1 - Entering and Drawing Co-ordinates.

Upon entering the co-ordinates menu the current Mset image is displayed the 
top window with its parameters below.  Clicking on 'MANDEL' or 'JULIA' swaps 
between displaying the Mset and Jset images, respectively.  If there is no 
Jset image then the top window is left blank.  The parameters displayed can be 
edited by clicking on the 'EDIT' button, see 3.1 for details on these 
parameters.  Clicking on the 'DRAW' button will draw the selected image with 
the parameters shown.

Note that unless an image is draw with modified parameters any editing done
will be lost when exiting back to the main menu.  Drawing will mean you'll
loose the current small picture or the full (which ever is selected).
So take care.

2.5.2 - Creating Animation sequences.

There are two kinds of animation sequences possible, a Zoom animation of a
Jset or Mset, and a Jset animation of changing C-values for a given fractal 
type at a fixed magnification.  These different methods are selected by 
clicking on the 'ZOOM ANIM' and 'JUL ANIM' buttons respectively.  Both 
operations have the same methods as described below :

    1. First select Mset or Jset and then the co-ordinates for the start frame.

    2. Click on 'ZOOM ANIM' or 'JUL ANIM'. ('JUL ANIM' needs 'JULIA' to be
       selected first.)

    3. Confirm whether the parameters are correct for start frame.

    4. Select end frame. (Do not change fractal type or RESET)

    5. Enter the number of frames you wish to have (max 255).

Co-ordinate files will then be written to the disk for each frame required.
They are saved in the ANIMATE folder, so this directory must be on disk. 

To draw the images click on the 'CONVERT' button which will read in each
co-ordinate file in turn and draw an image from it.  These images are also
stored along with a data file (default ANIMATE_.ADF) in the ANIMATE directory.

It may take some time for all the frames to be draw, heavy mathematics are
involved so this may be an overnight job.

The number of frames contained in an animation sequence varies depending on
the type of sequence, how much change is involved, the amount of free disk
space and the amount of memory the computer has.  Too many frames may make
the sequence unnecessarily slow but too few may make it very jumpy.  As a
rough guide a magnification sequence of about a thousand times needs about
forty frames to appear smooth.  That's approximately thirteen frames for every
magnification of ten.  So for a magnification of one million you would need
around eighty frames!  Note : it is best to have the final frame of a zoom
animation roughly central in the start frame.

Disk wise: each small size frame takes up 8050 bytes of disk space and each 
full size frame 32050 bytes.  Single sided drive owners, beware!
Obviously you wont be able to a 50 full size animation ,for example, without a 
hard disc.

Memory wise: a 520 STFM/E can have in memory at most 40 small size or 10 full 
size frames.  For larger memories, each half meg can store around 64 small 
size or 16 full size frames. So a 2 meg ST could have an animation sequence 
of 236 small or 58 large size frames.

There are three example co-ordinates file pairs suitable for start and end
frames (numbered A0 and A1 respectively) for 40 frame animations you may wish
to try.  Below is listed the files for the start frames and comments on 
animation type and approximate time taken to compute the 40 frames :

QUAD_JA0.CDF   Yields a changing Jset animation (about an hour).
CUBE_JA0.CDF   Zoom animation of 'necklace shaped' Jset (overnight job).
QUAD_MA0.CDF   Zoom to a 'satelite beetle' (overnight job).

2.5.3 - Displaying Animation Sequences.

The program 'DISPANIM.PRG' can be used to display an animation sequence.

It must be run from the same directory as the main program as it accesses
PALETTES.DAT from the DEFAULTS folder.  Next insert the disk containing the
animation sequence and click on the relevant *.ADF file to load and display 
the sequence.

Clicking the mouse buttons will allow you to load another sequence or exit
the program, the 'R' key changes the palette and 'S' changes the speed(not
very responsive - so hold it down for a few seconds).

WARNING - The ANIMATE folder is intended as a working folder, meaning : if
          you wish to have another animation sequence of the same format* on 
          the same disk you should copy the sequence to another folder with a
          different 7 character name (Sorry you'll have to use a ram disk),
          then trash the sequence and ANIMATE._ADF in the ANIMATE folder.

          Alternatively if you want another animation sequence of a different
          format* then simply change the name of ANIMATE_.ADF using SHOW INFO
          from the DESKTOP.  Remember to keep the extention "ADF".

*format : Meaning for example a cubic Jset 'ZOOM ANIM' will produce the same 
format of files as a cubic 'JULIA ANIM' sequence.


Section 3: Extra Information.

3.1 - Parameters

The images drawn using this program depend sensitively on the type, the
magnification viewed and the parameters listed below.

    X0, Y0 :  Co-ordinates of the bottom left pixel.

    dX     :  Horizontal distance between pixels.  The vertical distance is
              dX*(1+1/16+1/64) = dX*1.078125, eg. the images are vertically
              stretched by this constant.  This may seem pedantic but this
              results in the correct yx ratio and explains why shapes appear 
              a little squashed on the ST.  If you want an image centered
              about the x-axis set Y0 = -50*dX*1.078125 = -53.90625*dX.

(When using ZOOM the above three parameters are worked out for you)
    SPREAD :  Setting this parameter to 1 produces many level sets
              ('Colour bands') in the image. Increasing to 2 or more causes 
              the colours to be 'spread out', and means the drawing of the 
              image will take slightly less time.

    ITERS  :  Is the maximum number of calculations to be used for any one
              point of the image. If the image lacks detail you will need to
              redraw the image with an increased value for ITERS.

    PERIOD :  By checking for periodic orbits of Z it is possible to 'trap'
              points in the set without doing the full ITERS calculations.
              PERIOD determines the maximum period to check for. Eg : if you
              draw the quadratic jset of C=-1 then periods should be set to 2.
              If you are unsure about this parameter set it to 1.  PERIOD 
              should only effect the time taken to compute the image and is
              not used by all fractal types.

    BOUND  :  This determines the thickness of the boundary of the set being
              drawn. The larger BOUND the thinner the boundary : with BOUND 
              set to 1 every colour in the image has a boundary, but with 
              BOUND equal to ITERS or greater no boundary colour appears in 
              the image.

You will need to experiment with the 'FRACTAL ENGINE' to get used to using
these parameters.

3.2 Bibliography
Below are a list of the main sources of inspiration and reference for this

     1. Peitgen/Saupe: The Science of Fractal Images. Springer-Verlag.

     2. Peitgen/Richter: The Beauty of Fractals. Springer-Verlag.

     3. Barnsley: Fractals Everywhere. Academic Press.

     4. Mandelbrot: Fractal Geometry of Nature. W.H.Freeman and Co.

     5. SIGGRAPH: IEEE Computer Graphics. (Journal : various papers 1980 ...)

     6. Bostock/Chandler: Mathematics, A core course for A level. Publisher???

     7. Churchill/Brown: Complex variables and applications. Mc Graw Hill.

     8. Mandelbrot sets and Julia sets (2hr VHS video with music). Send SAE
        for catalogue : Art Matrix, PO 880MJ Ithaca, NY 14851-0880, USA.

3.3 Disclaimer, copyright, etc.

The authors wish to add that no guarantee is made for the correctness of the
details in this document.  Every effort has been made to ensure that the
program operates as described herein.  However, due to the need for updates
to the program some functionality may change from that described.

The compiled programs and this document may be used and copied freely by any 
person as long as the files remain together and intact.  Also none of this
document or programs may be reproduced in part, resold, or hired without the 
permission of the authors.

3.4 Other programs to follow

We are currently working on a version 2.0 of this program which will incorpo-
rate 68000 code for drawing routines thus speeding up the program vastly. 
There will be other fractal types available and the ability to produce 3D
renderings resulting in images similar the title screen (with shadows).  Plus 
more goodies as well as some general improvements on v1.0.

We are also working on a program for drawing 3D pictures ('slices') of four 
dimensional fractals (existing in a quarternion space).  This program will
come with a tutorial/demo on complex and quarternion fractals.

These packages will be available towards the end of January 93 priced ten
pounds each. If anybody has any ideas or information to contribute 
concerning fractal programs please do let us know at the address below.

Make cheques payable to Mr M.B.Harris and send to the following address :

    Mr. M. B. Harris,
    Garden Flat,
    20 Bristol Road Lower,
    BS23 2PW

Please send an SAE, so that we can inform you of futher programs (Probably v3.0
for the FALCON).  Also state which model ST you have.  A well commented source 
code for v1.0 is available for forty pounds.


About Us - Contact - Credits - Powered with Webdev - © Atarimania 2003-2020