MANDELTOUR/AGA v3.0   WHY A NEW MANDELBROT EXPLORER ? There are already lots of Mandelbrot explorers, most in the public domain, and a few, very performing, commercial ones, such as Mand2000. Is there any room left for a new product? Two simple answers: 1 - Take a glance at MandelTour pictures. If you feel that you already saw them hundreds of times, better stick to your old Mandelbrot explorer; MandelTour is not for you. If you see the difference, you should be interested with the numerous rendering options of MandelTour and its exclusive palette facility. There is nothing equivalent in other Amiga packages. 2 - MandelTour is designed for a systematic exploration of Mandelbrot set. This is a complete universe to explore, fascinating, but infinite... Why waste time in exploring again areas which were already computed weeks or months before? MandelTour keeps a catalog of all the pictures which have been saved and allows you to redisplay any of them with a few mouse strokes. Once again there is nothing equivalent right now.  INSTALLATION  Before anything, do make security backups of the two supplied diskettes. They are not copy protected. Don't change their names! (in other terms, if you used Workbench facilities for these backups, rename these copies so as to remove the words "Copy_of_" from the diskettes names. The installation of MandelTour is rather simple, but you must decide between several options, depending on your setup and your habits. You must understand that MandelTour is designed for a systematic exploration of Mandelbrot and Julia sets and that it keeps a catalog of all the calculations that you have saved, in a special file along the main program. So: 1 - If you have only one floppy, there is no installation to be done, but be prepared to do some swapping. Everytime that you save a picture, the program will ask first for the current storage diskette, so as to put the new picture asides the preceding ones, then for the master diskette, so as to update the catalog. 2 - If you have two floppies, keep the master diskette in one of them and put the storage diskettes in the other one. 3 - If you have a hard disk, you can install the program on your disk. Simply open the master diskette and drag the icone of the MandelTour drawer onto your hard disk. Then the program will run from the hard disk but will go on asking for diskettes for saving the pictures. 4 - The preceding solution is not completely satisfactory because of the slowness of floppy operation. Also, picture files range from 40-60 Kbytes (lowres) to 200-300 (hires, by far the most attractive pictures), so you can't store many of them in a diskette and moving through the catalog still implies some swapping. Things are considerably easier and faster if you save your pictures on your hard disk too. However, beware! If you really get a taste for the thing, you could gather a few hundreds of pictures, up to 300Kbytes each... Do you have enough room on your disk? (don't worry too much, it is always possible to clear a part of the library...but less easy to recover the dismissed pictures. Moreover, you can always begin this way and later on decide to save your pictures in diskettes) If you do want to run this way, merely copy all the files of the 2nd diskette in your MandelTour drawer. There are several methods for this: (i) from Shell... surely you know what to do (ii) from Workbench: - open this diskette - select the 'Show all files' option in the 'Window' menu. If necessary, increase the size so as to see all the files. - drag all the file icons onto the MandelTour drawer icone. There will be a warning requester for the 'Mandel.biblio' file, already existing. Choose to overwrite it. That's all! (iii) you could also operate from the program, through the 'Add Picture' menu - more about this later. If you are not patient enough to weight pros and cons and make up your mind, or if you can't prevent yourselves from running MandelTour without reading the doc, go ahead! You can run MandelTour safely from the diskettes, and, hopefully, you should use it intuitively for most of its functions. Simply, have an empty formatted diskette handy in case you would decide to save your first pictures right away. It will be possible to install the program on your hard disk at any time. (For this, simply follow the above lines. However, if you want not to loose your new pictures, you will have to use the 'Add Picture' menu -- and to read the corresponding information.) MandelTour is memory hungry. It opens 2 screens when running in Julia mode, both of which can be overscan hires 8-plane screens, i.e. 300-400 Kbyte each. Additionnally, its rendering facilities ask for a temporary storage of 2 bytes per pixel, i.e. up to 800 Kbytes more... So, better have plenty of memory, otherwise don't run too many tasks at once! --------------------------- INTRODUCTION --------------------------------- The Mandebrot Set is a very complex object that you can see as the black shape in the opening screen. A few details about its computation are given at the end of this notice. The important point is that the Set is a mine of fascinating pictures, and the only purpose of this software is to help you to dig them out without worrying about the underlying mathematics. These pictures can be understood simply. Assume that the Set can be cut out of a metal plate and that this plate is heated. The temperature arises all around. This can be visualized with a thermography, i.e. points with a temperature within a given range are rendered with a given color, points with a temperature inside another range are rendered with another color, and so on... Roughly, the temperature varies all the more rapidly (in other terms, there are all the more colors) as one is closer to the Set boundary, and this is the key point: the Set boundary is fantastically, marvelously complicated. You cannot really sense this from the only opening picture. You can see disks in all sizes and you can admit that others exist that are too small to be seen, due to the poor resolution of the screen. But there is more. The Set can be continued with myriads of invisible lines that connect it with myriads of microscopic replicas of the main set. These lines are invisible but, within our thermography interpretation, they make the temperature arise around them and this makes fantastic structures appear. Now, in order to view them, you must watch very tiny details, very near the Set boundary; you need a powerful microscope. MandelTour just supplies it. The principle is very simple: you begin with a full-screen picture of the whole Set. You frame a part of it in the same way as you would make a DPaint brush. This part is enlarged, possibly to the full screen size and... you repaet the process again and again, framing and enlarging. All the pictures can be saved in IFF/ILBM format, so you can export them in other graphical softwares. A major problem is how not to get lost when you go deeper and deeper in the Set details. Think that the Set enlarged by a (very modest, by the terms of MandelTour) 1000000 ratio is more than 200 miles wide while only a 14-inch area can be seen through your screen. And think that you can go far deeper, roughly up to a 10^35 ratio --- then the Set would be larger than the whole known universe!!! In addition, as you proceed with successive enlargements, you often find several places in the same screen that all seem worth a close-up. Then you must be able to go back in your exploration so as to enter another branch. These problems are handled with a purely graphical method. All the pictures obtained with this program (and saved) are pieces of a large graphical library which allows you to come and go in the Set. The catalog of this library is kept up to date in a special file, Mandel.biblio, where every picture corresponds to a record of the strategic data concerning it. The navigation through the catalog is done through two "Zoom" functions. First, the "Zoom In" function begins by drawing the outlines of all the pictures which were obtained by enlarging the picture on screen. Then you just have to frame one of these outlines with the mouse to reload the corresponding picture (you can also choose among the largest of these outlines by means of arrow keys only, as will be explained later). Conversely, the "Zoom Out" function scans the catalog and reloads the smallest picture which contains the picture on screen. All this is completely automatic when all the pictures are within reach from the program, i.e. when all is on hard disk; in the case of a diskette library, you will be asked the diskette which contains the required picture. MandelTour also allows you to produce other kinds of pictures, namely Julia pictures and "incomplete Mandelbrot" pictures. All of them are related to the Mandelbrot Set.  THE JULIA SETS Trying to explain Julia sets to a non-mathematician is as difficult as explaining the Mandelbrot set --- hopeless, in fact. So, we give just a few descriptive words. First, if there is a single Mandelbrot set, there is an infinite number of Julia sets. Each of them can be enlarged as deep as one wants, but you will rapidly discover that enlarging Julia sets does not reveal new details (informed people speak of auto-similarity, i.e. one gets the same patterns irrespective of the scale), so usually one does not go too deep inside Julia sets. There is a strong relationship between Mandelbrot and Julia sets. Each Julia set is characterized by its "source point", which must be specified in the Mandelbrot set plane. If the source point belongs to the Mandelbrot set (i.e. graphically, if it lies inside the black part), then the Julia set looks like the above mentioned solid plate of the Mandelbrot set, i.e. its picture contains a large black part. If the source point is outside (in the coloured part of the Set), then the Julia set only contains invisible dusts and threads, and especially the complex coloured structures attached to them. Julia sets exhibit a sharp transition when their source point passes through the boundary of the Set, and their pictures are all the more complex and attractive as the source point is nearer the boundary. In MandelTour, the navigation through the Julia sets is done by means of two screens. One of them shows the plane of source points, i.e. the Mandelbrot set or a part of it, and all the visible source points of Julia pictures in the catalog are indicated. The other screen is the Julia screen. To load a Julia picture, you just have to click its source point in the Mandelbrot screen. Then, if you have saved enlargements of this particular Julia set, you can move back and forth between them with the zoom in and out functions, as in the Mandelbrot set.  INCOMPLETE MANDELBROT SETS The "incomplete Mandelbrot sets" are obtained through a very simple change in the calculation recipe (see Appendix). There are 5 variants, leading to "incomplete-1" to "incomplete-5" sets. They too are defined by a source point, which again will be chosen in the Mandelbrot plane, but there is now no special relationship between the Mandelbrot set and these special sets. As far as I know, there is no mathematical interest in these sets, but they can provide interesting pictures. The name "incomplete set" comes from what can be obtained with the "incomplete-1" kind. This looks like the classical Mandelbrot pictures, except that a part has been removed, more or less important depending on the location of the source point.  THE PROGRAM MODES So, there are 3 different modes in the program, namely (pure) Mandelbrot, Julia and incomplete-Mandelbrot modes. The program is always initialised in Mandelbrot mode. Mode change is performed through a menu function. MandelTour mentions again the running mode after any menu call or after a mere mouse click.  THE PICTURE COLOURING Here, are a few sketchy explanations about what happens when the program computes a picture. More information will be given later. A numerical picture is made of discrete points, the "pixels", 320x256 for a lowres PAL screen or more if you are running in overscan or in hires. For every pixel, the program computes a number N --the "temperature" mentioned above-- then it stores N in a kind of file and it sets this pixel in a temporary colour. At the end of the calculation, the N-file is read again and the program makes its best to divide the interval swept by the N's into as many slices as available colours, with slices as equal as possible. Then the pixels are recoloured in the colour attributed to their slice. This first colouring is always done with the same colours as the parent picture. Colours can be changed with the "palette" menu function. One can also choose more sophisticated rendering through the "rendering" menu function.  THE MAXIMUM ITERATION NUMBER  Still an effort for non-mathematicians! You must understand that for every pixel the program enters a loop of calculations and it repeats it more or less depending on whether the pixel is inside the set or outside. The above mentioned N numbers are simply the numbers of loops -- the number of "iterations" -- which are done for the various pixels, before exiting and considering the next pixel. Theoretically, this loop should be endless inside the set. Of course, since running for ages is out of question, one must decide where does the eternity begin. One chooses a maximum value NMAX for N. If, for a given pixel, one still turns around the loop after NMAX iterations, it is assumed that one will never go out; the pixel is assumed to belong to the set and it is coloured in black. Of course, would one have continued one or two loops more, maybe the iteration would have stopped by itself; in other terms, the real N could be NMAX+1, or NMAX+2... and not infinity, and the pixel should not be black. Such errors will be frequent if NMAX is chosen too low, resulting in a dust of erroneous black pixels. If you meet too many of them, it will be time for you to increase NMAX for the following enlargements. However, before that, begin with accepting the NMAX proposed by the program.  THE ARITHMETIC ACCURACY  Another parameter plays an important part in the accuracy of computations, namely the number of digits used in arithmetic operations. MandelTour uses fixed-point assembly routines with 32, 64, 96 or 128 bits. Obviously, a too low accuracy leads to meaningless calculations. MandelTour uses an empirical recipe to choose the relevant accuracy, but you can override this choice if it does not yield satisfactory results.  THE PICTURE RESOLUTION  MandelTour can provide pictures in any of the screens available to your setup, with the size that you want and up to 256 colours -- insofar as the corresponding screen can be open. However, we urge you not to multiply the screenmodes too much in the library. A MandelTour "screenmode" is defined with a mode (i.e. lowres, hires...), a size (320 x 256,...) and a depth (up to 8 for 256 colours). Changing one of these parameters induces a change of the screenmode. The important point to be noticed is that loading a picture with a screenmode different from that of the current picture requires closing the current screen, opening a new screen and finally loading the new picture. Screen closing and opening are slow operations which should be avoided as far as possible. Choosing an arbitrary size can arise another difficulty: MandelTour assumes that your screen has a physical width/height ratio of 4/3 (on your monitor) and it relies on this assumption to avoid distortions in its enlargements. Using screens with arbitrary dimensions can lead to deformed pictures. This distortion can be put in evidence by recomputing the opening Mandelbrot picture in this new mode: the disks all around the main body should be perfect circles. If they are not, correct the width or the height and redo the computation from the 1st picture. ----------------- MANDELTOUR MENUS AND FUNCTIONS ----------------------- MandelTour is structured around three menus - a General menu, which puts together several utilities - a Navigation menu, which contains the various functions for moving through the graphical library - a Creation menu, which contains all the functions for computing new pictures or for modifying them. We begin with the 2nd menu  Zoom in Zoom out Click Source "NAVIGATION" MENU Change screen Refresh Data Load picture Reset Slide show  This function first displays the part of the catalog which can Zoom in be reached from the picture on screen, i.e. it draws the oulines of all the enlargements made from this picture. You must redraw one of these outlines to load the corresponding picture. For this, put the cursor near the top left corner of the target outline, press the left button and drag the mouse towards the right, while keeping the button pressed. This makes a rectangle to appear. It is not required for this rectangle to coincide exactly with the target outline: the program will look for the nearest picture in the catalog. Moving the 2nd side of your rectangle on the left of the first corner and then releasing the button cancels the selection. You must resume all the process, clicking the left corner and drawing a rectangle by dragging towards the right. If you want to return to the menu, hit Escape key. Finally, drawing a rectangle as large as the screen will reload the same picture. The deepest enlargements are rendered as mere points, near invisible. To make them more visible, hit the ARROW-UP key (which is the keyboard shortcut for the Zoom In function). These points are then transformed into more visible crosses. The Zoom In function can also be controlled by means of arrow keys only: - The UP key has 3 functions : (i) calling the zoom-in function (at first press). The largest outline is printed in bold: this means that it is preselected, i.e. ready to be selected. (ii) this preselected frame is selected  with a 2nd press. It is then reprinted in another colour. A secondary effect of this 2nd press is to redraw the point-like outlines as crosses, so as to make them more visible. (iii) loading the selected picture when pressed again just after the 2nd press (otherwise the selection is cancelled) - The RIGHT and LEFT keys are used to change the preselection among the 8 largest outlines. The preselected frame is always bold-printed. - The DOWN key has the same effect as ESCAPE, namely to return to the general menu. This is the reverse function of "Zoom In". The program Zoom Out looks for the pictures which contain the picture on screen and reloads the smallest of them. Two screens are opened within Julia or incomplete-Mandelbrot modes, one for Julia or incomplete-Mandelbrot pictures, the other one for the sources in Mandelbrot pictures. The Zoom functions run on the two screens. This function is activated only within Julia or incomplete Mandelbrot modes. The program switches to the "Source" Click source screen and you must click one of the visible source points. Then the first picture computed with this source point is reloaded. This function is activated only within Julia or incomplete Change screen Mandelbrot modes. It acts as a toggle between the source screen and the picture screen. Reloads the picture on screen, so as to clean it from various Refresh writings (for instance after a cancelled zoom or a cancelled computation). Makes a window open with strategic data about the picture Data on screen: the name of its IFF/ILBM file, its type (Mandelbrot, Julia...), the coordinates of its corners and its possible source point, plus a little information about the computation. Loads a picture directly from its position in the catalog. Notice that this position is not necessarily the number which Load Picture appears in the name of the file (these files are automatically labeled Mandel1, Mandel2, Mandel3... by the program, but once you have deleted one of them, the vacancy in the numbering is never filled). Also, notice that you can leaf through the catalog by means of the keyboard shortcuts explained later. Reset Reloads the first picture (the whole Mandelbrot set) in the Mandelbrot screen. This function proposes a continuous display of selected pictures Slide show in your library, with a given time for every picture (actually, a rather crude slide show, without double buffering). Of course, this function is of no interest to people without a hard disk, since they would be obliged to stay near their machine to insert the picture diskettes as they are asked for by the program. Selecting this function makes a pop-menu to appear, with 4 options: - an adjustement of the delay between pictures. Set integer values, from 1 to 127 sec. - a general selection for all pictures, so as to decide which will appear in the slide show. Every picture is displayed, and you are reminded whether the picture was previously retained or dismissed, or if it was never sorted out; you must decide, either by clicking the buttons YES or NO, or by hitting keys 'y' or 'n') - a selection on the last pictures, which were never sorted out. - the slide show itself. Press Escape key to stop it. The slide show can also be activated at any time by simultaneously pressing the '+' key (in the numeric pad) and either the Right or Left arrow key. Warning: informations about the timing and the picture selection are definitely transferred to your catalog only if you exit from MandelTour by the 'Exit' menu. KEYBOARD SHORTCUTS : a few of the navigation functions can be directly obtained from the keyboard, through the following keys: RIGHT arrow : forward move by one picture in the catalog LEFT arrow : backward move by one picture in the catalog UP arrow : zoom in ; pressing twice visualizes the point-like frames (finally you must redraw one outline with mouse) DOWN arrow : zoom out RETURN : data on the displayed picture Also notice the combinations SHIFT+RIGHT : jumps to the last picture SHIFT+LEFT : reset (reloads the 1st picture) 'numeric' (in the numeric pad) + RIGHT or LEFT : forward or backward move in the catalog by 'numeric' pictures This information can be retrieved at any time by pressing the "Help" key   New picture Palette THE "CREATION" MENU Rendering Freeze palette Mode change Animations De-enlarging  New picture This is the entry for computing a new picture. The full operation is done in 4 steps: I - The geometrical definition of the picture. In pure Mandelbrot mode, only enlargements are possible. One begins with outlining the part of the displayed picture which must be enlarged, in the same way as in the "Zoom In" menu.  In fact, there are 3 modes to adjust the rectangular outline; one swiches from one to another one by pressing special keys. The default mode is the "full screen" mode, i.e. the enlarged picture will cover the full screen. You must drag the mouse towards the right, otherwise the drawn rectangle is not accounted for and all must be done again. In this mode, the left side of the rectangle always remains at the same X-position, but the whole rectangle moves up and down with the mouse. If you have left this full-screen mode, you can recover it by pressing the "f" key (don't keep the key down, a single stroke is enough) You get the "drag" mode by pressing the "d" key. Then the rectangle is moved as a whole. You get the "free" mode by pressing any other key (different from f, d -- also, Escape or the arrow keys make you to quit). Then the left top corner is fixed and you move the lower right corner with the mouse (again, moving on the left of the initial corner cancels the selection).  In Julia or incomplete-Mandelbrot modes (of course, you must have moved to such a mode, through "Mode Change" menu), there are 3 possibilities: (1) you can enlarge a part of the displayed picture, as in the pure Mandelbrot mode (2) you can compute a full new Julia set, by choosing a new source point. In this case, the program switches to the Mandelbrot screen and invites you to click at a new source point. If the Mandelbrot picture is not detailed enough to choose accurately or if the correct part of the Set is not displayed, you can escape to the menu (Escape key), change the view in the Mandelbrot screen and make a new choice for the source point. (3) if you have already an enlarged Julia (or incomplete Mandelbrot) picture, you can choose to keep the same scale with a new source point. Proceed as above. In any mode, when you are requested either to draw a new frame or to click a new source point, you can always return to the general menu by pressing the Escape key. Even if you absolutely want to enter coordinates through the keyboard, draw an outline or click a source point anywhere; MandelTour will deal with you in a while. II- Then MandelTour opens a window where all the options for the next computations are summed up. Most of them simply come from the parent picture. There are 6 lines and 3 buttons. Click everywhere you want modifications and answer the questions. (1) The 1st line reminds you that the frame and the source point come from the choices you did with the mouse. If you want to enter coordinates through the keyboard, now is the right time! Click and type your inputs. However, notice that you are allowed numbers from -1.9999... to 1.9999... only (neither 2.0, nor -2.0). (2) The 2nd line generally tells that the accuracy is automatic, i.e. MandelTour decides by itself how many bits to use in arithmetics This should work fine in Mandelbrot mode, but maybe not for enlarged Julia sets. If a picture appears vitreous or fuzzy during the computation, you must override this choice. A simple way consists in stopping the computation, without reloading the initial picture. Ask for a new picture and frame the full screen: thus you will obtain a new computation of the same picture. Then override the automatic choice by clicking twice this 2nd line: the 1st click makes the current accuracy appear, 32-bit for instance, and the 2nd click sets the next higher accuracy (64-bit, in our example). If you go on clicking, you will return to the automatic mode. (3) NMAX choice (no more than 65535) (4) This line gives the pixel size of the future picture and indicates whether it is the highest possible or if it is reduced. In the former case, either the width or the height is that of the screen, depending on the shape ratio you have chosen for your framing. If you click, you are asked for a reduction ratio, in percents. Answer 100 for the highest size; RETURN for no change. Any picture computed from a reduced picture is proposed with the same reduction ratio. (5) This line deals with the saving of the future picture. You can choose either an automatic saving, or a saving after a request. In animation mode, this line informs you that the pictures will be saved in ram. Click if you prefer to save them elsewhere. (6) This line allows you to force where to save the future image. Theoretically, MandelTour knows which is the "current" disk(ette), namely where the last picture has been saved, and it will attempt to save the future picture in the same place. If you click this line, you will be asked where to put this picture. This line is specially interesting to people who have begun their library on a hard disk and who would wish to switch to diskettes. There are also three buttons. The third one ("Cancel") sends you back to the general menu. The first one makes the computation begin. The 2nd allows you to change the screen mode: a new pop-menu window opens, where you can modify one of the current screenmodes (i.e. the screenmodes of the pictures in your library) or choose a completely new screenmode through the standard Intuition ScreenMode requester. Notice that the rendering parameters are not within reach from this parameter confirmation. A new image is always first rendered in the same way as the parent picture, then it can be changed by means of the "rendering" menu. III- The computation begins. MandelTour attempts to store intermediate results in ram, with 2 bytes per pixel (hence from 164 K for a lowres PAL, 256-color, 320 x 256 picture, to near 800 K for an overscan hires picture). If there is not enough memory available, MandelTour suggests to store these results in a real file, on disk(ette), and asks you where to put it. Don't consider the colouring of the screen during the computation! This is mainly a mere indication of the advancement of the computation. After the last pixel, MandelTour reads again the stored results so as to analyse the histogram and to allocate the available colours at best. However, this is not yet the definitive colouring because the new picture generally does not have as many colors as the parent picture; thus there is a final remapping of the parent palette on the daughter palette so as to get nearly the same range of colors. You can always stop computing simply by clicking. If you confirm the stop, you are proposed to reload the previous image, but you may prefer to remain with the partly computed picture in order to frame a new enlargement at once, if what you see in it is enough for you. If finally you prefer to reload the preceding picture, use the "Refresh" menu. IV- Finally, MandelTour proposes to save the picture, unless it does so by itself if you enabled the automatic saving. In pure Mandelbrot mode, accept the saving, unless the picture is specially disappointing. Even not very attractive, it could serve as a starting point for future explorations. Pictures are automatically numbered. When the current diskette is full, MandelTour asks you to insert a new empty formatted diskette. BE SURE TO GIVE DIFFERENT NAMES TO YOUR DISKETTES !!! MandelTour uses these names in the catalog and in the navigation functions. If it looks for the picture toto:Mandel28, and if the toto diskette is not mounted, you will be requested "to insert volume toto: in any drive". It would then be worrying to have two diskettes named toto... When MandelTour asks for a new storage diskette, it announces the free space in the current diskette and an estimated size for the saving file, without taking the ILBM data compression into account. Actually, this compression can be very significant for the first pictures (later on, for very complex pictures, it will become rather weak), so you can disregard the request and attempt the saving in the same diskette. There will be no damage if this fails; you will just have to insert the required new diskette. If you want to import your pictures in other painting programs, you must know how MandelTour named them. You get the information by means of the "Data" menu (or more simply, with the RETURN key). However, better work on a copy instead of the MandelTour file itself. Indeed, an ILBM MandelTour file contains a special information chunk which would be lost after a saving in the painting program. This information is not essential in the usual operation of MandelTour, but it could be in case of an accidental loss of the catalog file. A convenient way to get this copy is the "Saving" function, in the "General" menu. Obviously, you will use this function to set colours to your  Palette own taste. It is a 8000-byte assembly routine with a lot of features. Of course it was designed for an intuitive use, but a few extra points must be explained. First of all, because of the system, the pictures do not use all of the 256 available colours, but only the colour 0 (black) and colours 20 and above. Indeed the 11 first colours are used by Intuition for the 3-D look of windows (these colours are listed in Appendix) and, specially, colours 17, 18, 19 are used for the mouse pointer. Now, if we used a very smooth colour gradation over a large interval containing colours 17--19 (for instance, from colour 15 to colour 100), the mouse pointer could become near invisible over an extended range of colours. Since these colours are imposed by the system, the simplest solution was to begin the colouring from colour 20. The palette opens very classically, with 3 slide gadgets for either RGB or HSL components. The RGB components of the selected colour are displayed in the title bar. The 20 colours left apart are displayed with smaller plots but they can be selected; thus one can customize the aspect of the program windows and menus, or check the visibility of the mouse pointer. Beyond these 20 colours, only the colours really used in the picture are displayed. All the classical gadgets for copying, spreading, undoing and for the general reset (return to intial colours) are here. The action of RGB/HSL cursors is somewhat coarse when there are few colours (then the palette has a small height), but don't forget this action can be adjusted by clicking ]3maside]0m the slider, above or below: the RGB/HSL components are then varied by one unit at a time. Notice that the colour gradations are HSL-based (thus, a gradation between two complementary saturated colours displays only saturated colours) If you keep the left button pressed on a colour plot, this colours starts twinkling after a while. This is useful to localise a colour in the image. Lastly, there is a small button on bottom right, marked with "G". Clicking it sets the gradation mode. Then the palette is considered a sequence of linked color gradations, i.e. smooth variations of colours from a colour "node" to another one. The first job consists in identifying these nodes; they are displayed with dotted rectangles (except for the 20 colours left apart). These nodes can be lonely, when the colour which ends a gradation also begins the next one. They can also occur by pairs when there is a gap between the last colour of a gradation and the first of the next one. Lastly they can occur by packs when the routine cannot see any gradation among them. In this gradation mode, only the nodes can be selected; you make one of them the active colour by clicking it (the program will complain by flashing if you click anywhere else; however, most of the 20 colours left apart are hidden nodes and can be selected). You can - change the node colour with RGB/HSL sliders. - move the node, simply by dragging it with the mouse, until it meets the next nodes. In the case of a gradation over several lines in the palette, the node can pass from a line to another one. - add a new node, by pressing the INSERT button. - delete the active node, by pressing the DELETE button - or undo your last operation. In all cases, all the gradations of the palette are computed again from the modified node. Notice that the automatic research of node colours is not perfect, due to rounding errors when passing from RGB to HSL in the routine. When you enter the gradation mode, erroneous nodes may be displayed. It's up to you to clean up with the DELETE button. Lastly, the gradation mode exhibits a new gadget, labeled "AUTO", which sets a random mode. Various keys control this mode; their action is reminded in the palette window. In a few words, the nodes do not move across the palette but their colours are changed continuously through their HSL components, in various manners controlled by function keys: - F1 : only hues (H) are changed - F2 : only saturations (S) are changed - F3 : only levels - or brightnesses- (L) are changed - F4 : H+S are changed ; F5 : H+L ; F6 : S+L - F7 : the three HSL components are varied - F8 : all levels are inverted The numeric keys allow to choose various 5-node patterns, except the "0" key, which resets the initial node pattern (which can have an arbitrary number of nodes). Also notice: - The rapidity is controlled by the "+" or "-" keys. - The space bar stops the colors. Then you can retrieve the last palettes by pressing the LEFT key (one palette backward), or the RIGHT key (one palette forward). Pressing the space bar restarts the random mode. - For exiting the random mode, press either RETURN (if you accept the final palette) or ESCAPE (for cancelling). When exiting the palette, if you have modified anything, MandelTour suggests you to save the picture again. This menu is activated just after a computation. It allows you Rendering to choose among several kinds of colour renderings. A window opens, where the first line reminds you of the current rendering mode. The two or three next lines display the various parameters for this mode. As usual, click everywhere you want a change (click the first line to change the rendering mode). Lastly, four self-explanatory gadgets: - EXECUTE to render the picture in the new mode - PALETTE to open the palette and change the colours - SEE sends the window to background, so as to better see the picture - EXIT returns to the general menu. If you have changed anything, you will be suggested to save the picture again. There are five rendering modes. I - DIRECT INTERPRETATION A single parameter, the least number of pixels per colour. Read the Appendix to understand how MandelTour puts its colours and what this parameter means. Do experiments to master it. Too low a value leads to scrawny strands and too many colours in the palette; the last colours are practically useless because the corresponding pixels are scarcely noticeable (make them twinkle in the palette). Increasing the value makes the inflorescences richer while reducing the number of colours, but a too large value leads to a coarse picture. It's up to you to find the best value --for you. II - LOCAL CONTRAST ENHANCEMENT This function attempts to reinforce the strands beyond what can be obtained by playing with the least number of pixels per colour. There are 3 parameters to adjust. The principle consists in multiplying the real N of every pixel with a factor all the larger as this N is farther from the minimum of the neighbouring N's. The exploration radius is the half-side (in pixels) of the square where this minimum is looked for. Better stay with low values (1 or 2) so as not to exaggerate the contrast. The threshold sets the difference between N and the local mimimum below which nothing is done, so as to avoid possible artifacts for the lowest N's --if you don't like them. The contrast factor obviously allows you to adjust the contrast. Be careful! You must DECREASE this factor to enhance the effect, and this effect is often quite brutal. Values larger than 15 are not taken into account; moreover, nothing will be visible for 10 and more if you are not very deep in the Set, with an averaged N around 2^10. III - OUTLINES This function detects points where N increases or decreases. The effect is controlled by 4 parameters: - there is no effect if N is less than the lower threshold or larger than the upper threshold. - within this N-range, every detected outline is marked by moving the colour by the 'jump' in the palette. The value 'jump'=0 is special: all points other than outlines are put in black. If you want no outline around the Mandelbrot set, set the upper threshold at NMAX-1. - the colour skip allows you not to mark all outlines, but one over 2, 3... Setting both lower threshold and upper treshold at NMAX, with a zero jump, you will get the outline of the Mandelbrot or the Julia set. Remember that there are an infinity of Julia sets, if you are looking for an original outline. IV - BLURRING This function depends on 4 parameters. First, it performs the average of the N's around the analysed pixel, in a square the half-side of which is the displayed exploration radius, then it combines this average with the local N, according to the displayed blurring weight, so as to adjust the wished fuzziness: weight %N %average 0 50 50 slight fuzziness 1 25 75 2 12 88 3 6 94 4 3 97 highest fuzziness More than 4 for the weight is useless. The effect to reinject a part of the initial N (with lowest weights) is to partly recall the details of the picture. Lastly, a threshold can be set, which can be either a lower threshold, or an upper threshold. The N's below a lower threshold or above an upper threshold are not modified. A lower threshold below the lowest N (indicated as NMIN) has no effect. V - CYCLIC COLOURING This is the traditional colouring of most available Mandelbrot explorers: one starts from a given colour in the palette for N=0 and one advances by one colour everytime than N increases by 1, or 2... i.e. the value of the incrementation step. When one arrives to the last colour in the palette, one goes on with the first colour. In MandelTour, cyclic colouring always begins at color 20 (the first available colour, according to the MandelTour concepts), and this colour is automatically attributed to the lowest N in the picture. Hint: arrange it so that the colour gradation ending at color 255 can be continued with the gradation starting at colour 20. In low memory operation, if MandelTour was obliged to store the N's on disk(ette), only the direct interpretation and the cyclic colouring are enabled. This menu runs around a Palettes file, which contains... Freeze palette palettes, obviously. When running in the "frozen palette" mode, you can leaf through the various stored palettes and experiment their effect on the current picture on screen, and any picture that you reload is converted in the frozen palette that you chose. Selecting this menu makes a window to appear with new hotkeys and 4 gadgets, two for managing the Palettes file, two for exiting the menu: ADD adds the current palette to the file. Remember that every record is 770 bytes long. If you go up to 100 palettes, this will require a 77K file, which could be difficult if you are running MandelTour from a diskette; be sure to keep enough free space in your master diskette. REMOVE removes this palette from the file (obviously, there is no effect on the displayed picture). FREEZE returns to the general menu within frozen palette mode. The colours are frozen to the palette of the displayed picture, whether this palette was stored in the file or not. FREE returns to the general menu in normal mode. There are 4 new hotkeys: L : for the next palette (or the 1st one, at the end of the file) M : for the preceding palette. R : restores initial colours S : resave the picture The arrow keys remain active, so that you can move across the catalog as usual. Every picture is loaded with its original colours and you can then add its palette to the file. If you exit through FREEZE, the L/M/R/S hotkeys remain active. Every picture is recoloured according to the frozen palette and this palette can be changed with L/M keys. There are 3 ways to exit from the frozen palette mode: - select the "Freeze palette" menu again and click FREE - force new colours by selecting the "Palette" menu - by selecting the "Refresh" menu, which reloads the current picture with its original colours. This function allows to pass from the pure Mandelbrot mode Change mode to the Julia mode or to an incomplete Mandelbrot mode. Simply answer the questions. MandelTour does not really make animations. It simply computes Animations pictures for an animation, it numbers them and it saves them where you want. You will have to reload these pictures in an animation-making program (DPaint, for instance). In pure Mandelbrot mode, the animation cannot be anything else than a move in the Mandelbrot set, i.e. a morphing between two frames, a combination between travelling and zooming. Other kinds of animation are possible in Julia or incomplete modes: - the same kind of morphing animation - a full-set source animation, i.e. pictures of full sets (not enlarged) with a moving source point. This is the only possible animation if there is no picture in the Julia screen. - an enlarged-set source animation. For this, you must have an enlarged picture in the Julia screen and ask for pictures "with the same frame". MandelTour animations can consist of an arbitrary number of linked sequences, so that complex animations such as moves along the boundary of the Mandelbrot set or closed-loop moves of a Julia source are possible. Of course any sequence always starts from the last picture of the preceding sequence. Three stages can be considered when building an animation: - the construction of a "ram:anim.script" file, where MandelTour collects all the information about the pictures which define the various sequences. This file is deleted only after the computation of the animation. - the choice of the animation colouring mode (not to be confused with the rendering mode for its various pictures), just after the computation of the first picture. Due to the specific features of MandelTour, special difficulties arise, which will be discussed later. - finally, the computation of other pictures. MandelTour makes its best to guide the user as naturally as possible. We now follow what happens when you have selected this Animation menu. 1 - Building the animation You are asked whether you are ready to define the 1st picture, i.e. the beginning of the 1st sequence of your future animation. On the "yes" answer, as for any new picture, you must outline the frame to be enlarged or click a new source point. Then the parameter confirmation opens, with only one new feature: the program suggests to save the pictures in ram, under the generic name MANDPIC --complete names wil be MANDPIC001, MANDPIC002... Click this line if you prefer to save the pictures elsewhere under another name, and answer the appropriate lines of a standard file requester. Put no number in the file name; the 001, 002... will be automatically added. Don't forget that reducing the picture size means less memory and faster computations. Make sure that the NMAX can suit all the pictures in the animation, because it will be the same for all of them. Lastly, if you want to enter coordinates through the keyboard, now is the right time (click the 1st line). This picture is not computed at once. You are simply asked to define the 2nd picture. You may refuse, for instance because the currently displayed images do not allow you to define this 2nd picture with enough accuracy. Once you are back to the general menu, look for more adapted images and then select the Animation menu again. You are then directly invited to define this 2nd picture. Do as usual, i.e. new frame or new source. Generally there will be no parameter confirmation, because all the pictures will be computed with the same parameters, specially with the same size. A difficulty can arise if you chose a free format without keeping the same width/height ratio in the two pictures; then, MandelTour keeps the upper corners and it corrects the height so as to recover the same ratio. You are warned only if the correction is higher than 5%. An exception: if you entered coordinates through the keyboard for the 1st picture, the confirmation window reopens so as to enter coordinates for the 2nd picture. Once the 2nd picture has been defined, you are asked the number of steps between the two pictures (notice that there will be one more picture than there are steps) Then a new request window opens, where you must choose between adding a sequence, starting the calculations, beginning again from scratch, or returning to the general menu. Adding a new sequence amounts to defining its last picture, since this sequence must begin with the last defined picture. Returning to the general menu is not a general cancellation; this allows you to change the pictures on screens and then to resume the animation definition, by selecting again the Animation menu. Finally the computation of the 1st picture begins. 2 - Choosing the colouring mode of the animation. Once the first picture has been computed, the rendering window pops up with a new request, rather esoteric, about the colouring mode. You must know that mapping the iteration numbers N to colours is done in 2 stages: (1) a translation where the N's are transformed into colour numbers from 20 to 255 (for 256-colour screens) (2) the transformation between these abstract colour numbers and the real colours is done through the palette choice. You must choose among three possibilities: - fixed translation table and fixed palette - a new translation table for every picture, but a single palette - a new translation table and a new palette for every picture. You must understand the difficulty, which just comes from the colouring process in MandelTour. Let's assume that, in picture #1, the N's start from NMin=12 (for example) with enough pixels at N=12 to allocate the first colour to N=12, while the next colour is allocated to N=13 and higher. The translation table thus begins with N=12 -> colour #20 ; N=13 -> colour #21 ... Let's assume that we are diving in the Set, towards a picture where the N's start with a clearly higher value, say 24 for instance. As pictures are processed, there are less and less pixels with N=12, and finally none. Then, the minimum for N is N=13 and, normally, MandelTour would allocate the first available colour to this minimum, hence a translation table beginning with N=13 -> colour #20 ... This entails that the colour of N=13 points switches from one colour to another one, and so will do the colour of points N=14, 15... hence a colour flickering in the animation, generally unhappy. Two solutions can be considered: to prevent this color switching, or to make it imperceptible. The first solution just is the colouring mode with a fixed translation table. The translation N -> colour number is set for the 1st picture and it is used for all pictures. Two remarks: - This will be a good solution if the N's do not vary much during the animation, for instance for a pure travelling (with no zooming) across the Mandelbrot set, or for a source Julia animation. - On the contrary, in the case of a thorough dive in the Mandelbrot set, one can get the last pictures with dramatically few colours. For instance, if NMin increases from 12 to 50, all colours below that attributed to N=50 in the 1st picture will not be present in the last pictures. And if NMin climbs up to several hundreds, there could be no colour left at all... at least in all cases where the translation table is finite, i.e. for all the specific rendering modes of MandelTour. The only way to escape this problem is to do as the other Mandelbrot explorers, i.e. to use a cyclic colouring, which indeed corresponds to an infinite translation table. However, it's somewhat vexing to be obliged to go back to the cyclic colouring, a kind of failure for MandelTour and its sophisticated renderings, hence the other suggested solution -- making the flickering imperceptible. This will not be always possible, because this implies a palette with very soft gradations, hence a large number of colours, and thus a special kind of pictures. Then, the translation table will be done again for every picture, always with the first colour for the lowest N and always with the least number of pixels per colour. A possible trap is that successive pictures may not to have the same number of colours. If a picture asks for more colours,it will find them beyond the colours defined for the 1st picture; however, this could be fixed during the final mounting of the animation in DPaint. It would be better for all pictures to share the same colour pattern, with the same gradations, the same colours for the lowest N's and the same colours for the largest N's, even through unequal numbers of intermediate colours, i.e. by mapping the initial palette onto the palette of every picture. However, this leads to animations with several palettes, and unfortunately very few programs can make such animations; for instance, DPaint cannot. So, this solution probably is out of reach for most of you. As a conclusion, choose: - the fixed translation if the N's (and specially NMin) don't vary too much, or if you intend to use a cyclic colouring - a new translation for every picture, but with a fixed palette, if you have a lot of colours, with very soft gradations for lowest colours - if you have a software which can make animations with several palettes, try the mode with a new translation table and new palette for every picture. Once you have made up your mind, you must decide which rendering to use for the animation: direct interpretation, blurring... Take special care when setting the least number of pixel per colour, which must go with all the pictures. 3 - Computation Nothing to do but to wait... MandelTour informs you about the advancement of the computation. Preparing an animation often asks for considerable work. Possibly you will have to compute special key pictures only as a help to define the various sequences of your animation. You can temporarily include these pictures in the catalog and remove them later (with the "Delete picture" function). Do trials with few images in sequences in order to investigate the colouring problems. Reduce the picture size in order to go faster. Animations are a precious tool for exploring the Julia or incomplete sets. This function will be specially useful to those who installed De-enlarging MandelTour together with the whole graphic library on hard disk, and who regularly delete the "less interesting" pictures so as to face an endemic disk-space shortage. It happens that they wonder how they could arrive to such beautiful image, strongly enlarged, which remains alone in the library, without the intermediate pictures which traced the way to it. To some extent, this "de-enlarging" function aims at recovering a part of the lost information. In a few words, it performs a computed  zoom out; the user must simply indicate the zooming ratio he wants. Then MandelTour moves on the usual new picture process, i.e. the confirmation of parameters and the computation.  Version Saving Delete picture THE "GENERAL" MENU Add picture Coordinates Memo Quit  Version Copyright, version number and modest claiming... Makes a copy of the picture file outside the catalog, for Saving instance to load it in a painting program. You are asked for a path and a name for the saving. This copy does not contain the information chunk and cannot be reimported in MandelTour. Deletes the IFF file of the displayed picture and removes the corresponding entry in the catalog. Delete picture A related function: whenever MandelTour can't load a file, it proposes to delete the corresponding entry. You may refuse if you hope to restore the file. This functions allows you to import pictures in your graphic Add picture library. Of course these pictures must have been obtained by MandelTour and they must still contain the information chunk . They can be in disk(ettes) or in ram. Tell where to find them through a classical file requester and answer the questions. Several applications are possible. You have a friend who sent you his finest pictures from MandelTour. You can include them in your library. More distressing: your catalog file was crushed in some unfortunate accident. Don't panic! First, in the case where a corrupted file would be left, better delete it completely. Then, rerunning MandelTour should automati- cally reconstitute a catalog with all the entries in the root directory. The story should end there if you operate completely from hard disk, with no picture outside. If you are working with diskettes, you will simply add pictures from your other diskettes to complete your catalog. The only drawback is that you will have to move all these pictures onto new diskettes. Coordinates Help for localising special points in a picture. Memo  Summary of keyboard shortcuts. Can also be obtained with HELP key. Quit  To quit gently. --------------------------- APPENDICES --------------------------------- HOW MANDELTOUR PUTS COLOURS. THE LEAST NUMBER OF PIXELS PER COLOUR  First of all, MandelTour memorises the iteration numbers N for all the pixels of the picture. At the end of the computation, it sets the histogram of the N's, i.e. it counts how many pixels correspond to N=0, how many to N=1, N=2... up to NMAX, the input maximum number. One usually speaks of the "boxes" of the histogram; the box "N" contains the number of pixels so enumerated. The first boxes which are not empty are always the most filled (the first one corresponds to the NMin displayed in the "Data" window). On the other hand, boxes for the highest N's are always near empty --except, possibly, the box "NMAX", when the picture contains a part of the Mandelbrot set. All these pixels must receive a colour from the 256 available colours, or, more precisely, from the 236 colours other than those left to Intuition. The first idea which comes to mind is that it would be pleasant for all these colours to be equally present on the screen; in other terms, there should be the same number of pixels for each of them. As an example, let's consider a 320x256 screen, hence 320x256=83520 pixels. We remove the points of the Mandelbrot set (to be put in black); assume they are 3630. We thus remain with 79890 pixels, to be distributed over the 236 available colours. Ideally, we should have 79890 / 236 = 338 pixels for every colour. Unfortunately, the first non-empty boxes in the histogram are far more populated; for instance, one can start from NMin=54 with 4500 pixels for this value. There are by far too many points at N=54, but there is no way out and the first color must be attributed to N=54. There remain 79890-4500 = 75390 pixels and 235 colours to be distributed. The new ideal ratio is 75390/235 = 321, but most probably the next box (N=55) also is too much populated, hence the allocation of the 2nd colour to N=55, and so on. The story so proceeds. At each stage, we are left with so many pixels and so many colours, hence an ideal ratio of pixels per colour. However, the histogram boxes are less and less filled, and their population rapidly falls below this ratio. For instance, one can arrive to the following case: Remaining: 40000 pixels, 200 couleurs -> Ideal ratio=200 Next boxes in the histogram: N=61 : 100 pixels N=62 : 80 pixels N=63 : 70 pixels .... We shall have to add several boxes (here, N=61 and N=62) to roughly balance the ideal ratio. Then we count the remaining pixels and colours, and so on... We thus see that our pleasant idea does not work. The "ideal number" of pixels per colour don't stop decreasing. Furthermore, it can fall down to ridiculous values, such as 50 pixels or even less. Generally these 50 pixels will be scattered over the whole screen as a kind of dust, either nearly invisible or, more often, degrading the picture quality. This problem is specific to 256-colour machines; it did not arise in previous 32-colour versions of MandelTour. It can be easily solved by setting a least number of pixels per colour, a lower bound for the previous "ideal" ratio. Of course, quite a few boxes will have to be added to balance it, so that generally we will arrive at the end of the pixels before arriving at the last colour. Pictures will be less than 256-colour, but they will be far nicer. COMPLEMENTS ABOUT COMPUTATIONS: Once the source point (xs,ys) is chosen, every pixel (x,y) leads to a number N through the following algorithm (pseudo-code) MANDELBROT : u0=0 , v0=0 , cx=x , cy=y JULIA : u0=x , v0=y , cx=xs, cy=ys Incomplete-1 Mandelbrot: u0=xs , v0=ys, cx=x , cy= y Incomplete-2 Mandelbrot: u0=xs , v0=x , cx=ys, cy= y Incomplete-3 Mandelbrot: u0=xs , v0=y , cx=x , cy= ys Incomplete-4 Mandelbrot: u0=x , v0=ys, cx=xs, cy= y Incomplete-5 Mandelbrot: u0=y , v0=ys, cx=x , cy= xs u=u0, v=v0 , N=0 WHILE (u*u+v*v<2) AND (N