home *** CD-ROM | disk | FTP | other *** search
-
- Smart Fractal V1.3
- by
- Avogadro Simone
-
- V 1.3 release in 30/1/95
-
-
-
- USER'S MANUAL
-
-
- IMPORTANT: THIS PRODUCT IS SHAREWARE, IF YOU USE AND LIKE IT PLEASE SEND
- $10 TO THE AUTHOR. IF YOU DO NOT KNOW WHAT SHAREWARE IS, PLEASE READ THE
- SHAREWARE.DOC FILE FIRST, YOU FIND IT IN THE SAME ARCHIVE OF THIS FILE.
- ALSO NOTE 'REQTOOLS' IS WORK OF NICO FRANCOIS, REGISTERING FOR
- 'SMARTFRACTAL' YOU DON'T REGISTER FOR 'REQTOOLS'.
-
-
- INDEX
-
- Chapter 1: The philosophy of the program
-
- 1.1 What's a fractal ?
- 1.2 Introduction to Smartfractal
- 1.3 What's different (and some background story)
- 1.4 Some known spots
- 1.5 Other goodies
-
- Chapter 2: The program's menu
-
- 2.1 Project
- 2.1.1 Informations
- 2.1.2 Loading/saving files
- 2.1.3 Importing from other programs
- 2.1.4 Setting the priority
- 2.1.5 Exiting the program
-
- 2.2 Controls
- 2.2.1 Graphic controls
- 2.2.2 Methods tuning
- 2.2.3 Zoom control
- 2.2.4 Misc controls
- 2.2.5 Buffers
-
- 2.3 Math
- 2.3.1 Editing parameters
- 2.3.2 Selecting the fractal type
- 2.3.3 Determining the type of math
- 2.3.4 Regenerating the image
-
- 2.4 Colors
- 2.4.1 File operations
- 2.4.2 Palette editor
- 2.4.3 Choosing the rendering methods !!
- 2.4.4 Cycling
-
- Chapter 3: Other features
-
- 3.1 Commands of the toolbar
- 3.2 Keyboard commands
- 3.3 Preferences and setup
-
- Chapter 4: Miscellaneous informations
-
- 4.1 How to contact the author
- 4.2 Improvements
- 4.3 Known bugs
- 4.4 History
- 4.5 People I wish to thank
- 4.6 Bibliography
-
-
-
-
-
-
- Chapter 1: The philosophy of the program
-
- This chapter contains all the informations needed to use Smartfractal. It
- briefly illustrates the main features of the program and gives the user
- tips on how to obtain some beautiful images. Also gives some basic
- informations on what the fractals are.
-
- 1.1 What's a fractal ?
-
- A fractal is ... Ehrm... It's a fractal! Just kidding, if you don't know
- what a fractal is you will still be able to use Smartfractal but maybe you
- will not understand the meaning of some of the options. I won't explain in
- depth what a fractal is as this would require too much space and this is
- not the purpose of this documentation. However there are some simple
- things about fractals anyone can understand even without reading whole
- (sometimes boring) books of math. First of all the name: Fractals, what
- does this name mean? Basically this refers to the fact that measuring the
- number of dimensions of one of these 'things' with some modern math techs
- (measuring the Hausdorff's dimension) would give a 'weird' number (maybe
- an irrational number or a fraction, so 'fractal'). This means that the
- thing you see on a 2-dimensional sheet of paper has a different dimension
- (Eg.: log(4/3)). Fun, and so? Well, that's difficult to interpret but this
- usually derives from the fact that these objects are defined by means of
- infinite recursion and so you can cut 1/4 of the object and it will occupy
- 1/3 (!!!) of the space of the original (that's the case of the Kock's
- curve that you can find on the books used in secondary schools). We talked
- about recursion, together with infinity it is one of the 'secrets' of
- fractals, the beauty of these object derives from the fact that you can
- theorically zoom-in forever and always discover new zones, all of them
- will look like the ones you saw before but will always be somewhat
- different. The graphical representation of fractals is done iterating a
- mathematical formula and studying its behaviour for each single point. As
- we cannot afford to examine an infinite number of values for each point on
- the screen we usually stop after a finite number of iterations, the higher
- the number of steps before stopping, the more precise the drawing will be.
- The fractals you can explore with Smartfractal are all point-based, this
- means that the color of a single point depends only on the behaviour of
- that single point. For each point we study the convergence/divergence of a
- series defined by the type of fractal and by the point itself, we say that
- the point is in the set if the series converges, otherwise we say that
- it's out of the set. The deeper we go into the set and the harder will be
- to determine if a point generates a series that diverges or converges and
- so the higher will be the number of iterations needed to obtain an
- acceptable image of that zone.
-
- 1.2 Introduction to Smartfractal
-
- The very first time you will run Smartfractal (Smart from now on) you
- will probably want to setup the preferences as the default behaviour of
- Smart is to use parameters acceptable on the most basic machine (like my
- A500 :-), just browse the control menu to set the desidered number of
- colors, the correct image size and the most suitable number of iterations,
- if you don't know what this means then you'd better read the whole 1st
- chapter before beginning for better results. Now go to the colors menu and
- set the internal and the external coloring methods (these are peculiar to
- Smart!), now choose the fractal type you prefer and save the preferences
- in the 'S:' directory, call them 'SmartFractal.prefs'. Done? O.K. You just
- finished the basic setup! From now on Smart will start with your
- preferences. Maybe you now want to zoom in, if so just click in the center
- of the zone you want to zoom, adjust the box size with the gadgets on the
- right side and click on the zoom gadget (or select the zoom option in the
- control menu), Smart will start to calculate that area. After a certain
- number of zooms you will probably decide to zoom out, just select the
- unzoom menu! If you cannot find anything beautiful you may decide to
- render pre-determined zones, if so just read paragraph 4!
-
- 1.3 What's different (and some background story)
-
- What you have been doing up to now was possible even in the most basic
- fractal generator, so what does Smart do that others don't? I chose to
- write Smart after re-reading a book talking about fractals, the pictures
- on that book looked somewhat nicer than the ones I could generate with the
- available programs. The main difference was that these pictures were also
- colored internally, this gave them a totally different look. I was
- disappointed not to have a program to do that, unfortunately the tech used
- to color that pictures was really time consuming and would have slowed
- down the generation of images to an unacceptable rate even on 68040
- machines, so I gave off for some time. Sometime later I happened to look
- again at that book and noticed that some figures used a tech to draw the
- external part that was quite simple to implement but still I could not
- find any program able to do that, what a shame, I thought, but then I had
- an idea: Why not to create my own rendering tech for the internal zones
- and use the one seen in the book for the external ones ? I began to
- program and in less than a week I discovered that my techs worked quite
- good, I just had to write everything except from the rendering routines,
- but I were so happy that the things went on by themselves. Some months
- after (I had some exams to do so I left the project for some time) I
- stumbled into a disk with the word "Smartfractal" written on it, I picked
- it up, created the user interface, added many features and after a hard
- work I came up with the very first beta version. Some month have passed
- from that day and with the new versions I have added anything I could find
- useful to the program. The program you are using now is the result of a
- hard work and so I would appreciate any form of encouragement as I am
- human too :-). Just write a postcard if you really do not think to be
- worth supporting me ;-( that postcard will let me know that there's people
- out there that appreciates my work !
-
-
- 1.4 Some known spots
-
- If you ever happened to read a book about fractals surely you'll have
- desired to render the same pictures, apart from the problem mentioned in
- the previous paragraph, sometimes the informations on how to get that
- pictures are omitted! So I decided to include a directory containing the
- preference files needed to render some very known images and some less
- known ones that I think to be worth a look! If you want to render such
- zones just select 'Prefs->Load spot' and than look into the 'Spots'
- directory in the same directory of Smart. You'll notice that the spots are
- divided according to the type of fractal. If you want to render an image
- never seen on books just enter the 'Volterra' dir and load the 'Seahorse'
- spot! Other unknown spots are found in the dirs of the inverted sets (by
- now Julia, Mandelbrot and Julia parameter plane), you can also find some
- beautyful spots in the 'Weird' directory, these are funny images obtained
- by setting 'not too meaningful' parameters, most of them can be considered
- interference images, because of this most of the spots in the 'Weird'
- drawer should be loaded as preferences.
-
- 1.5 Other goodies
-
- On suggestion I added two new directories: 'Colors' and 'Prefs', they do
- contain some pre-defined colors for both AGA and non-AGA machines and the
- basic preferences for the different types of fractals.
-
-
- Chapter 2: The program's menu
-
- This chapter explains the meaning and the use of the various voices found
- in the menus.
-
- 2.1 Project
-
- This menu contains all the controls concerning general operations.
-
- 2.1.1 Informations
-
- There are two voices giving informations in this menu. The first one is
- "info", it gives informations on the type of fractal that is currently
- set, the window being drawn, the number of colors, iterations and the type
- of math that had been used to render the current image (useful in case you
- are using the "auto" mode), it also states if the selected fractal is
- parametric and if it's parametric it shows the value of the parameters,
- also present the configuration found by Smart (CPU+FPU+AGA support), also
- if you turned buffers on you'll find here the amount of mem taken by
- buffers. The second voice giving informations is "about", this shows the
- program name, version and revision, a shareware message and my contact
- address.
-
- 2.1.2 Loading/saving files
-
- With the "project" menu you can either save the current situation
- (comprehending all of the preferences) together with the image being
- displayed, or save only the current settings (comprehending the window
- position, fractal type, math, colors etc.). If you want to save everything
- (ie.: Image+settings) choose the "save" option directly in the main menu,
- the situation will be saved as a standard iff image followed by a special
- field added by Smart to be able to recall the infos about that image. Once
- you want to recall that situation just select "load" in the main menu and
- the situation will be restored. If you want to save/load just the
- situation but not the image choose the voice "prefs" and than select
- "load" or "save". Note that you CANNOT recall only the situation (saved
- with the "prefs" voice) using the "load" in the main menu, this is the
- case of the spots present in this package, you must use the "load spot"
- option from the "prefs" voice. Before saving the whole image you can go to
- the options an turn iff compression on/off, note that if you are saving to
- an autocompressing device you'd better leave it off as the standard iff
- compression method is run-length 1, that's quite inefficient. Please note
- that if you load an image saved with Smart in an art package and than save
- it back the package will NOT retain the information about the fractal so
- you won't be able to reload it with Smart, so when you do retouch an image
- do not save it over the original or you'll not be able to reload it with
- Smart!
-
- 2.1.3 Importing from other programs
-
- From V1.3 Smart offers you the option to import from other programs your
- favourite spots, just select "Prefs->Import" and pick the data file,
- actualy Smart supports the following formats: Mandelmania, MisterM,
- Lyapunovia, MandelA (this is now 100% as I had to guess the format :-), if
- you use a program other than these you may try anyway to import as many
- programs do use Mandelmania-like data files. If this fails and you have
- want me to add an other format simply write to me.
-
- 2.1.4 Setting the priority
-
- The project menu has a "Priority" voice, it will pop-up a requester
- asking a number in range -10..+10, this will be the Smart's priority. The
- higher the number, the higher the priority. If you want to do something
- else while drawing fractals you'd better set this to -1, this way most
- programs will have higher priority and will give prompt response to your
- imputs. In some cases it may be useful to set it to lower values but this
- should be rare. You may use positive values to speed up a bit, but this
- will be a realy little bit. Be aware that setting a priority higher than 5
- may cause some you some problems as all standard programs will be
- unresponsive while Smart will be calculating (and with fractals this might
- take a lot!).
-
- 2.1.5 Exiting the program
-
- This is the simplest thing, just select "Quit" and you will see a
- requester come up to ask you if you really want to exit, just select yes
- and you will terminate Smart. If you are using an Unregistered version
- of Smart a requester will pop-up asking you to register (sorry, it's the
- rule :-).
-
- 2.2 Controls
-
- This menu contains all the controls concerning the aspect of the image
- and giving controls about the zoom method and options.
-
- 2.2.1 Graphic controls
-
- There are four voices controlling the appearance of the image on the
- screen. The first one is "Size", this enables you to set the size of the
- image to render, there are 4 predefined sizes and a "custom" option. If
- you chose the "custom" option you'll get a requester, if you are using
- Kickstart V2.0+ you'll get a ScreenMode requester and you'll be able to
- select any available resolution (comprehending any non-standard resolution
- available via third-party Monitor Types) and number of colors, please note
- that you's better NOT select special modes or non-proportional modes
- unless you want to make some weird tests (non-proportional modes are
- 1280x512 and 640x256), so if you wand to create a backdrop for the
- Workbench you should select Laced-Hi Res and than convert the image to
- non-laced hi res with a graphic package (Dpaint will do). If you are using
- KS1.3 or less you'll get a string requester and you'll be able to enter
- the desidered vertical size, the horizontal one will be determined by the
- "aspect" option, if you choose a vertical size lesser then or equal to 256
- the screen size will be 320x256 and your selection will affect only the
- size of the image. If you choose a number greater than 256 you'll also set
- the size of the screen, remember that the screen will always have a 5/4
- aspect (that's the default on PAL machines), if you choose a vertical size
- greater or equal to 400 you'll get a hi-res interlaced screen. The second
- voice influencing the image is "aspect", you can select either "square" or
- "rectangular" to set the aspect to 4:4 or to 5:4 (like the screen). Than
- there is the "colors" option, you can there choose the number of colors on
- the screen, please note that Smart will try to open the screen with the
- desidered number of colors even if your machine has not the capability to
- display them, this will blank the screen if you select 64 colors (that's
- extra half bright) or more and hi-res on a non AGA machine with KS1.3,
- this causes you not to be able to see anything on the screen, the only
- solution is to terminate the drawing pressing Amiga-X and after a while
- pressing return, then press Amiga-Q and finally 'Y' to quit Smart.
- Surprisingly selecting 256 colors on KS1.3 in low-res will result in just
- 32 being displayed but 8 being stored in memory, so you can draw and than
- store 256 color images that you'll be able to display on AGA machines or
- with video enanchers. Please note that some resolutions will slow down
- significantly the drawing on non-AGA machine, that's not a bug, it's due
- to the internal multiprocessing architecture of the amiga that assigns too
- few time to the 680x0 (ie.: that's the case of 16 color hi-res where the
- machine almost stops). Then there is the "title" toggle, with this one you
- can turn on/off the screen title (if you turned it off, selected a full
- screen image and turned on autozoom then use Amiga-N and Amiga-M to move
- the screen to front/back without zooming).
-
- 2.2.2 Methods tuning
-
- In this menu you can set two options to control the methods to render the
- image, both of them will give you control on the accuracy of the
- representation. The first one is "Depth", with this voice you can select
- how many iterations to take before deciding that a point generates a
- series that converges. Keep this number high to have a more accurate
- representation of the image, keep it low to have a fast one, note that the
- deeper you go into the image the higher will have to be this number to get
- a realistic representation. If you have yet completed the image and raise
- the number of iterations a requester will pop-up asking if you want to
- update instead of redrawing, if the internal color is solid and the Buffer
- is on will be able to choose either "Fast" or "Exact", unless the number
- of iterations is too high you'd better select "Exact", if the internal
- color is not solid but the buffer is on you'll be able to select only
- "Exact" or no update. The second voice concerning representation is
- "Blocks", it allows you to set how big the blocks will be and so how many
- passes will the image take to complete, from V1.3 of Smart you may also
- select "Tesselate". If you turn tesselation on the screen will be divided
- in two blocks, each block will be divided into two smaller blocks and so
- on, this may introduce a BIG error in some cases and may be error-free in
- others, the problem is that with this mode an area surrounded by pixels of
- the same color is considered to be filled with that color, this would be
- true if pixels had no size, but may cause approximation in real life. You
- may also select to use the 'traditional' blocks, this gives you control on
- the degree of approximation in drawing the image, the bigger the blocks,
- the faster will be the rendering and the more you are like to lose some
- details. This option should be used with care as it has a big potential,
- there are zones where setting the blocks to 8x8 will not affect the
- quality of the image but will speed up its generation more than 10 times,
- in other zones even setting the 2x2 option will give you a quite
- inaccurate representation of the image and will not be significantly
- faster than the pixel-perfect 1x1 mode. There is no way to tell what the
- best block size is, generally 4x4 should not affect significantly the
- image integrity but will give a great speed improvement. If you use the
- 8x8 option be careful to set a higher number of iterations to compensate
- the possible imprecisions.
-
- 2.2.3 Zoom control
-
- There are four voices concerning zooming in this menu. The first one is
- "zoomrate", it allows you to set how much you will zoom, that is how much
- of the zone around the point you selected will be zoomed. The second one
- is "autozoom", just select "on" or "off". If you turn it on each time you
- want to zoom you'll just have to click in the center of the zone you wish
- to zoom and the zoom will take automatically place even if you did not
- select the voice "zoom". The voice "zoom" is used when the autozoom
- feature is off to zoom in a zone, just select this voice and than click in
- the center of the zone you want to see, if you want to cancel the zoom
- just click outside of the image or press the right mouse button. The last
- option "unzoom" lets you zoom off the current image, just select it and
- the image will be recalculated automatically without further actions.
-
- 2.2.4 Misc controls
-
- There are four more toggles providing generic controls on the setup. This
- toggles are "Autoredraw", "Pack iff", "Be quiet" and "Toolbar", the first
- one let's you disable the auto-update function that redraws the image
- after any change in the settings, when this is off the redraw will happen
- only if the screen had been rebuilt and the image disappeared. The second
- toggle is to turn on/off the iff compression (see above for more infos).
- When the "Be quiet" switch is on you won't be prompted before overwriting
- existing files and you won't be presented a requester once the drawing had
- terminated (this will also turn off the screen-to-front feature). The last
- toggle is "Toolbox" and when activated (by default) will turn on the
- toolbar.
-
- 2.2.5 Buffers
-
- The last option in this menu is "Buffers", you may turn it off or on as
- all toggles. When you turn it on you'll get a requester asking if you want
- full buffering or 3DOnly buffering. If you select "3DOnly" you'll be able
- to see the 3D Overlay once the drawing has been completed, and will also
- be able to use the Update functions (more iterations of different type of
- coloring), turning on "3DOnly" will not slow down significantly the
- calculations (about 0.5-2 secs). If you select a "Full" buffer, you'll get
- by default the 3D Buffer but you'll also get the color buffer, when it is
- active you may change the internal/external coloring method and get the
- screen updated immediately, this will unfortunately slow down the drawing
- a lot, from 2 to 40 secs !!!. If you know in advance that the drawing will
- take a big amount of time and have enough memory you'd better turn full
- buffer on, else, if you are just browsing, you'd better turn on only the
- 3DBuffer. Please note that the buffers are allocated when you start
- drawing so don't worry if the info window says that there's no buffer,
- also note that turning the buffers off will also free the allocated mem
- immediately.
-
- 2.3 Math
-
- This menu contains all the voices that involve direct control of
- mathematical aspects of the drawing.
-
- 2.3.1 Editing parameters
-
- As Smart features parametric fractals (Julia, Volterra-Lotka, Julia
- Parameter plane and Lyapunov space) it also enables you to specify the
- value of these parameters. Julia, JuliaPP and Volterra do use 2
- parameters, in the Julia sets the parameter is a complex number and
- indicates a point of the corresponding Mandelbrot set, if while examining
- the Mandelbrot set you wish to pick a point and set the Julia parameters
- to that point just select the "set point" voice and click in the
- Mandelbrot set on the point you wish to use (Tip: just after setting the
- point switch to the Julia set, you'll get a view of the same window as it
- appears in the Julia set and it will look similar to the region you picked
- the point from, the nearer to the point you'll go the lesser the
- differences will be :-). However you may know some values (maybe you have
- a book) and want to introduce them manually, if so just choose the
- "edit point" option and you'll get a requester asking for the real part of
- the parameter and then for the imaginary one. If you changed your mind and
- no longer want to edit the parameters just hit return twice. Maybe you got
- also the coordinates of the window you have to zoom, if so just choose the
- "edit window" voice and enter the value you wish to use (once again press
- return to keep the actual values). Note that the window requester will not
- allow you to specify all the four values as you may have expected, this is
- because Smart does not want you to get weird image aspect (after all who
- wants a Mandelbrot set that looks deformed ??). A different approach
- should be used for Lyapunov space, here you may set the sequence and the
- color divide. The color divide is a number that says how much shoul the
- palette be spreden around, the higher, the lesser you'll be like to see
- the same color used twice, the lower, the more you'll be able to
- distinguish potential of points. To set the color divide just select "edit
- point", you'll be prompted a number (by default the old value). The second
- parameter is the sequence to be used generating Lyapunov space, this is a
- sequence of 'A' and 'B' (no matter the case), each letter in this sequence
- has the following meaning : 'A' means that the 'x' value should be used in
- the iteration, 'B' means that the 'y' value should be used. So if you
- select 'ABB' the first iteration will use 'x' as parameter, the second and
- third will use 'y' and than the sequence will repeat (the fourth will use
- 'x', the fifth and sixth will use 'y' etc...). So don't use a sequence
- with more letters than the iterations as this has no meaning, also note
- that even if the number of iterations should be big to let the succession
- converge you may leave it low to get nice pictures (this is what's done in
- Lyapunovia), after all you want to create nice pictures, if you wanted to
- examine population dynamics you'd have used something less fun !
- If you want to make a 3DOverlay or have made it yet and want to change
- it's appearance you may "Set 3D Opts", you'll be asked level % of the
- plateou and the reduction, the first means how many iterations will be in
- the graduated part (if you set 50% and have 719 iterations the points
- exiting with 0-359 iterations will hav different heights and the points
- with 360-719 iterations will be part of the plateou). The reduction level
- is used to adjust the height of the 3DOverlay, by default if will be :
- height=(maxiterations * (level%))/Reduction.
-
-
- 2.3.2 Selecting the fractal type
-
- This is easily done by selecting the "set fractal" voice and then by
- choosing the fractal you prefer. Mandelbrot and Julia are the classical
- ones found in almost any fractal generator, Volterra-Lotka is fractal
- taken from the book I have (see bibliography for more informations),
- Inverted Mandelbrot and Inverted Julia are the Mandelbrot and Julia sets
- projected into an inverted space (again see bibliography). Than there are
- Julia Parameters plane and Inverted Julia Parameters Plane, Mandelbrot is
- the Julia Parameters Plane of the origin of the Gauss plane (0+0i), here
- you may choose to generate Parameter Planes of other points. Finally
- there's Lyapunov Space, this one is like the one found in Lyapunovia and
- is basicaly the logistic equation for a single population drawn changing
- the maximum population between an iteration and the other (see previous
- paragraph). When you set the fractal type you may want either to redraw
- (Mandelbrot->Julia->JuliaPP) or to restart (Mandelbrot->Volterra->Lyapunov
- etc...), a requester will pop-up, just selcet what you prefer.
-
- 2.3.3 Determining the type of math
-
- While exploring fractals one of the most important problems is to choose
- a precision that enables to draw an image that is free of defects, but at
- the same time it's important not to exaggerate not to slow down too much
- the calculation (I won't tell how long does a double precision image take
- to render in 640x512 on an A500 but know that I care too much for my
- computer to risk leaving it on the whole night). So you'll surely
- comprehend that the more precisions are available the better it is. Some
- programs (ehrm... Actually I know only of Mand2000 that's a commercial
- program!) do offer special routines to handle almost any precision but
- you'll usually find that even on fast machines (68040 33Mhz I mean!) any
- precision higher than the extended FPU precision will result quite too
- slow to use in non-background situations. Smart offers you 6 different
- precisions, they are (in order from the fastest to the most precise):
- Turbo integer, integer, big integer, floating point, double precision and
- extended FPU precision. The first five are available to anyone on any
- machine, the sixth one is only available to FPU owners and 68040 owners
- with fpu-patches (see below). Smart offers you to do the selection work
- for you, just choose the "auto" option and you'll never have to worry
- about the type of math used (Tip: when drawing the starting image of an
- inverted Julia force the precision to integer, the zones near to the
- borders will be pixelized but the effect may be fine (I like it!) and it
- will also be faster (unless you have an FPU!), Smart had been designed to
- be as precise as reasonable so I did not set that tip into the program as
- default). Please note that if you are drawing a zone on the border of an
- inverted Julia that is quite big (the set not the region!) Smart may get
- confused and select the wrong precision, you'll notice it as you'll get a
- pixelization effect! In these cases you can use the other options of the
- "precision" voice to force Smart to use a specific precision, note that
- you cannot force the Turbo integer precision as it's useful only on some
- occasions and Smart will activate it automatically while using the 'auto'
- mode, also note that if you don't have an FPU and try to force the FPU
- routines Smart will complain, if you decide to go ahead anyway expect your
- machine to crash as I wrote the FPU routines in assembler using directly
- the coprocessor istructions and not the library calls that are too slow
- (but useful if you need to write a single source that uses either the
- emulation routines either the FPU, in this case I wrote a separate code
- for processor-based calculation and so there's no reason to use
- libraries). Tech note on how Smart decides the precision to use: While
- developing Smart I assumed that anyone owning an FPU also owns a processor
- that will compute faster in integer (and turbo integer!) than the FPU
- (that's true if you have a 68020 or more, if you have a FPU and a 68010 or
- less always force the precision to FPU, by the way: why did you do such a
- strange thing as connecting a 32 bit FPU to a 16 bit bus ?). Note to 68040
- owners: Before using Smart you must run a system patcher to trap the
- line-f exceptions generated by the FPU istructions not supported by 68040
- internal FPU, once done this (you probably yet installed it in the startup
- :-) you can safely run Smart and enjoy your machine's FPU speed!, if you
- don't install the patch you'll still be able to use Smart but you won't be
- able to use FPU mode.
-
- 2.3.4 Regenerating the image
-
- There are two options to regenerate the image, the first one is "redraw"
- and will redraw exactly the selected window with the selected parameters,
- this is useful when after changing the coloring methods you want to
- regenerate the image with the new routines. The second option is "restart"
- and as you'll have guessed selects the default starting window for the
- selected type of set before redrawing. If the 3DBuffer is active but you
- closed the 3DOverlay window and want it back, just edit 3DParametes, keep
- them as they are and you'll get the 3DOverlay back.
-
- 2.4 Colors
-
- As beauty is a subjective idea people may wish to change the appearance
- of the fractals on the screen, this menu does this but it also allows you
- to select the coloring methods of internal and of the external part of the
- various sets. Note that this is not just an exterior change as the
- different methods give different informations on the behaviour of the
- single points.
-
- 2.4.1 File operations
-
- The two voices "save" and "load" allow you to save and load the whole
- color palette used by the program (all 256 colors) in iff format so that
- you'll be able to use palettes edited in your favourite drawing package.
-
- 2.4.2 Palette editor
-
- Just choose "edit" from the menu and you'll be faced with the standard
- color requester of the ReqTools library, freely edit the palette and than
- choose 'ok' or 'cancel' to confirm the changes or to discard them.
-
- 2.4.3 Choosing the rendering methods !!
-
- As I wrote before, this is the main difference with all the other fractal
- generators I could find on Amiga, Smart can assign a color also to points
- internal to the set !. There are two menus concerning this options, the
- first one is "external" that allows you to specify the type of coloring
- you want in the external regions. Here you have six choices: "Solid",
- "Smooth", "Binary", "2Binary", "Checked1" and "Checked2". The first one
- will assign to all the points not in the set the same color. The second
- one will assign the usual coloring that's based on the speed of divergence
- (this evidences the level curves). The third one is the one I talked about
- in chapter one, this is a simple method that assigns to each point outside
- the set a color depending on where the point was when it exited the limit
- circle of divergence, the color depends on the argument of the complex
- number, this brings in evidence the Hubbard's angles of various point of
- the Mandelbrot and Julia sets. The fourth method is a personal variation
- of the third that's based on a different assignment of the colors
- depending an the argument. The fifth and sixth are obtained by mixing the
- "Smooth" and "Binary" options, they are very impressive if cycled,
- otherwise they look almost like "Smooth". The second voice concerning
- coloring (and the most important in my opinion :-) is "internal" that lets
- you specify five types of coloring, they are: "Solid", "Logarithmic",
- "Smooth type 1", "Smooth type 2" and "Logarithmic type 2". The first one
- works as the corresponding one in the external menu, the second, third and
- fourth one give you an idea of how much difference there is in the module
- of point end of its (probable) attractor, the fifth one gives you an idea
- of how far the point is from its attractor. The second and the fifth adopt
- a logarithmic scale so to allow you to see with the same precision
- attractors of different orders, the third and fourth do adopt a corrected
- proportional method, that's less efficient than the logarithmic scale but
- it's more colorful and in some cases gives you more informations. The most
- significant method in terms of math is the fifth one that does its better
- to evidence the internal level curves (that's how fast a point gets near
- to its attractor), this is the most similar to the one I found on the book
- I wrote about in the previous chapter, I cannot be sure if it's the same
- but I believe it to be, the real problem is the nature of the attractors
- that present a periodical nature, to evidence the biggest number of
- attractors the number of iterations should be equal to ((K!)-1) that's a
- number too high even with K=10 (K=10 -> depth should be = 3628799, too big
- for me!). This is a common problem with all the internal coloring methods,
- if you use it just select at least an odd number (that's due to the fact
- that on some fractals, like Mandelbrot, the main attractor (that's 0+i0,
- the origin of Gauss' plane) is present in all the periodical orbits so
- that if you choose an even number all the point will look to be part of
- the domain of the origin!.
-
- 2.4.4 Cycling
-
- From V1.1 Smart offers the cycling option, you can use the voices of the
- "Cycle" item to turn on/off cycling, select the direction of cycleing
- (forward or backward) and to speed up or slow down the cycling of the
- colors. You can change the direction of cycling while it's on without any
- problem. If you stop the cycling the colors will remain the ones of the
- moment you stopped it, if you want to revert to the original palette
- select the "Reset" option, if you want to let the actual palette be fixed
- just select "Edit" and click on "Ok" without modifying anything.
-
-
- Chapter 3: Other features
-
- 3.1 Commands of the toolbar
-
- From V1.2 on Smart features a toolbar that holds buttons for some of the
- most used commands, it also offers a couple of functions NOT available
- from the menu. The top two gadgets are used to increase/decrease the size
- of the zoombox (and so to control the zoomrate), the two just below allow
- to zoom/unzoom and the first of the next line let's the user hide the
- zoombox (not available from menu). The one immediately on the right let's
- the user turn on/off the coordinate disply option, when this option is
- active if the cursor passes on the image the coordinates of the
- underlaying point will be displayed, this is really useful while using the
- "Set point" option. The four buttons below these ones allow the user to
- turn on/off the color cycling, change its direction, speed up or slow down
- it. There are than two icons to show the information box and the about
- message. The last two buttons will let the user save/load everything.
-
- 3.2 Keyboard commands
-
- Many menu options do have a keyboard shortcut, and can so be used via
- keyboard, however there is a simply trick available only from keyboard, if
- autozoom is off and the zoombox is visible you can use the arrow keys to
- move it around the image.
-
-
- 3.3 Preferences and setup
-
- If you want Smart to start with your configuration as default you may
- save your preferences as "SmartFractal.prefs" either the "S:" directory
- either in the same directory of Smart, note: if you run Smart from SHELL
- you'll have to save the preferences in the 'current' directory, I.E.: if
- you are in directory "HD1:Utils/" and Smart is in directory "HD2:
- Utils/Math/SmartFractal" (and it is the path) you can run Smart by typing
- "SmartFractal", but if your preferences are not in "HD1:Utils/" Smart
- won't use them. So if you frequently use Smart from SHELL you'd better
- place the preferences in the "S:" directory. An other feature that will
- surely be appreciated by someone is that you can use any image obtained
- with Smart as default one, just save it as "SmartFractal.iff" in the same
- directory of Smart (the notes for SHELL users about preferences are still
- valid).
- Another feature that SHELL users will appreciate is that from V1.1 Smart
- will auto-detach from the current process, running in background and
- letting you close the Shell whenever you want without having to quit
- Smart.
-
-
- Chapter 4: Miscellaneous informations
-
- 4.1 How to contact the author
-
- Well, if you have been reading the document you'll probably have also the
- program and my contact address but anyway here it is:
-
- Mail to: Simone Avogadro
- viale Rimembranze, 33
- Appiano Gentile
- 22070 (CO)
- ITALY
-
- E-mail on Internet to: simonea@varano.ing.unico.it
-
- If you cannot access the internet but have access to the Fidonet you can
- use a gateway to Internet, if you don't know how to do that ask your
- sysop, as I don't have direct access to Fidonet I cannot tell you how to
- do it (sorry:-), but note that this method is slow (usually it takes a
- month or more for the mail to arrive to me!).
- There are no known bugs in Smart but I can't tell if there are not bugs
- or if we simply don't now about them :-}, if you find any bug please
- report it to me, possibly with a clear description of how to recreate it
- (please state the machine configuration you have, etc.). Reporting bugs
- helps me to keep the program safe so, expecially if you found a nasty one,
- report it to me as soon as possible.
-
- 4.2 Improvements
-
- Here I give a list of improvements that I'd like to add to Smart if I
- have time (Ie: If I successfully take my exams) and if I feel Smart to be
- appreciated (feedback is important, even an E-mail makes the difference!):
-
- o Make use of MUI library for 2.0 users
- o Support for xpklibrary de/compression
- o A "Pickup" menu so that you can stop drawing, save the partial work
- and than pickup your work later (very useful for time-consuming
- drawings!)
- o A speedup buffer, so you can zoom faster
- o Faster rendering routines
- o Better color cycling feature
- o 3D mapping of fractals (spherical and continuous axonometrical)
- o More types of fractals
- o More coloring techs
-
- Changes that will take a bit more to be done:
-
- o Arexx support (I got the documentation for it and I will do it as
- soon as I have enough time)
- o Real-time zoom (like Mand2000)
-
- As you see I have a lot of ideas and so there are a lot of possibilities,
- let me know your preferences and if you have any proposal for special
- features not mentioned here (please don't just say: "I want Smart to draw
- in real time, support custom fractals and display images directly on my
- Virtual reality glasses" :-).
-
- 4.3 Known bugs
-
- There's only a known bag so far, if you use KS1.3 you may happen to see
- timings like 0:00:00. I'm sorry for this, under KS1.3 the timing functions
- of the OS are quite inaccurate and I didn't want to write own timing
- functions (lazy guy :-).
- There's another problem, some precisions may contrast with some drawing
- options, so far Volterra and Lyapunov won't work with BigInteger math so
- Smart overrides these modes and switches to Float. If you use Tesselation
- you won't be able to use Float as Smart will override your options and
- switch to Double, this should not be a problem as the use of Float is
- quite restricted, infact the difference between BigInteger a Float is
- little, so probably you'd have to switch to Double quite soon (a couple of
- zooms).
- This final one is not a bug but rather an advice. From V1.2 the info
- window also displays infos on the machine it detects, CPU+FPU are OK but I
- don't know a SAFE way for identifying AGA and so it detects KS3.0+ (AGA
- support) and not the chipset.
-
- 4.4 History
-
- V1.0 in 14/6/94 : First release
- V1.1 in 18/7/94 (Internal) : Never released but really stable.
- - When run from CLI/SHELL it now auto detaches and goes in background
- - Added two voices to Prefs menu to load separately Options and Spots
- - Added the option to compress images with standard Iff method
- - Added color cycling
- - Added "Be Quiet" toggle
- - Added the zoombox
- V1.2 in 20/9/94 : No known bugs.
- - Added support for any system monitor with a standard Screenmode
- requester
- - Added a toolbar to make interaction more immediate and intuitive :->
- - Added new fractals "JuliaPP" and "Inverted JuliaPP"
- - Added 64 bit integer math, about 3-4 times faster than "float" and
- 90% of the times with equivalent precision, made separate versions
- for 68000-010 and 68020+
- - Added the ability to show cursor coordinates on the screen title
- - Fixed a bug in V1.1 that caused some problems with packed iff
- - Now Smart asks for confirmation before overwriting existing files
- this feature can be disabled with the "Be Quiet" switch
- - Fixed a bug that didn't allow to use more than 65535 iterations with
- FPU precision
- - Micro-buffering almost halves the time taken to render quite uniform
- areas.
- V1.3 in 20/1/95 : No known bugs.
- - Added the option to import alien preferences, support for:
- Mandelmania, MisterM, Lyapunovia, MandelA (not 100%).
- - Rewrote some FPU stuff, now 5-10 % faster!
- - Added a new set type: Lyapunov Space
- - Added 3D buffer, allowing 3D overlay (quite primitive but still
- better than nothing :-)
- - Added Color buffer, lets you change the coloring method without
- having to redraw (when active about 2-40 secs slower :-< ).
- - Added "Auto update", if you raise the number of iterations you'll
- be able to redraw only a minor part (Idea from Mand2000 :-)
- - Added a new drawing mode: Tesselate (Like MisterM, FractInt an
- others), about 20-40% faster !
- - New 3.0 Look even for KS1.3 owners!
- - Finally fixed the 24Bit color support, now you can use 24 Bit colors
- in all of their glory!
- - Fixed problem with Autoscroll (not active in V1.2!).
- - Added AmigaGuide documentation.
- - Added some new spots.
- - Added a timig feature, now you know exactly how long it took to
- complete the image
- - Added option to set program priority
-
-
- 4.5 People I wish to thank
-
- Oh, well, there's a lot of people I should thank, so in no particular
- order: Mom, dad and my brother for supporting me and being patient, my
- friends for their interest and then in particular:
- Stefano Volponi for correcting the errors in this text (as you'll have
- supposed English is not my native language!)
- Donato Corvi for beta-testing on his fat A1200+68030 33Mhz+68882 48Mhz
- FPU +8Meg 32Bit fast. Also for letting me work at his home in an attempt
- to fix a nasty bug with FPU (finally I caught it!). Most of the awesome
- new spots found in V1.2 are due to his research.
- Cristiano Preda for beta-testing on his monster (A2000+8Meg 32bit fast,
- 68040 30Mhz, 2Meg Merlin graphic adapter), and for procuring me the iff
- documentation.
- Other people I wish to thank:
- Fabrizio Sala (sysop of Fast Enough BBS) for spreading (I hope!) Smart on
- Fidonet
- Nico François for developing the ReqTools library (req.library is cool
- but reqtools is cooler!) (if you want to know more about Reqtools read the
- SHAREWARE.DOC file)
- Enrico M. Ferrari for paying attention to SmartFractal and for his review
- on MC MicroComputer
- And all the others I forgot!
-
- 4.6 Bibliography
-
- The book I wrote about many times in this text is:
- H.O.Peitgen - P.H.Richter,"The Beauty of Fractals, Images of Complex
- Dynamical Systems",1986, Springer Verlang - Berlin, Heidelberg, New York.
- If you have a secondary school preparation and like math you'll be able
- to comprehend the principles explained in this book and even if you don't
- understand mathematics you'll find the Interventions very interesting as
- they are comprehensible by anyone and express interesting philosophical
- considerations; you'll also find an interesting appendix on how to write
- simple programs to generate fractals, if you are a bit more advanced
- there's a section commenting some advanced techs you'll surely find
- interesting (even if some do require too much computational power to adapt
- them for our amigas). If you are Italian (As I am!) you'll also find the
- Italian translation of this book, it's called "La Bellezza dei Frattali"
- and is published by Bollati-Boringhieri, I found it to be a good
- translation not presenting problems with traslation of mathematical therms
- (thanks to the work of Umberto Sampietri).
- If you want to read something more practically-oriented you should try to
- procure old numbers of "Scientific American" (or translations) that
- featured interesting articles about fractals and non-deterministic
- dynamics.
- If, instead, you are more interested in the mathematical aspect you
- should search for a book of B.Mandelbrot that's considered the father of
- the modern theory of fractals. I just mention the most known:
- Benoit.B.Mandelbrot,"The Fractal Geometry of Nature",1982, Freeman,
- San Francisco.
-
-
- I hope you like Smartfractal and find interesting images that meet your
- sense of beauty.
- Simone Avogadro
-
-
-
-
-