Sei sulla pagina 1di 169

Introduction

ChaosPro
Home Release 4.0

Introduction
Welcome to Introduction
ChaosPro
Preface
Requirements
Installation
and
Deinstallation
ChaosPro
Legal Stuff
Author
or:
Getting
Started
Main
Window Yet another fractal generator?










What's New
Palettes
Using Formulas
Layering in
ChaosPro
Rendering
Fractal
Parameter
Windows
Windows
Menu
3D
Transformations
Animations
Formula
Compiler
Compatibility
Fractal Type
Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/intro/intro.htm[12/16/2018 1:48:33 PM]


Welcome to ChaosPro

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Welcome to ChaosPro
Requirements
Installation and Deinstallation
Legal Stuff
This is the online documentation of ChaosPro, a fractal generating
Author program. Basically the program should be intuitive, so most of the time
Getting Started you won't need to read this...

In order to answer at least some of your questions in advance, this
Main Window
documentation will tell you something about how ChaosPro works,
what it

is able to do and how you can achieve your aims.









What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/intro/welcome.htm[12/16/2018 1:49:13 PM]


Preface

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Preface
Requirements
Installation and Deinstallation
What is ChaosPro?
Legal Stuff
Author ChaosPro is a fractal generator with additional features which I felt were
Getting Started omitted in other fractal generator programs.
Main Window Well, you've perhaps heard this all before?

That seems to be the first sentence in the documentation of almost all


fractal generators with the exception of FractInt. Authors say things like: ".
. . this is not just a FractInt clone, this is a program which offers some
additional features . . ."

I tested dozens of these programs, and I often asked myself why the author
bothered to write the program? I never saw any important, or otherwise
novel, feature which was not included with FractInt. So where are the
features which the author mentioned in the first sentence of his
What's New documentation; i.e. those which FractInt doesn't apparently include, but
his program does?
Palettes
Using Formulas Of course all these programs are not just FractInt clones, but the additional
Layering in ChaosPro 'features' which they offer, aren't worth mentioning. So let me try to
convince you, that there are indeed some features in ChaosPro, which
Rendering make it quite different, and somewhat more powerful, than FractInt.
Fractal Parameter Windows
It is free, as is FractInt. You may download the software and copy
Windows
it, install or deinstall, or simply throw it away and it will still cost
Menu you nothing! There's no $40 shareware fee, nag screens, trial
3D Transformations usage time limitations, or registration requirements, and there's
Animations also no advertising banners, secret data transmissions, and any
need for people to crack it. Chaos Pro is Freeware, just that.
Formula Compiler
Compatibility It runs in a graphically based operating environment such as
Win95/98/NT/2000/XP or later.
Fractal Type Reference
Tutorials It does not monopolize the system and a fractal may be calculated
whilst one is carrying out other work.
Appendix

It uses multi-threading and multi-windowing. You can therefore
calculate several fractals each in its own window, all at the same
time. The Graphical User Interface (GUI) is based on normal
windows, not dialogue boxes. So you can change a window
parameter and do not have to close that window whilst
proceeding with the calculation. It's really sad that there are
programmers who think that opening and closing a dialogue box
is the only way of inputting user information.
It can calculate 24 bit images. If the display is in high color /true
color mode, then the fractals can be drawn in high/true color. If
the display is in palette mode (8 bit), the user can choose to
emulate 24 bit by dithering (although this will result in a loss of
speed).
ChaosPro can create 3D views from 2D fractals.
ChaosPro can create animations. ChaosPro can not only create
simple zoom and pan types of animations, but also create a 3D
animation where, for example, the angle of the "incident" light
might move around while the subject's colour gradually changes
from red to green, and the observer 'zooms' more closely into the
subject whilst the subject is changing in shape.
ChaosPro has an integrated formula editor and compiler, so you
can create your own formulas. The formula compiler can read
most of the FractInt (*.frm) formula files, so you can also use

http://www.chaospro.de/documentation/html/intro/preface.htm[12/16/2018 1:49:39 PM]


Preface

your existing formulas.


The formula compiler can also handle
UltraFractal formulas upto version 4 (including transformations
and colourings).
Supported fractal types include:
Escapetime: Almost all types based on iterating a point
and checking whether it gets trapped by some orbit.
This type is based on formulas (thus you can calculate
almost all such fractals, but you have to write a formula
first).
Quaternion: Similar to Escapetime, but based on
Quaternion input numbers (3D/4D)
Attractor: 3D objects consisting of arbitrary points.
Dynamic System (Lorenz/Roessler)
Plasma
IFS
LSystem
Layer Fractal: An artificial container into which you may
put any of the other fractals as a layer. So you can
compose different fractals.

I hope that these "key" features have left you suitably impressed and that
you will give ChaosPro a try.

ChaosPro offers some features, which aren't found in other fractal


generators.
I very rarely found a real 24 bit image in another fractal
program. These programmes often claim to create a 24 bit image but this
is only because their colouring scheme is based on the number of
iterations.
Their image will look almost identical to a standard 256 color
image. Only a few other programs are capable of generating 3D
transformations, and easily created animations, etc...

You might well ask why I make my fractal generator program freely
available to a wider audience? It all began with an interest in fractals and I
gradually found that I became more interested in the theory side of things,
and the use of applied mathematics to generate the fractals. Having
produced an enhanced fractal generator program, I felt that it would be
rather sad if my program quietly faded into relative obscurity, without
giving other people the chance of experiencing it for themselves.

http://www.chaospro.de/documentation/html/intro/preface.htm[12/16/2018 1:49:39 PM]


Requirements

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Requirements
Requirements
Installation and Deinstallation

ChaosPro needs either Windows95, Windows 98, Windows NT, Windows
Legal Stuff 2000, Windows XP or similar or newer. The more RAM you have, the more
Author fun you'll have.
ChaosPro allocates large buffers, so you can save fractals
Getting Started in 24 bit or make 3D transformations.
Main Window
Due to the internal multitasking the display can handle many windows, so

a high screen resolution and fast graphics card is recommended.


The processor should be at least a fast 486 chip, but a 5.9 GHZ Quad-Core
Pentium VI with hyper threading will do it also...
ChaosPro uses floating
point math only (no integer tricks), so the floating point unit (FPU)
performance is significant.




What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/intro/requirements.htm[12/16/2018 1:50:01 PM]


Installation and Deinstallation

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Installation and Deinstallation
Requirements
Installation and Deinstallation

For installation simply copy all the files to a directory and start the
Legal Stuff program. For deinstallation simply delete it. ChaosPro does not copy its
Author files around on your harddisk. It also does no secret registry modifications
Getting Started except that it registeres its file types if they are currently unused.
It
neither does any secret internet data transmissions nor does it install ad
Main Window
banners.


My philosophy is: If you decide, that ChaosPro should be placed in a
specific directory, then why should the program copy some stuff to another
directory?


Other authors seem to think, that their DLL's are so incredibly important
for the whole world, that they MUST reside in the operating system's base
folder. Well, you can see (read), that this is definitely not my opinion.


What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/intro/install.htm[12/16/2018 1:50:17 PM]


Legal Stuff

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Legal Stuff
Requirements
Installation and Deinstallation
Legal Stuff
A. No Warranty
Author THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
Getting Started
PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE
Main Window COPYRIGHT HOLDER AND/OR OTHER

PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,THE
IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
What's New IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
Palettes
AGREED TO IN WRITING WILL ANY
COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
Using Formulas REDISTRIBUTE THE PROGRAM AS
Layering in ChaosPro PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
Rendering INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
Fractal Parameter Windows THE USE OR INABILITY TO USE
Windows THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
Menu DATA OR DATA BEING RENDERED
3D Transformations
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE
Animations PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
Formula Compiler IF SUCH HOLDER OR OTHER PARTY
Compatibility HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
Fractal Type Reference
Tutorials

ChaosPro (c) 1995-2004 Martin Pfingstl
Appendix




B. ChaosPro is...


Well, ChaosPro is Freeware.


I do not degrade ChaosPro in any way. If you have ChaosPro, you have the
full version, no 60 day trial version or something like that.


Use it as long and as much as you wish. Create beautiful images with
ChaosPro, sell them, have fun. You may do that without having to pay me.

Images created with ChaosPro are copyright to by you, not me.


But please note: You must not sell ChaosPro. Everybody should get
ChaosPro for almost nothing (well, except download costs or CD-ROM-
collection costs).


It would please me a lot if this program is well received and becomes
popular.

Of course it would be nice to get some money for it, but fractal programs
typically are not used on a regular basis,
they are used more as a hobby
and don't help you do your daily job.

http://www.chaospro.de/documentation/html/intro/legal.htm[12/16/2018 1:50:34 PM]


Legal Stuff

For this reason, even if you like the program a lot,you might be reluctant to
have to pay for it


Note: ChaosPro V2.0 was shareware, but the users were not obliged to
pay. The reason why I declared ChaosPro as shareware was the following:

I do not know how courts handle freeware.

In order to avoid any possible legal action some companies take ChaosPro,
reverse engineer the code and then resell it under their
label, claiming that
everybody can simply take ownership of freeware products.


Well, if you want a name for this, then I would say: copyrighted freeware.

http://www.chaospro.de/documentation/html/intro/legal.htm[12/16/2018 1:50:34 PM]


Author

ChaosPro Home
Release 4.0
Introduction
Welcome to ChaosPro
Preface Author
Requirements
Installation and Deinstallation
Legal Stuff  Name:   Martin Pfingstl 
Author  City:   Frankfurt/Main 
Getting Started  Country:   Germany 
Main Window  EMail:   admin@chaospro.de 

I would be glad if you would try to get in contact with me regarding



ChaosPro.


Especially in case of:

bugreports
new ideas

comments

formulas and parameter files
What's New
Palettes help topics (how-to-do’s)
Using Formulas
don't hesitate to write me a mail...
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/intro/author.htm[12/16/2018 1:50:43 PM]


Getting Started

ChaosPro
Home Release 4.0

Introduction
Welcome to Getting Started
ChaosPro
Preface
Requirements
Installation
and
Deinstallation
Legal Stuff
Author
Getting
Started
Main
Window










What's New
Palettes
Using Formulas
Layering in
ChaosPro
Rendering
Fractal
Parameter
Windows
Windows
Menu

3D
Transformations Now that you have ChaosPro, let's see if the program suits your needs.
Animations
Formula The aim of this chapter is to show you how to use ChaosPro. Afterwards you should be able to
create
Compiler fractals and perform the most common tasks (but you still have to learn and explore a lot).
Compatibility
When you start up ChaosPro, you'll see the main application window (see above...). It is very
Fractal Type

unlikely that there will be any additional windows open (unlike the above illustration where I
have
Reference
opened several windows for demonstration purposes and in order to confuse you...)
Below the
Tutorials
menubar you’ll see the toolbar. The most important things in it are the dropdown
comboboxes. The
Appendix left one contains the projects, i.e. the available collections of fractal data sets.
If you know FractInt,

then you already know that "projects" are parameter files (e.g. the file FractInt.par would be one).
Each project contains fractal data sets, shown directly beneath the project dropdown
combobox.
These entries are fractals ready to be calculated. Simply select one and press the green
traffic
light to start the fractal calculation.
A new window is opened and the selected fractal will be drawn
in it.

Note: All actions in ChaosPro are done in real time; i.e.- if you change the palette, the current
fractal gets this palette instantly assigned to it. If you change any other parameter, then the change
is immediately passed on to the fractal and the fractal is recalculated. ( This is performed without
having to click on any 'Ok' or 'Apply' buttons).

Note: ChaosPro is designed to be asynchronous, i.e. you can do what you will with it at any time.
You may calculate several fractals at the same time but your actions will only alter the fractal that is
active at that time. ChaosPro uses modeless dialogs (which do NOT block the application).

At program start-up, ChaosPro scans the sub-directory 'Fractals' for parameter files and loads all

http://www.chaospro.de/documentation/html/programdescription/gettingstarted.htm[12/16/2018 1:50:49 PM]


Getting Started

files it finds into this directory. It then scans the sub-directory 'Palettes' and loads all palettes it
finds. You can specify more directories to scan at program start using the Properties Dialog
(i.e. - if
you already have other directories containing your favourite *.par or *.map files...)

You have hopefully calculated your first fractal (by pressing the green traffic light). How can you
change
its size? You have two possibilities: you can do this by resizing the window (the rightmost
entry in the status bar shows the current size during your resize action), or by opening the size
window (Menu/Fractal Windows / Size Window). In this window you can select one of the predefined
default sizes, or you can enter your own sizes.

Did I mention that you don't need to close this window in order to open another window? Simply
click onto another fractal entry in the toolbar and click the green traffic light to start that fractal
calculation. This is what I meant by saying that 'ChaosPro is asynchronous'. You don't need to close
a window to open another one; you are free to do what you want at any time.

You are now ready to open the parameter window 1. Some fractal types have many parameters and
these are grouped into two windows. We will start with fractal types which only use one parameter
window. You can view or change these parameters as you wish and your changes will be
automatically sent to the subtask, which restarts the calculation process.

Before I forget, the 'Areawindow' contains the area related values, such as the area of the complex
plane, the rotation point and the rotation angle.

Now let's try some magnification changes ("zooming"). You can do this very simply with the mouse.
Calculate a fractal image and, when you find an interesting spot, double-click the left-hand mouse
button on that part of the image. ChaosPro will zoom into the fractal by a magnitude of 2, and the
calculation is restarted. If you miss the exact spot you wanted to enlarge (this sometimes happens),
then click the image and, holding the left hand mouse button down, drag the fractal image, until the
area is displayed. If you would like to zoom out of the image, then double click the selected area
with the right mouse button and ChaosPro will reduce the magnification by a factor of 2 (and restart
the calculation).

You should now get some practice in creating your own fractal images. In order to do this, choose
the menu item 'Fractal/New Defaultype/...' and select any of the built in fractal types. As a result of
choosing an item, another entry is added to the fractal entry drop down box in the toolbar; this
describes the type you chose and is filled with the default parameters for that type. You can now
open parameter windows and change these values, or you can zoom around the image as you
please.

I do not wish to explain the whole program at this point as there's still very much to do.
I hope that
you have gained enough information to get some practice in using the program. If you have any
questions, read the corresponding chapters. If you don't find the information you need in the online
help file, then contact me and I shall try to find the time to answer your questions...

http://www.chaospro.de/documentation/html/programdescription/gettingstarted.htm[12/16/2018 1:50:49 PM]


Main Window

ChaosPro
Home Release 4.0

Introduction
Welcome Main Window
to
ChaosPro
Preface

Requirements










Installation
and
Deinstallation







Legal Stuff
Author
Getting
Started
Main
Window


Above you can see the main window of ChaosPro. It consist of the following elements:

Toolbar: The toolbar offers the most used and most important commands.

Menubar: The menubar provides access to several settings and many windows.

Palette: The palette icon in the toolbar will open a small window containing all predefined palettes.
Parameter Collections: This dropdown combobox contains all parameter files which ChaosPro found
at program start. A parameter file is a collection of many parameter sets (i.e. fractals), and thus
you can store fractals in a single file.
What's New
Palettes Parameters: This dropdown combobox displays all parameter sets (fractals) contained in the current
parameter collection.
Using
Formulas Statusbar: The status bar will display a short descriptive text as you hilight menu items or move the
Layering in mouse
over some other graphical elements. Whenever I thought that the small labels were not
ChaosPro intuitive enough
in order to understand a function, I placed a longer text into the field in the
Rendering statusbar.
The second field in the statusbar displays the progress of the current fractal calculation,
Fractal
i.e. of the fractal whose window is activated. The next field then displays the fractal type of
the
Parameter active fractal and its zoom level. The final field shows the selected resolution.
Windows
Windows
Menu

3D
Transformations Toolbar







Animations

As mentioned before, the toolbar offers access to the most used commands.
While moving the mouse over a
Formula

http://www.chaospro.de/documentation/html/programdescription/mainwindow.htm[12/16/2018 1:51:03 PM]


Main Window

toolbar button a short descriptive text for that button will appear as a tool tip.
Compiler
Compatibility
The toolbar has the following buttons (from left to right):
Fractal Type
Reference New: This button opens a small window which lets you add new fractals which are initialized with
Tutorials default values.
Appendix

Open: Lets you open files. This command lets you open formula files, palette maps, parameter files
and images (PNG images). Simply choose what you want, ChaosPro will look at the extension and
call the appropriate routine.

Note: Most load file requesters in ChaosPro handle multi selection, i.e. you can load several maps,
parameter files, etc at the same time by multiselecting them.

Save: Saves the current fractal into a parameter file. After selecting this button you have to choose
the file to save the parameters in. The file is scanned whether it is a valid parameter file and
whether it already contains a fractal data set with the same name (in this case you can choose to
replace the existing entry or simply to append the new parameter set to the file).

Save All: This button lets you save the current project and all its fractals into a parameter file.

Print: Prints the current fractal (if there is something to print...)

Start: Starts the fractal calculation, opens a window, creates a thread, etc.

Stop: Stops the fractal calculation (same as closing the fractal window)

Delete: Deletes the fractal data structure (i.e. removes it from the drop down combo box and frees
all memory associated with it)

Resize: Opens the size window

Undo/Redo: Undoes or redoes the last change.


The configuration dialog offers the following buttons:

Pause and Resume: Stops and continues the fractal calculation.

Default values: Restores the default values for the current type/ subtype combination.

Clone: Clones the fractal, including buffers, layers, etc., simply creates a complete clone...

http://www.chaospro.de/documentation/html/programdescription/mainwindow.htm[12/16/2018 1:51:03 PM]


Palettes

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Color Models
Palettes in ChaosPro
Palette Editor
Alpha Channel Editor
Menu
Keyboard Interface










Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/index1.html[12/16/2018 1:52:07 PM]


Color Models

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Color Models
RGB Color Model
HSL Color Model










Palettes in ChaosPro
Palette Editor
Alpha Channel Editor
Menu
Keyboard Interface










Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/index2.html[12/16/2018 1:54:10 PM]


RGB Colorspace

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes RGB Colorspace
Color Models
RGB Color Model

The RGB color space is the color space used by computers, graphics cards
HSL Color Model and monitors or LCDs.


It consists of three components, red, green and blue, the so-called base
(or Primary) colors.

A color is obtained by mixing the
three base colors. Depending on
how much you take from each
base color, you can create all
colors which a computer/monitor
can then display.
Palettes in ChaosPro
If you use none of the three base
Palette Editor
colors the result is black.
Alpha Channel Editor
Menu If you mix red and green, you'll get
yellow.
Keyboard Interface

If you mix red and blue, you'll get
magenta.

By mixing all three base colors with full intensity, you'll get white.

So by mixing the base colors in different intensities, you can create any
required color.


Because all three base color components are equal in importance, a three
dimensional cube can be drawn,
as shown, it's contents called a "Color
Using Formulas Space"
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix










Unfortunately you cannot rotate this cube to see it from all sides.

To illustrate how colors can be created within the cube’s color space:

Let us consider the base color Green which is placed on the vertical (Y)
axis with an arbitrary range of 0% – 100%, where 0% is at the Black end

http://www.chaospro.de/documentation/html/paletteeditor/colorspace_rgb.htm[12/16/2018 1:55:23 PM]


RGB Colorspace

and 100% is at full intensity.

The model cube shows you what happens when you preset Green to a
series of fixed values and then at each fixed value vary the red and blue
components.

You are effectively creating a number of horizontal slices and viewing each
slice from the top.

The box below shows the fixed value of the green component for each slice
with the resulting possible colors as red/blue are varied.

0%
<<
>>

http://www.chaospro.de/documentation/html/paletteeditor/colorspace_rgb.htm[12/16/2018 1:55:23 PM]


HSL Colorspace

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes HSL Colorspace
Color Models
RGB Color Model
HSL is short for Hue, Saturation and Luminance (or brightness).
HSL Color Model


The HSL color space defines colors more naturally: Hue specifies the base
color, the other two values then let you specify the saturation of that color
and how bright the
color should be.

As you can
see in the
image, hue
specifies the
color. Hue is
normally
Palettes in ChaosPro specified as
Palette Editor either
degrees
Alpha Channel Editor ranging from
Menu 0° to 360° or
Keyboard Interface as numbers

from 0 to 6,

in the image

at the left

side both

starting at

the 3 o'clock

position and

measured

anti-

clockwise.

Using Formulas There are 6 base colors:
Layering in ChaosPro
Rendering Hue Hue (degree) Color
Fractal Parameter Windows 0 0° red
Windows
1 60° yellow
Menu
3D Transformations 2 120° green
Animations 3 180° cyan
Formula Compiler 4 240° blue
Compatibility
5 300° magenta
Fractal Type Reference
Tutorials 6 360° red
Appendix
After specifying the color using the hue value you can specify the

saturation of your color. In the HSL color wheel the saturation
specifies the
distance from the middle of the wheel. So a saturation value of 0 (0%)
means "center of the wheel", i.e. a grey value, whereas a
saturation value
of 1 (100%) means "at the border of the wheel", where the color is fully
saturated.

The third parameter in the HSL color space is the luminance. This lets you
specify how "bright" the color should be. 0% means, the brightness is 0,
and the color is black. 100% means maximum brightness, and the color is
white.

If you slowly increase the luminance, you will see the color changing from
black at 0% and then through a darker version of your color,
to your color
in its full brightness at 50%, and then getting brighter until finally it
reaches white at 100%.

http://www.chaospro.de/documentation/html/paletteeditor/colorspace_hsl.htm[12/16/2018 1:55:41 PM]


HSL Colorspace

The following six luminance sliders show you what happens with colors if
you change the luminance:

0/ 1/ 2/ 3/ 4/ 5/
  Hue 0° 60° 120° 180° 240° 300°
Luminance  
100%  
90%
80%
70%
60%
50%
40%
30%
20%
10%

0%

http://www.chaospro.de/documentation/html/paletteeditor/colorspace_hsl.htm[12/16/2018 1:55:41 PM]


Palettes in ChaosPro

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Palettes in ChaosPro
Color Models
Palettes in ChaosPro
Palette Editor
Alpha Channel Editor
In the early days of fractals computers were only able to create black and
Menu white images.
Thus fractals were quite boring from an artists point of view:
Keyboard Interface
The images were

fascinating,
because they
seemed to have an
infinite amount
of
detail. But
computers needed
days, or even
weeks just to
calculate a single
image in black and
Using Formulas white.
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations But then as computers became more powerful and had better graphics
Animations capabilities, they
became able to calculate fractals in colour.
Formula Compiler
Nowadays the
Compatibility colors assigned to
Fractal Type Reference a fractal play a
Tutorials very important role
in making a fractal
Appendix beautiful.

One of the key


features of modern
fractal generators
is to give the user
as much control

over the colors
used to draw the
fractal as possible.

A fractal can be
boring if the colors
are not well chosen. Colors can enhance the details
and they can
emphasize structures which otherwise would be too weak to get noticed.

In ChaosPro you use palettes to color a fractal: A palette is a set of colors


which
are used by the fractal and by adjusting the palette you change the

colors. Each fractal has its own palette.


In ChaosPro a palette can consist of up to about 250 different colors
(normally fewer),
which then are interpolated and so form a "path", the so
called color gradient:

The sum of all


colors is called
the "color
space". It is a
three

http://www.chaospro.de/documentation/html/paletteeditor/palette.htm[12/16/2018 1:55:53 PM]


Palettes in ChaosPro

dimensional
object,

normally a
cube as seen at
the left side (at
least if the RGB
color model is
used).

If you select
several points
anywhere
inside that
cube and then
draw a line
through your

points.
This is
what happens
in ChaosPro:
You define
some colors, and ChaosPro uses your colors and
interpolates them to form
a smooth range of colors.

http://www.chaospro.de/documentation/html/paletteeditor/palette.htm[12/16/2018 1:55:53 PM]


Palette Editor Window

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Palette Editor
Color Models
Palettes in
ChaosPro
Palette Editor
Adjusting the palette is done in the palette editor. It allows you to adjust the colors, to choose
the type of interpolation and to choose the color model.
Several preset palettes are provided
Alpha Channel with ChaosPro, so you should already have some coloring schemes for your fractals.
The
Editor palette editor looks as follows:
Menu
Keyboard
Interface










Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter
Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type
Reference

Tutorials

As you can see, there are three display fields, one for each color component (red, green,
Appendix blue). By looking at a color component you can easily
identify the different control points and

the interpolation line.

In order to have a common understanding, let's explain and define what a control point
actually is:

Definition: Control Point


A control point is used as a fulcrum for interpolation. Think of it as follows: Suppose
you have a board and a cord. Now you want to place the cord on that board to form
some shape. An easy way is to use a hammer and some nails: You drive some nails
into the board and then you put the cord alongside the nails. If you then stretch the
cord tight, you have a so called "linear interpolation": Line segments ranging from
nail to nail, or in technical terms: A linear function between two successing control
points. Instead of using a cord you can also use a bendable metal wire: If you
conduct the wire alongside the nails you will recognize that it bends around between
the nails: Although it touches each nail the whole wire tries to minimize the
directional changes: Unlike using linear interpolation by using such a bendable metal
wire no sudden directional changes occur. This kind of interpolation is normally
called spline interpolation. ChaosPro knows both methods, but both methodsrely on
control points.

What can one do with the color components displayed above?

http://www.chaospro.de/documentation/html/paletteeditor/palettewindow.htm[12/16/2018 1:56:01 PM]


Palette Editor Window

You can change the colors by dragging control points with the mouse. Your
changes are made in realtime, so you will see the effect of dragging a control point
to another location even during your drag operation.
You can add a control point by double clicking into the displayfield onto the
position where you would like the control point to be added.
You can delete a control point by selecting it (clicking onto it using the mouse) and
then pressing the DEL key or the BACKSPACE key on your keyboard.
You can perform drag or delete operations on multiple control points at the same
time by using "multiselect": Simply click into the displayfield, hold down the mouse
key and move
the mouse around: A selection rectangle will appear. Drag it, so it
covers the control points you'd like to be selected. While holding down the SHIFT
key on your keyboard
you then can preserve the selection and drag all selected
control points around.


Holding down the SHIFT key on the keyboard will generally preserve the selection
state of the control points. So you can multiselect control points by holding down the
SHIFT
key and selecting each control point separately: It will then be added to the
current selection list.

To the left and right side of each displayfield there is a so called "color simulator": It shows
you what would happen if you would move the
current control point up or down.

Below the displayfields there is the offset slider: This slider allows you to displace the palette.

And below the offset slider at the left edge of the palette editor there is the color selector: It
displays the current color. By clicking onto the
filled circle another window will open which
allows you to choose a color using the HSL color wheel.

The items beneath the color selector let you view or manually adjust the color values.

And the last item in the palette editor is the Smooth checkbox. If it is not checked, then the
control points are interpolated using
linear interpolation. Otherwise the control points are
interpolated using a limited cubic spline (i.e. a smooth curve).

http://www.chaospro.de/documentation/html/paletteeditor/palettewindow.htm[12/16/2018 1:56:01 PM]


Alpha Channel Editor

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Alpha Channel Editor
Color Models
Palettes in ChaosPro
Palette Editor The Palette Editor lets you define the colors. But ChaosPro also lets you
Alpha Channel Editor define a transparency curve: If a fractal wants to
colorize a pixel using a
Menu color from the gradient then not only the color is taken, but also the
corresponding transparency value (alpha value) from
the Alpha Channel
Keyboard Interface
Editor.








Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler Most of the elements you should already know from the Palette Editor,
Compatibility except perhaps the "Transparency Viewer": This static control (you cannot
Fractal Type Reference interact
directly with it) shows you how "transparent" the current alpha
value is: It does this by making a small artificial object transparent by
Tutorials
using the current alpha
value.
Appendix

The other items let you view or manually adjust the values.








http://www.chaospro.de/documentation/html/paletteeditor/alphawindow.htm[12/16/2018 1:56:10 PM]


Palette Editor - Menu

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Palette Editor - Menu
Color Models
Palettes in ChaosPro
Palette Editor
The Palette Editor has a menu which offers some additional commands.
Alpha Channel Editor
Menu
Keyboard Interface










Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows The first menu command is labelled Colormodel, and as the name implies,
Windows you can choose between four colormodels:
Menu
RGB - the default color model as found in almost all graphics
3D Transformations programs.
Animations
CMY - very similar to RGB, except that the base colors are not
Formula Compiler red, green and blue, but cyan, magenta and yellow.
Compatibility
HSL - humans like this color model because it lets you specify a
Fractal Type Reference color more naturally by first defining the hue color, then the
Tutorials saturation/luminance of the desired color.
Appendix HSV - almost identical to HSL, but the luminance is replaced by

the value, which has only half of the range of luminance.

Please note that changing the colormodel will change the gradient! The
interpolation takes place using the current color model. Although the
control points are
the same, the interpolation curve will change and thus
affect the gradient. So don't be astonished if the colors change...


Besides the colormodel you can "reorganize" your control points: This
means, ChaosPro examines your palette and the resulting gradient and
removes control points which are
unnecessary, i.e. which leave the
gradient (almost) unchanged if removed. Having fewer control points
simplifies working with palettes.

Example:

If you load a FractInt *.map palette and view it using the palette editor in
ChaosPro, you most probably will see many control points. In fact, you will

see round about 252 control points, one for each color in the palette.


If you a look at a FractInt *.map file using a texteditor (e.g. notepad), you
will see only color definitions, most of the time 256 colors, defined
by the
red, green and blue component. There is no information about 'control
points' and such stuff. Now ChaosPro has to be compatible to FractInt, i.e.

read *.map files.

Because there are no control point definitions in FractInts *.map file,


ChaosPro makes its life easier and simply assigns a control point to each
color. You
will have noticed it already: The Palette Editor is not useful for

http://www.chaospro.de/documentation/html/paletteeditor/menu.htm[12/16/2018 1:56:16 PM]


Palette Editor - Menu

changing such palettes. You can only grab a control point in a color
component and move it around, but then only a single color changes. You
don't even have easy access to the red, green and blue component. And
due to that some "clean up" routine
has to be built into ChaosPro. So if you
have loaded a FractInt palette, then choose Reorganize in order to remove
control points so that you can work with the palette.

Working with Preset Palettes

In ChaosPro each fractal has its own palette. A number of preset palettes
exist, which can be copied into the fractal and thus replace the colors of
the fractal.
If you save a fractal parameter set, its color information, i.e. its
palette will be saved as a part of the fractal as well. So please note: The

preset palettes are only predefined palettes which can be copied into the
palette of the fractal. The palette editor will always display the
palette of
the currently selected fractal and never a preset palette.

In order to copy a preset palette into a fractal just select it from


the list of preset palettes. The list will appear if you choose
the
menu item Choose Preset.
If you want to load additional preset palettes choose the menu
item Load Presets. You can load FractInt palettes as well.
In case you have created a wonderful palette and want to save it
as a preset palette so you can always use it for any other fractal
as well choose the menu item "Create Preset".
You then are
asked for a name of the palette. After that it will be added to the
list of preset palettes and it will be saved onto harddisk into the
proper preset palette folder.

Working with Control Points

The remaining menu items let you work with control points:

Select All and Invert Selection lets you work with the selection state of
the control points.

Randomize randomizes the selected control points, i.e. creates random


values for the control points.

The bool setting Control Point per Component lets you specify whether
control points are per component or global for all three components:

If control points are not per component, i.e.


"global", then a control point consists of the red,
green and blue component.

If you drag a control point within the red


component,
then the corresponding green and
blue "control point index" will be moved as well.


If you choose "Control Point per Component",
then a control point in one component is
independent from the control points in the
other components.

If you drag a control point in the red


component to a new position, then the control
points in the green or blue components are not

http://www.chaospro.de/documentation/html/paletteeditor/menu.htm[12/16/2018 1:56:16 PM]


Palette Editor - Menu

affected.

So in this mode you have three completely


independent curves.

The last menu item specifies whether


control points can be dragged to any
position inside a component or whether
control points must stay between
neighboring control points.
The image at
the left illustrates this.

http://www.chaospro.de/documentation/html/paletteeditor/menu.htm[12/16/2018 1:56:16 PM]


Palette Editor - Keyboard Interface

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Palette Editor - Keyboard Interface
Color Models
Palettes in ChaosPro
Palette Editor
Sometimes, especially when working with many control points, it is not
Alpha Channel Editor convenient to always work with the mouse. Due to that, a keyboard
Menu interface lets you perform
some operations. The following sheet lists the
possible key combinations:
Keyboard Interface

Key Action

Moves the current control point one pixel to the
Cursor left left

Moves the current control point one pixel to the
Cursor right right
Moves the current control point one pixel
Cursor up upwards

Using Formulas Moves the current control point one pixel
Layering in ChaosPro Cursor down downwards
Rendering Moves the current control point 16 units
Fractal Parameter Windows PageUp upwards
Windows Moves the current control point 16 units
Menu PageDown downwards
3D Transformations Deselects the current control point, selects the
Animations Ctrl-Cursor left previous control point
Formula Compiler Deselects the current control point, selects the
Compatibility Ctrl-Cursor right next control point
Fractal Type Reference Selects the previous control point, adding it to
Tutorials Shift-Ctrl-Cursor left the current selection list
Appendix Selects the next control point, adding it to the

Shift-Ctrl-Cursor right current selection list

Deselects the current control point, selects the
Pos1 very first control point in the displayfield
Deselects the current control point, selects the
End last control point in the displayfield

Adds all control points to the current selection
which lay between the current control point and
Shift+Pos1 the first control point in the displayfield
Adds all control points to the current selection
which lay between the current control point and
Shift+End the last control point in the displayfield
Deletes/removes all control points which are
Del currently selected
Deletes/removes all control points which are
Backspace currently selected
Preserves the current selection, and thus lets
Shift you add control points to the current selection.

http://www.chaospro.de/documentation/html/paletteeditor/keyboard.htm[12/16/2018 1:56:22 PM]


Using Formulas

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Using Formulas
Using Formulas
Transformation

ChaosPro has three fractal types - Escapetime, Quaternion and Attractor -
Iteration which are completely
based on user defined formulas. Several formulas are
Coloring provided with ChaosPro, so you do not need to write
formulas yourself. But
Assigning Formulas if you like, you can write your own formulas using the
Formula Compiler:
Such formulas
are compiled in real time as needed and are fast, at least if
User Interface
compared to interpreted formulas (as in FractInt).
Formula Database


At program start ChaosPro scans specific folders on your harddisk and
loads the formulas contained in them.
All these formulas then can be used
within ChaosPro. The directories to scan can be specified using the

"Options" dialog (menu: Settings/Options, tab Directories). There you can
specify several different
directories which ChaosPro should use.

It is recommended to use only a few scan directories which limited depth,
because otherwise ChaosPro needs
quite long to start (of course, you could
specify your complete hard disk c: and d:, then ChaosPro would find
all
formulas contained on your hard drive, but it would be very slow to start).

The default scan directory for your formulas is the directory
Layering in ChaosPro "formulas\Compiler" located below the ChaosPro
installation directory.
Rendering
Fractal Parameter Windows Loading Formulas
Windows If you later on want to load additional formulas, you need to open the
Menu compiler window (menu: Windows/Compiler).
There you can load
3D Transformations additional formulas into ChaosPro by using the "Open" command from
Animations the toolbar.
Formula Compiler
Note:
Compatibility
If you load additional formulas located in a specific directory into ChaosPro,
Fractal Type Reference then ChaosPro automatically
adds that directory to the list of formula
Tutorials directories to scan at startup. So the next time you start
ChaosPro you
won't need to load that formula again because ChaosPro already scanned
Appendix
that directory.


Importing Formulas

ChaosPro can use almost all UltraFractal 3.0 formula files, i.e. UltraFractal
Transformations (*.uxf files), UltraFractal Formulas (*.ufm files) and
UltraFractal Colorings (*.ucl files).

In order to use them within ChaosPro, they need to be imported. During
import the formula files get
converted to ChaosPro syntax, which is more
like Java or C/C++. This means, ChaosPro "rewrites" the formulas.
The
whole import process is automatic, you won't have to manually adjust files.
After having imported these
files, they behave just like normal ChaosPro
formulas (because they are normal ChaosPro formulas!).

Most UltraFractal formulas and most ChaosPro formulas are published


through the use of public Internet
databases. ChaosPro can automatically
synchronize with these databases. This synchronization is described
in
detail in chapter Formula Database.


If you want to manually import UltraFractal formulas, then put all your
transformations, iteration formulas
and coloring formulas into a folder on
your harddisk (the original UltraFractal folder is a good place...),
start up
ChaosPro, choose menu item "File/Import Formulas" and choose the folder
containing all formulas to import. The formulas will get translated and
saved into a subfolder below the "ChaosPro\Formulas" folder. The name of
the subfolder
will be the same name as the source folder.

Important:The import feature may contain bugs. So please whenever you

http://www.chaospro.de/documentation/html/formulacompiler/usingformulas.htm[12/16/2018 1:58:30 PM]


Using Formulas

obtain a new version of


ChaosPro, re-import all your UltraFractal formulas.

Please note that currently UltraFractal Alpha Channel formulas are not
supported, although alpha channel information inside a fractal parameter
entry in an *.upr file can be correctly handled by ChaosPro.

http://www.chaospro.de/documentation/html/formulacompiler/usingformulas.htm[12/16/2018 1:58:30 PM]


Transformations

ChaosPro
Home Release 4.0

Introduction
What's New Transformations
Palettes
Using Formulas
Transformation formulas "transform" the complex or quaternion plane used for calculating the
Layering in
fractal. So they can be
used to apply any kind of mapping: For example they can map the fractal
ChaosPro
onto a sphere. Any kind of distortion
can be performed using transformations.
Rendering
Fractal
Parameter
Windows
Windows
Menu
3D
Transformations
Animations
Formula
Compiler
Compatibility Original fractal Spherical mapping Lens mapping
Fractal Type
As you can see, transformations do not introduce new "shapes" into or add more details to the
Reference fractal:
They only can distort the fractal or parts of the fractal in an arbitrary manner.
Attractor
Bifurcation -
In order to fully understand the use of transformation formulas you need to know some basics of
Theory fractal iteration:
Dynamic
System
Let's describe fractal type Escapetime: A fractal gets drawn into a window, which is a rectangular
Escapetime area.
For fractal type "Escapetime" each "screen-"pixel in that window corresponds to a specific
complex number, so that the window basically is
a small rectangular area cut out from the complex
Theory
number plane.
In order to calculate the fractal the complex number corresponding to a pixel gets
Overview passed to the calculation
routine, which finally returns a color for that pixel.
Area Tab
Mapping
This screen pixel
Tab corresponds to a
Formula specific complex
Tab number. The
Inside transformation then
Tab takes this complex
Outside
number and modifies
Tab it. The modified

complex number then
gets fed into the fractal
calculation routine.


Managing transformations is done in the mapping tab of the parameter window of Escapetime or
Quaternion fractals.
This tab looks as follows:

The icons on the left side let you manage the list of
transformations. You can add several transformations
to
the list: They are applied subsequently, and so they allow
you to apply several distortions to a fractal
at the same
IFS time.
LSystem

By clicking onto this button a modal window will
Lyapunov open: It allows you to browse through the list of
Space - transformations. Select your desired transformation by
Theory double clicking onto the formula. The transformation will
Plasma be added to the list and inserted after the currently
Quaternions selected transformation.


This button removes the currently selected
transformation from the list of transformations.


By pressing this button the currently selected
transformation is moved up.

http://www.chaospro.de/documentation/html/formulacompiler/trafo.htm[12/16/2018 1:58:53 PM]


Transformations


By pressing this button the currently selected
transformation is moved down.


If you look at the list of transformations you can see the icon to the left side
of the
transformation label. By clicking onto this icon you can enable or disable the transformation.
Tutorials
Appendix
Sometimes transformations try to distort the input area but cannot determine a reasonable complex

value, for example
if they perform a spherical mapping. For these and other special cases the
transformation can set the pixel to a solid color and a fixed opacity value. You can adjust these
parameters by selecting the solid color and adjusting the opacity value of the solid color right
beneath.


If you select a transformation you can see that the lower part of the window will change:
It contains
the parameters of the transformation as defined by the author of that formula.
To read more about
formula parameters and the user interface provided to them read User Interface.

http://www.chaospro.de/documentation/html/formulacompiler/trafo.htm[12/16/2018 1:58:53 PM]


Iteration Formulas

ChaosPro
Home Release 4.0

Introduction
What's New Iteration Formulas
Palettes
Using Formulas

The iteration formula is the main formula for fractals: This formula is responsible for the complexity
Layering in
of the
fractal, i.e. the detail level and its shape.
ChaosPro
Have a look at the following three images: They all show the same area using exactly the same
Rendering
settings except the iteration formula.
Fractal
Parameter
Windows
Windows
Menu
3D
Transformations
Animations
Formula
Compiler
Compatibility
Fractal Type
Reference
Attractor
Ok, now let's see how you actually assign an iteration formula to a fractal. All settings are
concentrated in
the parameter window, tab "formula" (see below).
Bifurcation -
Theory
Setting a Formula: By pressing this button a modal
Dynamic
System dialog box will appear: It will display all formulas
Escapetime currently known to ChaosPro. Select a formula and
double click onto the formula name to assign it to the
Theory formula. If you hold down the "SHIFT"-key on your
Overview keyboard, the current parameter values are preserved
Area Tab and the new formula will use that values.
Mapping Iteration: This value specifies the maximum number of
Tab iterations which ChaosPro should perform. After each
Formula iteration the so called "bail-out" condition is evaluated:
Tab If it evaluates to true, the loop exits and the pixel is
Inside considered to belong to the "outer" area. If the loop
Tab was executed the maximum number of iterations, then
Outside it terminates, too, but the pixel is considered to belong
Tab to the "inner" area. The beauty of the fractals mainly

comes from the border between the "inner" area and
the "outer" area: This border can be excitingly
complicated.

Passes: This item lets you specify the number of passes used to draw the image. So if you

choose 3 Passes, then at first only every 4th pixel (horizontally and vertically) will be

calculated and the image will consist of 4x4 blocks (and thus will look quite clumsy). But

the advantage is, that a first preview is finished in 1/16 of the total time, so you quickly

have an imagination of how the image will look like at the end. After this first pass the

second pass calculates every 2nd pixel, and the third pass will calculate all remaining

pixels.
IFS
LSystem
Periodicity checking speeds up the calculation by examining the iteration loop and
Lyapunov
Space - searching for
fixed points and similar attractors. In that case ChaosPro knows that the
Theory maximum number of iterations
will be reached at the end, and thus it can stop the
Plasma process.
This speeds up the calculation, but
as you can imagine, the program can guess wrong: In
Quaternions that case, the final image contains sections which
seem to be "inside". Have a look at the

following three example images: Below each image you can find
the time needed and the
setting of "Perodicity Check".


http://www.chaospro.de/documentation/html/formulacompiler/iteration.htm[12/16/2018 1:59:26 PM]


Iteration Formulas






Tutorials
Appendix


Check=Off Check=Normal Check=Very Soft
Calculation time: 12.3 sec Calculation time: 8.3 sec Calculation time: 7.3 sec
As you can see, the proper setting of "Periodicity Check" speeds up the calculation enourmously, but
you
will need to manually verify whether the setting is suitable. Some fractal formulas work
perfectly with
periodicity checking logic, whereas others won't work at all...

Elimination: This setting specifies whether ChaosPro should guess pixel colors between
subsequent draw passes:
This can speed up calculation times at the cost of accuracy. I
suggest to enable it for exploring, because it makes
fractals calculate faster. But at the
end you should set it to "off" in order to see whether there is any difference.
If not, switch
it on again...


If you have chosen an iteration formula you can see that the lower part of the window will display
additional parameters:
It contains the parameters of the formula as defined by the author of that
formula.
To read more about formula parameters and the user interface provided to them read User
Interface.

http://www.chaospro.de/documentation/html/formulacompiler/iteration.htm[12/16/2018 1:59:26 PM]


Coloring Formulas

ChaosPro
Home Release 4.0

Introduction
What's New Coloring Formulas
Palettes
Using Formulas

The third type of formulas supported by ChaosPro are coloring formulas. Their purpose is to
Layering in
calculate a color for each pixel. There are two different types of coloring formulas:
ChaosPro
Rendering 1. Index based coloring formulas: These formulas return a floating point number which act as an
Fractal index into the color map:
So the color is not specified directly. You can specify additional
Parameter mapping parameters in the inside or outside
tab of the fractal itself. Basically you could
Windows implement these mappings through the use of parameters in your formula, but this way some
Windows basic mappings are always available.
Menu
3D 2. Direct coloring formulas: Such formulas directly calculate the color for each pixel. They can
use
Transformations the current color map and the settings in this window, but are not obliged to use it. This way
Animations
the formula writer has full control over all colors.
Formula
Besides this distinction the formulas may be written for a special fractal type, either for Escapetime,
Compiler for Quaternion or for Attractor.
Compatibility
Fractal Type
For fractal type Escapetime all coloring settings exist twice: These fractals have an "inside" and an
Reference "outside" region: Each region
can use its own coloring formula and settings. The meaning of the
Attractor parameters is the same for inside and
outside, so I'll explain it only for the "outside tab".
Bifurcation -
Theory
Dynamic
System Selecting a Coloring Formula: By pressing this button
Escapetime
a modal dialog box will appear: It will display all
Theory coloring formulas currently known to ChaosPro. Select
Overview a formula and double click onto the formula name to
Area Tab assign it to the fractal. If you hold down the "SHIFT"-
key on your keyboard, the current parameter values are
Mapping preserved and the new formula will use that values.
Tab
Formula Removing a Coloring Formula: If you press this
Tab button then the coloring formula currently assigned to
Inside the fractal will be removed. A default algorithm will be
Tab used instead.
Outside
Tab


As mentioned before, the coloring algorithm returns an index. ChaosPro now transforms this "index"
value according
to the settings specified in the coloring tab and then returns the color of the
gradient at the resulting index.

The "transformations" done by ChaosPro are simply some density transformations, so that the color
density is affected.


The most important setting is the "Mapping" function. The images below show the same image

using the same gradient, but with different mapping functions:



IFS
LSystem
Lyapunov
Space -
Theory
Plasma
Quaternions


Mapping=Linear Mapping=Sqrt Mapping=Arctan

As you can see, the mapping function has great influence on the color density.

The following options exist:

http://www.chaospro.de/documentation/html/formulacompiler/coloring.htm[12/16/2018 2:00:10 PM]


Coloring Formulas



None: Simply returns the solid color. The coloring algorithm has no influence

Linear: Just returns the index value: The color density won't be affected.

Tutorials Sqr: Returns the square of the index value. The heigher the index, the higher the color
density.
Appendix

Sqrt: Returns the square root of the index value. The heigher the index, the lower the
color density.
Cube: Returns the cube of the index value. The heigher the index, the higher the color
density.

Cuberoot: Returns the cube root of the index value. The heigher the index, the lower the
color density.
Exp: Returns exp(index). The heigher the index, the higher the color density.

Log: Returns log(index). The heigher the index, the lower the color density.
Sin: Returns the sine of the index. The color density changes in a periodic manner.
Arctan: Returns the arcus tangent of the index value. The heigher the index, the lower the
color density.


In addition to the mapping function the settings "Speed" and "Accel" exist:
Speed multiplies the index value: So Speed>1 increases the color density, whereas
Speed<1 decreases the
color density.
The "Accel" setting is not used by all mapping functions: Normally it lets you change the
break-even between color densities, so it divides the resulting index value.

Some more options exist: They allow you to customize the use of colors even more:
The "Offset" setting lets you specify an offset to use for the gradient.
"Wrap around": If checked, the gradient will be continuously repeated:

Normally "index value"=0 gets mapped to color 0, "index value"=1 gets mapped to last
color of color map.

If "Wrap around" is not checked, then all (resulting) index values greater than 1 will be
mapped to the last color of the gradient.

If "Wrap around" is checked, then the gradient will be repeated.
The "Smooth" setting gives you control over the color interpolation: The color map has
entries ranging from 0 to 249. The resulting index value can be any floating point number.

Smooth=1 means, that the resulting index value will be rounded to a multiply of 1, i.e. to
the next integer number. Then the index is used to extract the color.

Smooth=0.5 means, that the resulting index will be rounded to a multiply of 0.5, meaning
that the final index used for color extraction from the color map can have values 0, 0.5, 1,
1.5, 2 ... Smooth=0.1 means, that the resulting index will be rounded to a multiply of 0.1,
meaning that the final index used for color extraction from the color map can have values
0, 0.1, 0.2, 0.3, 0.4 ... Smooth=0 means, that the resulting index will not be rounded at
all, it is already the final index used for extracting the color from the color map...

http://www.chaospro.de/documentation/html/formulacompiler/coloring.htm[12/16/2018 2:00:10 PM]


Assigning Formulas

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Assigning Formulas
Using Formulas
Transformation
If you want to assign a formula to a fractal, you normally need to click
Iteration
Coloring onto some kind of button . After having pressed this button a window
will appear (see below):
Assigning Formulas

User Interface This formula browser window displays


Formula Database all formulas which ChaosPro has
found. The formula which currently is

assigned to the fractal is initially



selected.
Expand and collapse the

folders as needed until you have

found the formula you would like to

use.
Then double click onto the

formula name. The window will close

and the formula will be used by
the

fractal. All parameter values for that

formula will be set to the default

values for that formula.
Layering in ChaosPro
Rendering Note: This window is a "focus
Fractal Parameter Windows window", i.e. as soon as this window
does not have the focus any more it
Windows
will close automatically.
Menu
3D Transformations If you hold down the SHIFT key on your keyboard then the parameter
values are preserved.
That means, if the old formula had a parameter
Animations
called "perturb" and the new formula has a parameter with
the same
Formula Compiler name, then the value of that parameter will be preserved. Normally (i.e.
Compatibility without pressing the shift key) all parameters are initialized with the
Fractal Type Reference
default values for that formula.
Tutorials Another way of assigning a formula is by using the Compiler window: That
Appendix window also has a tree view control displaying all formulas.
It works just

the same: Double clicking onto a formula name assigns the formula.

If a formula cannot be found (which can happen if you load a parameter
set), then the fractal will display a "not found: " error text where normally
the formula name will be displayed.




http://www.chaospro.de/documentation/html/formulacompiler/assignformulas.htm[12/16/2018 2:01:07 PM]


Setting Formula Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Setting Formula Parameters
Using Formulas
Transformation

Depending on the formula parameters can be selected in the parameter
Iteration window of the fractal:
After having assigned a formula (i.e. transformation,
Coloring iteration formula or coloring) the parameter window will offer
you all
Assigning Formulas parameters (variables declared with the parameter  keyword) and user
functions which the formula defines.
User Interface

Formula Database
A formula can define any

number of parameters. Each
parameter can be
enabled/disabled or
shown/hidden depending on
other parameters.
That
means: If you change the
value of one parameter, then
another parameter can
suddenly disappear or appear.

Layering in ChaosPro The formula can define hints
for each parameter or user
Rendering
function to provide a short
Fractal Parameter Windows explanation of how to use the
Windows setting: When you move the
Menu mouse
over a setting this hint
will appear (only if there is
3D Transformations one, of course)...
Animations
Formula Compiler A formula can define
parameters. Depending on
Compatibility the parameter type the GUI
Fractal Type Reference element is displayed:
Tutorials
a checkbox for boolean parameters (checking it means TRUE,
Appendix otherwise FALSE)

a drop down combo box for enumeration parameters (integer



parameters which have an enumeration description).

an entry field for real (float, double) values.

two entry fields for complex values.
four entry fields for quaternion values.

an image (texture) selection object for two dimensional arrays.
The array will be initialized with the values from the image.

Tip:
Whenever a complex number can be chosen a small
button containing a
hand will appear at the right side of the parameter: By clicking onto
this hand (it will appear sunken)
you will enter a special selection mode: If
you then move the mouse pointer over any fractal image ChaosPro
examines the complex number belonging to the current pixel under the
mouse pointer and sets the parameter to that value. If you click onto the
fractal using the left mouse button the current value gets set and the
fractal will be updated. Clicking with the right mouse button
terminates
that mode, leaving the parameter unchanged (all changes are undone).
You can also terminate this mode by clicking onto the hand again such that
it appears raised.

And even more: If you hold down the left mouse button while you are in
this selection mode all changes are applied
immediately and the fractal

http://www.chaospro.de/documentation/html/formulacompiler/frmlset.htm[12/16/2018 2:01:14 PM]


Setting Formula Parameters

gets redrawn on every change. This makes it possible to explore Julia sets:
Calculate a
Mandelbrot set, calculate the corresponding Julia set for that
formula. Then choose the parameter 'c' of the Julia set,
enter the selection
mode and place the mouse pointer on the Mandelbrot set. Press the left
mouse button and - while having
it pressed - move the mouse over the
Mandelbrot set: The Julia set will change as you move the mouse over the
Mandelbrot
set. This selection mode is available with any  complex
parameter.


Below the parameters the user functions of the formula can be selected.
Most formulas won't have user
functions. But if there are any, they are
presented here.

http://www.chaospro.de/documentation/html/formulacompiler/frmlset.htm[12/16/2018 2:01:14 PM]


Formula Database

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Formula Database
Using Formulas
Transformation
When sharing your parameter files it often happens that you use formulas
Iteration which other users
do not have. So they have to ask for the specific
Coloring formulas you used for your fractals.
The same happens if you have a more
Assigning Formulas recent version of the formula.
User Interface In order to circumvent this problem a public Internet Database has been set
Formula Database up.
In fact, there exist two Internet Databases, one for UltraFractal

formulas and one for ChaosPro
formulas. Whenever a formula author has
written a new formula (or a new version of his/her formula),
the author
should upload that formula into the database.

The advantages are that the databases contain many formulas, so users do
not have to search around
for additional formulas to use with ChaosPro.
And additionally the users can easily get the most recent
versions of the
formulas.

The URLs for these databases are:

Layering in ChaosPro http://www.chaospro.de/formulas/database.php
Rendering
http://formulas.ultrafractal.com
Fractal Parameter Windows

In order to upload to these databases you need to register first. This
Windows
process is explained on the Internet pages
in more detail.
Menu
3D Transformations
In order to synchronize with these databases you have two possibilities:
Animations Either the hard way, i.e. manually, or
the easy way, i.e. automatic.
Formula Compiler
Compatibility Automatic synchronization
Fractal Type Reference
ChaosPro can automatically
Tutorials synchronize its formulas with the
Appendix public Internet formula databases
for ChaosPro
and UltraFractal. You

open the window by selecting the
menu item "Windows/Update
Formulas".

The Formula Databases allow you
not only to download all formulas,
but also to
download changes which
have been made. This saves
download time, as the complete
databases consume several
MByte.


ChaosPro suggests how to
synchronize: Either "complete" or
"changes only", depending on
whether (and when) you
have
successfully synchronized your
Fig.: Update Window
formulas before.
When you click
onto "Start", ChaosPro connects to
the formula databases and downloads the formulas. It then
extracts the
files (zip files) and imports them into ChaosPro.

Note
ChaosPro uses your current Internet connection. ChaosPro won't
establish a new connection! If you are
connected to the Internet,
ChaosPro will use your default proxy settings exactly as defined in your
browser.
So if you are behind a firewall, don't worry, it should work: If
your browser can access the formula database,
ChaosPro can do that, too,
because ChaosPro actually uses your browser...

http://www.chaospro.de/documentation/html/formulacompiler/formuladb.htm[12/16/2018 2:01:21 PM]


Formula Database

Manual synchronization

In order to manually synchronize the formulas, you have to do the
following steps:
Surf to the formula databases:
http://www.chaospro.de/formulas/database.php
http://formulas.ultrafractal.com

and download the appropriate files. You then should have two zip
files on your harddisk, one from the ChaosPro Formula Database

and one from the UltraFractal Formula Database.
You then need to extract the zip-files using an unzip utility
(Winzip, Winrar, pkunzip and many others)...
Copy the extracted ChaosPro formulas into the directory
"ChaosPro/Formulas/Compiler".
Select the folder into which you have extracted the formulas from
the UltraFractal Formula Database and
rename that folder to
"Ultra Fractal", so ChaosPro puts your formulas into the correct
directory.
Start ChaosPro, select menu item "File/Import/Compiler Formulas"
and select the "Ultra Fractal" directory.
ChaosPro then will import
the formulas, which may take some time.
Now all formulas have been imported. But the formula database
contains some more files like txt-files,
help files or parameter
files. These files have to be copied manually: So using the
Windows Explorer select
the directory "Ultra Fractal", delete all
*.uxf, *.ufm and *.ucl files (these have been imported) and
after
that copy all remaining files into "ChaosPro/Formulas/Ultra
Fractal".
Remove (i.e. delete) the downloaded zip files and the folders
which were created while extracting
the zip files.
Done!

The automatic update feature will do just the same. And it will remove all
temporary files at the end of the
process.

http://www.chaospro.de/documentation/html/formulacompiler/formuladb.htm[12/16/2018 2:01:21 PM]


Layering in ChaosPro

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Basics
Layered Fractal
Merge Modes
Masks
Transparency










Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/index3.html[12/16/2018 2:01:43 PM]


Layering - Basics

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Fractal Layers in ChaosPro
Using Formulas
Layering in ChaosPro

Normally fractal generators calculate bitmap images of fractals. Well, this is
Basics not really surprising! ChaosPro does
just the same.
But lets see what this
Layered Fractal really means and what makes ChaosPro more powerful than many other
Merge Modes generators:
Masks A fractal image makes use of a fractal type, some kind of transformation,
Transparency an iteration formula and some kind
of coloring. Some fractal generators

allow you to specify only very few parameters, often transformations
cannot be specified,
whereas others allow you to specify many parameters.
But at the end, a single fractal image is generating by using
the
parameters provided by the user of the program.

After that the user has a nice image. Ok, and what happens next? Often
these images are put into a painting program
in order to do some post-
processing which should make the image even more beautiful. Sometimes
the image just gets
antialiased, sometimes the image gets wrapped around
a sphere, and sometimes the image gets merged into another
image.
Rendering
One of the best post-
Fractal Parameter Windows processing programs
Windows available (and one of
Menu the most expensive) is
Adobe Photoshop. And
3D Transformations one of
its main features
Animations is the layering: This
Formula Compiler makes it possible to put
images on top of each
Compatibility
other. If an image then
Fractal Type Reference contains
transparent
Tutorials sections, the images
Appendix below shine through.
It's as if the images are

arranged in a pile (see
image at the right).

This kind of layering is
possible with ChaosPro,
too. Often a single
image is too boring, but
combined with another
image
a fascinating new image can be the result. In order to merge an
image with the images below several merge modes can be selected
(just
as in Photoshop). Additionally you can specify a global factor for the merge
mode, i.e. how strong the "merge method"
should be applied.

Base Fractals and the Container


So in ChaosPro there are standard fractals, lets call them base fractals.
They can be calculated, their parameters
can be changed, just as in any
other fractal generating program. Base fractals include all types, for a
complete list see "Fractal Type
Reference" in the table of contents at the
left side of the help window.

And then there is a special "fractal type", the type "Layered Fractal", which
acts as a container for base fractals:
It lets you add any number of base
fractals to its list. On drawing this special type the fractals contained in
its
list will be calculated. The images will be put on top of each other
(according to their order in the list) and the final
image will be displayed.

http://www.chaospro.de/documentation/html/layering/basics.htm[12/16/2018 2:01:56 PM]


Layering - Basics

It sounds complicated, and perhaps you may ask whether it really helps.
But believe me, the results are amazing!

Conclusion
Always remember, ChaosPro has base fractals and the type Layered
Fractal, which can contain any number
of base fractals. Much confusion
exists due to users not being aware of the difference. Each layer in a
"Layered Fractal"
is a normal base fractal. So you cannot assign an
iteration formula to a "Layered Fractal", it's of no use to adjust the
palette
of a "Layered Fractal" and you cannot zoom in into a "Layered Fractal": All
these things can only be done with
base fractals, i.e. with the layers of a
"Layered Fractal". If you want to zoom in into a "Layered Fractal", you

need to zoom in into each layer (which is a base fractal) of it.

http://www.chaospro.de/documentation/html/layering/basics.htm[12/16/2018 2:01:56 PM]


Parameters for Layer Fractals

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Layer Fractal Parameters
Using Formulas
Layering in ChaosPro
Basics
As mentioned in the previous
Layered Fractal chapter, a "Layered Fractal"
Merge Modes just acts as a container for
base fractals.
Masks
Transparency
If you create an instance of

that type and calculate the
fractal, then at first you will
see an empty (black)

window, which does not show
anything. But each instance
of this fractal maintains a list
(see parameter window) of

layers (other fractals).

Now what can you do in this
Rendering window?
Fractal Parameter Windows You can add base
Windows fractals to the list
Menu of layers: This can Fig.: Parameter Window
be done by:
3D Transformations
Animations adding a completely new fractal to the list
Formula Compiler
Compatibility cloning an existing layer
Fractal Type Reference
or simply by using drag and drop: Drag a base fractal
Tutorials from the Fractal Tree Window (don't activate it, as
Appendix then
the layer window will disappear, instead, just drag

it...) and drop it onto the list of layers: A copy of that

fractal will be added to the list of layers.


You can delete a layer from the list.

  You can arrange the layers in the list, i.e. you can move
a layer up or down, thus it appears behind or in front of another
layer.

The list box contains the different layers. If you add a layer it gets copied
(and not referenced). So you
can add the same fractal several times with
different parameters. Every time you add it, a copy of its current state is
made and added.

Each entry has some additional options (see image above) which you can
switch on and off by clicking onto the small bitmap.

means that the layer currently is visible.


means that the layer currently is invisible.


Sometimes you may want to experiment with the layers and see
the effect of a single layer: By clicking onto the small bitmap you
make the layer visible or invisible.

==> window of the base fractal is visible.


==> window of the base fractal is hidden.

http://www.chaospro.de/documentation/html/layering/layerparm1.htm[12/16/2018 2:02:03 PM]


Parameters for Layer Fractals


Each layer is a complete fractal (I use the term "base fractal"),
which must be (can be) calculated. Each base fractal
normally
has its own window, in which the fractal will be drawn. In order to
have fewer windows this window
can be hidden. It's quite
confusing to have many windows open at the same time. But
sometimes you may want to work with
a specific layer. In that
case it's perhaps better to show the window.

==> Layered Fractal is automatically updated from base


fractal.
==> Layered Fractal will be updated from base fractal only at
the end.


If "automatic update" is enabled, then each time the base fractal
of a layer has finished calculating some lines
it updates the
layered fractal. If there are many layers, then there are (of
course) many fractals, and each fractal tries to constantly update
the "Layered Fractal", which is a time consuming task. If you
encounter some difficulties with many layers I recommend to
disable the "automatic update" feature. It saves time.

==> Zooming in/out or moving the layered image will zoom


in/out or move the layer (i.e. the base fractal).
==> Zooming in/out or moving the layered image won't affect
the layer (i.e. the base fractal).


This option means whether zooming into the layered fractal or
moving it around (dragging) affects that specific layer or not:
Suppose you have two layers and then zoom into the layer
image: Then most probably you want to zoom into each of the
two layers at the same location. Or do you just want to zoom into
one layer? Or move around only one layer? For example enable it
at one layer and move the layered fractal around: You will not
move the whole image around. Instead, only one layer gets
moved around behind/in front of the other layer.

==> Transparency information from this layer will be used.


==> Transparency information from this layer won't be used.


This option lets you switch on and off the alpha channel.
Escapetime fractals and Quaternions can have an alpha channel

(i.e. transparency for each pixel in that layer). For more
information see Transparency.
The name after the options simply reflects the name of the layer
(i.e. the fractal defining this layer).

Merge type lets you specify how this layer is merged with the image
resulting from merging the underlying layers. The Factor lets
you specify
how strong the merge mode should be applied (range from 0% to 100%).

Mask: Only transparency information from this channel will be taken and
used as mask for the layer above. For more information about this
important feature see Masks.


Left and Bottom: These two values let you define some displacement in
pixel of the current layer. You can easily adjust these
values by holding
down the Ctrl-key on your keyboard and dragging the image in the
Layered Fractal: You will see, only the
currently selected layer will be
dragged, it won't be recalculated, only the offsets will be adjusted.

http://www.chaospro.de/documentation/html/layering/layerparm1.htm[12/16/2018 2:02:03 PM]


Merge Modes for Layers

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Merge Modes
Using Formulas
Layering in ChaosPro

The "Layered Fractal" lets you add base fractals to its layer list. Then the
Basics images of those fractals are put on top of each other and the resulting
Layered Fractal image will be drawn.
Merge Modes
Let's have a more close look at this process of putting layers on top of ech
Masks other:
When a pixel in the Layered Fractal gets calculated, ChaosPro starts
Transparency with the pixel of the bottom layer and takes its
color information. After that

it advances to the next layer (the layer above that) and extracts the color
from that.
Then the colors are merged using the merge mode and the
factor in order to form the resulting color.
Again, ChaosPro advances to
the next layer, extracts its color and merges this color from the resulting
color from
the previous layers. This process continues upto the first (the
topmost) layer in the layer list.

So as you can see, the merging has two main settings: The merge mode,
which lets you specify how the layers will be merged, and the factor which
lets you specify how strong the merge mode should be applied.
Rendering
Fractal Parameter Windows Let me describe the available merge modes. The term base color is used
Windows for the color, which is the result from merging
of all the layers below the
Menu current layer. The color of the current layer (which should be merged) is
called the merge color.
3D Transformations
Animations Normal: The resulting color is a mix between the base color and
Formula Compiler the merge color. Factor defines the exact mix: 0 means base
color, 100 means merge color. By increasing Factor from 0 to 100
Compatibility you get a smooth color range from base color to merge color. In
Fractal Type Reference other words: It lets you lay over one layer where the underlying
Tutorials layers "shine through".
Appendix Multiply: Multiplicates base and merge color on rgb basis. This

means as soon as one component is 0, the resulting component
will be 0, too. This darkens the image.
Screen: Lightens the image by multiplying the inverse colors: This
lightens the image.

Overlay: Multiplicates  or screens  the base and merge color on
rgb bases: If the base color component is less than 128, it
screens, otherwise it multiplies.
Soft light: This mode takes the base color as basis and darkens or
lightens it according to the blend color. The resulting image looks
like the base image with darker and lighter regions according to
the blend image.
Hard light: Multiplicates  or screens  the base and merge color on
rgb bases (similar to Overlay): But the logic is invers.
Darken: Darkens the base image according to the merge image
(by taking the smaller rgb color component).
Lighten: Lightens the base image according to the merge image
(by taking the bigger rgb color component).
Difference: Returns the difference between the base color and the
merge color (on rgb basis).
Hue: Replaces the hue of the base color with the hue of the merge
color.
Saturation: Replaces the saturation of the base color with the
saturation of the merge color.

http://www.chaospro.de/documentation/html/layering/mergemodes.htm[12/16/2018 2:02:10 PM]


Merge Modes for Layers

Color: Replaces the hue and saturation of the base color with the
hue and saturation of the merge color.
Luminance: Replaces the luminance of the base color with the
luminance of the merge color.
Addition: Adds the base and merge color on rgb basis.
Subtraction: Subtracts the merge color from the base color on rgb
basis.
HSL-Addition: Adds base and merge color on hsl basis.
Red: Replaces the red component of the base color with the red
component of the merge color.
Green: Replaces the green component of the base color with the
green component of the merge color.
Blue: Replaces the blue component of the base color with the blue
component of the merge color.


Factor

The result of merging the base color the merge color is a new color. Factor
now interpolates between this new
color and the base color (the original
color before merging took place) and the result from this interpolation is
the
final color.


So if you set Factor to 100%, then the color resulting from the merge
operation is taken. If you set Factor to 0%, then
the merge mode is
irrelevant, as always the base color is taken. So Factor lets you define the
intensity of the merge mode. Well, one (very important) thing is left to
mention: The factor is a general multiplier for the resulting alpha value.
So
to be more exact, the resulting alpha value is multiplied with "factor", the
result is anywhere between 0 and 1. Then
the base color and the merge
color are interpolated using that result.

http://www.chaospro.de/documentation/html/layering/mergemodes.htm[12/16/2018 2:02:10 PM]


Masks

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Masks
Using Formulas
Layering in ChaosPro
If you have an
Basics image with
Layered Fractal regions of
Merge Modes transparent
sections (as in the
Masks
image at the right
Transparency side), then the

underlying layer
will
shine through
depending on the
transparency:
Totally opaque
pixels (with
alpha=1)
completely hide
the underlying
pixels
whereas
Rendering other pixels (with
Fractal Parameter Windows alpha<1) would - at least partially - show them.
Windows  
Using the alpha channel setting of each layer (in the list of layers)
Menu you can tell ChaosPro to completely ignore this transparency
3D Transformations information.
Animations
But in this chapter I want to tell you something about another feature,
Formula Compiler called "Masks".
Compatibility
Fractal Type Reference Masking allows you to use only the transparency information from a layer
and put the transparency information into
the layer above.
Tutorials
Appendix So for example the image at the right side can be used as a mask for
another image: That would mean, that the information about the colors

(red, green and blue) is disregarded, only the fourth component of each

pixel, the alpha
value, is taken: It is used as the transparency information

for the corresponding pixel in the layer above.

If the layer above has its own transparency information, then the alpha
values of the mask and the layer will be multiplied. The same applies, if

you assign more than one mask to a layer: All transparency values will be
multiplied to form the resulting alpha value.

http://www.chaospro.de/documentation/html/layering/masks.htm[12/16/2018 2:02:15 PM]


Transparency Information

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Transparency Information
Using Formulas
Layering in ChaosPro
Now there should be some confusion about all the different transparency
Basics information. There are several possibilities to specify
the opacity of a pixel:
Layered Fractal
Merge Modes solid color opacity (transformation tab, inside tab, outside tab)
Masks predefined formula variable alpha and Alpha Channel.
Transparency the Alpha Channel editor

Coloring by specifying a color (red, green, blue and alpha) in the
predefined variable pixelcolor

layer masks

Factor

ignore alpha setting



First of all, the terms "transparency", "alpha value" and opacity all mean
Rendering the same...
Fractal Parameter Windows
Windows Solid Color Opacity
Menu

If a pixel is colored using the solid color (because the predefined variable
3D Transformations
solid has been set to true by a formula), then
the alpha value of the pixel
Animations is specified by the opacity of the solid color. Neither the value of the
Formula Compiler predefined variable alpha nor the information from the
Alpha Channel
Compatibility editor are considered.
Fractal Type Reference
Tutorials Predefined Variable alpha
Appendix

If a formula adjusts the predefined variable alpha,
then the resulting alpha

value is multiplied with:

either the value obtained from the Alpha Channel editor in case
the coloring formula used to color the pixel used the predefined
variable index

or the alpha part from pixelcolor in case
the coloring formula
used to color the pixel used the predefined variable pixelcolor
(direct coloring formula).

Alpha Channel Editor


The alpha gradient will be used for all non-solid pixels which were colored
using an indirect coloring formula (i.e. a coloring formula which used the
predefined variable index).

Predefined Variable pixelcolor


If a pixel was colored using a coloring formula which adjusts the predefined
variable pixelcolor,
then the resulting alpha value for that pixel is the
alpha part from pixelcolor multiplied with the value of the predefined
variable
alpha.
The Alpha Channel editor has no effect, because the pixel
was colored using a direct coloring formula.


Ok, these were the methods how a single pixel in a single layer gets its
alpha value. If you now switch off the alpha
information using the ignore

http://www.chaospro.de/documentation/html/layering/transparency.htm[12/16/2018 2:02:21 PM]


Transparency Information

alpha setting, then the resulting alpha value


simply will be set to 1.

The next setting is the:

Factor


The Factor is a general multiplier for the final alpha value. It does not
matter how the alpha
value was calculated or what the result is: It will be
multiplied with the "Factor" (whose range is from 0% to 100%, i.e. from 0
to 1).
So whether the alpha value resulted from the solid color (and its
opacity) or from pixelcolor, it does not matter.
Even if you switched off
the alpha setting, the final alpha value (which in this special case
is 1) will
be multiplied with the factor. Mask layers cannot specify the factor, their
factor is always 100% (i.e. 1).

Layer Mask

If you now declare that a layer should be used as a mask for the layer
above (by switching on the Mask-checkbox), then the
resulting alpha value
from the mask layer will be multiplied with the resulting alpha value from
the layer above.

Both alpha values are defined as described above.

And now the last case: If a layer has more than one mask layer assigned to
it, then the resulting alpha value from the
mask layers is the minimum
alpha value of them. This minimum alpha value then gets multiplied with
the resulting alpha value
from the layer above the mask layers, and then
the alpha value gets multiplied with "factor"...

Ok, enough confusion for today! Congratulations if you understood the


details above. If not, just play around with the
settings, their meaning will
be quite intuitive!

http://www.chaospro.de/documentation/html/layering/transparency.htm[12/16/2018 2:02:21 PM]


Rendering

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Render Jobs
Add a Job
Anti Aliasing
Render Jobs Window
Define Render Jobs Window










Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/index4.html[12/16/2018 2:02:28 PM]


Render Jobs

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Render Jobs
Using Formulas
Layering in ChaosPro
Rendering
When you have created a beautiful fractal you often would like to render it
Render Jobs at a large size and then save as a bitmap image, so you can print it in
Add a Job poster format or take part
at a fractal art contest.
Anti Aliasing If you make the fractal window big (perhaps by using the scrollbar mode)
Render Jobs Window you can render such large images. Unfortunately such large images use an
Define Render Jobs Window enourmous amount of memory.
A standard fractal image like Escapetime
needs about 9 MB of memory, if rendered at 1024x768 pixels. So if you

render such a very basic fractal at a resolution of 4000x3000 pixels, you'll



need about 140 MB of RAM.
And now suppose you have a multi layered

fractal image which consists of 12 layers, then you soon will break the

gigabyte barrier.


So there has to be a better way to handle that: By using this new feature
you can render a fractal at very large sizes without worrying about whether
you have enough RAM in your computer.
A render job will render your
fractal line by line, and as soon as a line is finished, it will write the
rendered line to harddisk and then continue with the next line. It can do
Fractal Parameter Windows this because it does not need to display the fractal image as in the normal
Windows mode (it will be rendered in the background).
The main advantage is that
Menu the fractal size now is not limited by the amount of RAM in your computer,
but rather limited by the amount of free hard disk space.
3D Transformations
Animations
Additionally you can specify anti aliasing (adaptive or not) when rendering
Formula Compiler a fractal image.
Compatibility The following chapters describe how you can do that:
Fractal Type Reference
Adding a simple render job
Tutorials
Appendix Anti Aliasing in ChaosPro

Render Jobs Window

Define Render Job Window






http://www.chaospro.de/documentation/html/rendering/intro.htm[12/16/2018 2:02:34 PM]


Adding Render Jobs

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Adding a Render Job
Using Formulas
Layering in ChaosPro
Rendering
In order to add a render job you need to open the render job window
Render Jobs (menu item: Windows/Render Jobs). You'll see the following window:
Add a Job
Anti Aliasing
Render Jobs Window
Define Render Jobs Window










Fractal Parameter Windows
Windows
Empty render job window
Menu
3D Transformations

There are a few buttons in it:
Animations
Formula Compiler This button lets you start/pause the current render job.
Compatibility Currently there is no render job, thus the icon is grey.
Fractal Type Reference
Tutorials This button lets you add a render job. As soon as you click
onto it, another window will appear which lets you define your
Appendix
new render job.


If you click onto this button then the current render job will
be deleted.

Ok, now click onto the "Add render job"-button. The following window will
appear:



http://www.chaospro.de/documentation/html/rendering/addjobs.htm[12/16/2018 2:02:40 PM]


Adding Render Jobs

Define a job
Now what can you do with it? In short: You select one or several fractals,
select the file format and destination, choose the fractal size, choose anti
aliasing settings and click the "Add" button.

So now do the following:

1. Make sure that "Project" is selected. This lets you choose a fractal from
a project which is currently loaded into ChaosPro.
2. From the list of projects select one which has an interesting fractal.
Normally the currently selected fractal (and the project) is pre-
selected.
3. Now choose the destination, i.e. the folder on your harddisk into which
the rendered fractal image should be saved.
4. Then choose a file format, currently PNG or JPG are supported. The
fractal image will be saved in this file format.
5. Now select the fractal which you want to render. If you like you can
select several (or all) fractals.
6. Choose a size.
7. Now choose the anti aliasing settings. See Anti Aliasing for more
information.
8. And at the end, press the "Add" button to create a new render job for
each fractal which you have selected.


And now the render job window will look as follows (well, at least
similarily):

http://www.chaospro.de/documentation/html/rendering/addjobs.htm[12/16/2018 2:02:40 PM]


Adding Render Jobs

Render job window



So here you can now see your render jobs, you can start/stop each render
job. As soon as one render job is finished, the next one will be started.

http://www.chaospro.de/documentation/html/rendering/addjobs.htm[12/16/2018 2:02:40 PM]


Anti Aliasing with Render Jobs

ChaosPro
Home Release 4.0

Introduction
What's New Anti Aliasing with Render Jobs
Palettes
Using
Formulas
Layering in Explaining anti aliasing to people who don't know it already is quite difficult, but let's try it:
ChaosPro
Each fractal has unlimited detail. If you zoom in, you'll see more and more details. Ok, now imagine you render a fractal. And then
Rendering imagine you render
the same fractal but with slightly altered coordinates (for example, change the top left coordinate after the
15th decimal point). Now compare the
two resulting images. Regardless how small your changes are, both fractals will be slightly
Render
different.

Jobs
In technical terms: Fractals have all frequencies, and rendering a fractal means, sampling such a fractal at discrete locations and
Add a Job
thus with a fixed
frequency.
Anti
Aliasing I don't expect you understand that. But the main point is: There are parts in a fractal whose points are almost "random" if
Render rendered: They change as soon
as you slightly change any parameter. Now what's bad about that? If it looks nice, so what?
Jobs
Window Well, those "random" pixels make the image look somewhat jagged. Have a look at the following two images: The first one is
Define rendered with anti aliasing set to off, the second one
with anti aliasing. At the first glance the second one seems to be a smoothed
Render version of the first one. But that's not the complete truth:
Jobs
By simply applying smoothing to an image you will loose some details. But the second one has all the details of the first one, and
Window that's the advantage of anti aliasing:


Smooth an image by preserving all detail.

Anti
Alias Image

Off




Fractal
Parameter
Windows
Windows
Menu

3D
Transformations








Animations
Formula
Compiler
Compatibility
Fractal Type Default
Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/rendering/antialiasing.htm[12/16/2018 2:02:45 PM]


Render Jobs Window

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Render Jobs Window
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows Fig.: Render job window
Windows
The render jobs window lets you
control the current render jobs.
Colorcycle Window
The normal behaviour is as
Comment Window follows:
Formula Editor for IFS
The first fractal listed in
Formula Editor for LSystems that window will be
Fractal Window rendered by a render
Fractal Tree Window thread.
Message Window When the fractal has
Options Window been rendered completely it will be removed from the list and the
render thread will advance to the next unrendered fractal in the
Presets list.
Render Jobs
This process continues until all fractals have been rendered.
Define Render Jobs
Size Window
By using the icons at the right side of the window you can do the following:

The meaning of this button depends on the current fractal:



If the currently selected fractal is rendered by a render thread,
you can pause/resume that thread.
If the currently selected fractal is not rendered, then by pressing
this button a new render thread will be created (in addition to the
one(s) which already exist) and the fractal will be rendered.


So you can have several render threads. If you have several CPU's in your
Menu computer you can experiment with the number of render threads to get the
3D Transformations most out of your machine.
But normally a single render thread should be
sufficient.

Animations
Formula Compiler This button opens the render job window which lets you define
Compatibility new
render jobs.

Fractal Type Reference


Tutorials This button deletes the current render job.

Appendix


Notes

Render jobs are assumed to take a very long time. As such ChaosPro has
been designed to support that. You may have experienced that sometimes
ChaosPro crashes (well nobody is perfect), so
it would be bad if you render
a fractal for several hours, play around with ChaosPro during that time and
suddenly ChaosPro crashes and all is lost.



To circumvent that kind of problem the render jobs render directly to disk
and are restartable. That means, if you terminate ChaosPro the files
created and rendered by the render jobs won't be deleted.
Instead, if you
start ChaosPro again, ChaosPro will continue with the renders exactly at
the point at which it has been stopped. So if a render job has rendered
lines 1 upto 3700 of 5400 lines and you then
terminate ChaosPro (or it
crashes) and then start up ChaosPro again, ChaosPro will find the results
from line 1 upto 3700 and continue to render at line 3701.

http://www.chaospro.de/documentation/html/rendering/renderjobs.htm[12/16/2018 2:02:57 PM]


Define Render Job Window

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Define Render Job Window
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows Fig.: Render job window
Windows
The render job
window lets you
Colorcycle Window
define new render
Comment Window jobs which then are
Formula Editor for IFS added to the render
Formula Editor for LSystems jobs windows.
Fractal Window At the top of the
Fractal Tree Window window you can
Message Window choose betwen File
and Project:
Options Window
Presets File: Right
Render Jobs below you
can enter
Define Render Jobs
a
Size Window parameter

file (*.par,
or *.upr).
All fractals
contained
in it will
then be
displayed
in the list
box at the right side of the window.
Project: Right below you can choose a project (i.e. a *.par or
Menu *.upr file which has already been loaded and perhaps modified).
3D Transformations
Animations Destination
Formula Compiler

A sub directory named like the project (or file) will be created below the
Compatibility
destination directory and your final images will be saved into that sub
Fractal Type Reference directory.
Tutorials
Appendix File Format

You can choose between two file formats:

PNG - Lossless compression, best quality, but large images.
JPG - Lossy compression method, quality can be adjusted (options
button right beneath), the resulting images normally are smaller.


Fractals

In this list box you can see all fractals which are stored in the current

project or the selected file. You can select several of them in order to add a
render job for each selected fractal.

Size
Here you can specify the width and height of the resulting images.

If you select Keep Aspect Ratio then the aspect ratio (i.e. the proportion
of width to height) will be preserved. So if a fractal in a project has a
default size of 800x400 and you
select a desired size of 6400x4800 and
select "keep aspect ratio", then ChaosPro will create an image which is

http://www.chaospro.de/documentation/html/rendering/renderjob.htm[12/16/2018 2:03:30 PM]


Define Render Job Window

twice as wide than height,


but not larger than 6400x4800, thus ChaosPro
will render it at 6400x3200.

The static text fields below indicate how much memory is currently available
on your harddrives.

Anti Aliasing
Here you can specify the anti aliasing settings. You can either choose a
preset (Default, Deep, Off) or manually choose your settings (Custom).

Anti aliasing in ChaosPro works as follows: ChaosPro tries to find out the
color of a pixel. So it examines the neighboring pixels (either 2x2 or 3x3,
subdivision) and calculates
how much they differ (0 = all pixels have the
same color, 1=all pixels have completely other colors, 0.1=all pixels are
quite similar, etc.). If that value is bigger than the threshold
then ChaosPro
divides the pixel in question into 2x2 or 3x3 smaller pixels, calculates their
colors, compares to threshold, etc.

This method ensures that the time consuming task of calculating a pixel
color is applied only to the portions of a fractal where the pixel colors
change rapidly, saving much time.

Threshold : If adjacent pixels differ more than this threshold


value then a sub division takes place and more pixels are being
calculated in order to determine the anti aliased pixel color.
It
must be in the range 0 to 1.
Depth: Specifies how many sub divisions may take place.
Subdivision: Specifies whether to do a 2x2 or a 3x3 sub division
if necessary.

http://www.chaospro.de/documentation/html/rendering/renderjob.htm[12/16/2018 2:03:30 PM]


Fractal Parameter Windows

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Fractal Parameter Windows
Area Definition
Escapetime
Dynamic Systems
Plasma
IFS
LSystems
Attractor Parameters
Quaternion Parameters










Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/index5.html[12/16/2018 2:03:59 PM]


Fractal Parameter Windows

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Fractal Parameter Windows
Using Formulas
Layering in ChaosPro

Each fractal type has its own set of parameters. And therefore each fractal
Rendering type has its own parameter window.
Fractal Parameter Windows
Fractal Parameter Windows
The following parameter windows exist:
Area Definition Escapetime Fractals
Escapetime
Dynamic Systems
Dynamic Systems
Plasma
Plasma
IFS IFS
LSystems LSystems
Attractor Parameters Quaternions
Quaternion Parameters
Layer Fractal










Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/parameterwindows.htm[12/16/2018 2:04:06 PM]


Area Window

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Area Window
Using Formulas
Layering in ChaosPro
Rendering

For most fractals in ChaosPro a
Fractal Parameter Windows rectangular area must be
Windows specified from the two
Menu dimensional complex number
plane.
This window lets you
3D Transformations
define it. Additionally you can
Animations rotate the area around a rotation
Formula Compiler point which you can specify.
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Fig.: Area Window
Escapetime
Theory
Overview

Have a look at the following pseudo code, which shows you where these
Area Tab parameters are of importance. A normal fractal calculation looks as follows:
Mapping Tab
Formula Tab 1 FOR y=0 TO height DO:
Inside Tab 2   FOR x=0 TO width DO:
Outside Tab 3     calculate point (mostly complex number

4     corresponding to screen pixel (x,y)
5     based on this point calculate color of fractal, for
example:
6     z=this point
7     FOR i=0 TO MaxIter DO:
8       z=z^2+c

9       IF |z|>4 THEN BREAK;
10     NEXT i
11     set color of pixel (x,y) to i
IFS
12   NEXT x
LSystem
13 NEXT y
Lyapunov Space - Theory

  
Plasma
Quaternions
Well, the area window with its parameters specifies all input values which
are needed for line 3 and 4, i.e. for calculating the point corresponding to a

specific screen pixel. And this is the reason why this area window is
available for almost all fractal types in ChaosPro and always looks the
same (in contrast to the parameter windows which change...)


Now lets describe each entry:

Top Left (Top left real and imaginary component)
Bottom Right (Bottom right real and imaginary component)

These points define a rectangular area in the plane by specifiying
Tutorials two opposite corners.
Appendix

Rotation
X and Y
ChaosPro allows you to rotate images. These two fields let you
define the rotation point. This point is defined in percent of the

http://www.chaospro.de/documentation/html/windows/area.htm[12/16/2018 2:04:11 PM]


Area Window

window width or height, i.e. X=50, Y=50 means, the rotation


point is in the middle of the window.


Angle

This parameter lets you specify the rotation angle in degrees. The

area is rotated around the rotation point.

http://www.chaospro.de/documentation/html/windows/area.htm[12/16/2018 2:04:11 PM]


IFS Fractals

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes IFS
Using Formulas
Layering in ChaosPro

This fractal type calculates iterated function systems. ChaosPro is able to
Rendering read
FractInt *.ifs formula files, so if you have such files, you can use them
Fractal Parameter Windows inside ChaosPro. The following chapter presents some theoretical
Windows background. Chapter Formula Editor for IFS describes how to create your
own formulas, and how to handle other formula files.
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
Theory
Parameters










LSystem
Lyapunov Space - Theory
Plasma
Quaternions










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/ifs/intro.htm[12/16/2018 2:20:57 PM]


Theory about IFS

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Theory
Using Formulas
Layering in ChaosPro

Fractal image compression: Did you already hear somebody talking about
Rendering this compression technique? Are you interested in it? If yes, then read on.
Fractal Parameter Windows
Windows
Fractal image compression can achieve incredible packing rates: For
certain images (mostly natural objects, which seem to be quite self similar,
Menu for example a tree) it should be possible to describe whole images by only
3D Transformations a small set of numbers. The basic idea for this packing algorithm is an
Animations iterated function system, short: IFS.
Formula Compiler
Well, Julia- and Mandelbrotsets are also iterated function systems: A
Compatibility function is used, it is iterated, and thus it’s an iterated function system.
Fractal Type Reference But here I will explain another type, which deals with more formulas (i.e. a
formula system), applied according to a probability assigned to each
Attractor
formula, where each formula is an affine transformation (i.e. matrix
Bifurcation - Theory multiplication plus vector addition). These functions are applied many
Dynamic System times (thus iterative function system).
Escapetime

Yet again, one is interested in the 'attractor'. You have already seen (at
IFS least I hope so), that this attractor can be very complicated. Just
Theory remember a few pictures of the Mandelbrot set. The special thing about the
Parameters (linear) IFS is, that one is not only able to calculate the attractor from a
given IFS. One is also able to reconstruct an IFS from an attractor. That

means, if you have an attractor (as a normal pixel image) you can
calculate in some way an IFS (i.e. several functions). And the attractor of
your ”reconstructed” IFS is quite similar to the attractor, which you already
have.


For example, Julia sets don’t allow this: If you have a nice picture showing
a Julia set, you are not able to calculate the formula or parameters, which
have lead to that image. Well, perhaps you can do that, perhaps by hand,
using trial and error, for some images, but for sure not in general.

LSystem
So lets assume, you have a picture, assume that it is an attractor of an
Lyapunov Space - Theory unknown IFS, reconstruct the IFS, save the IFS (which normally needs only
a small set of numbers) and if you want to look at the picture, you just
Plasma
must calculate the attractor of the previously saved IFS: You will get a
Quaternions picture, which is similar to your original picture. This is the basic idea

behind fractal image compression. Basically it is not a compression
technique, it is rather some kind of reverse engineering. As you can
imagine, the quality is better, the better the attractor of your reconstructed
IFS matches the attractor given (i.e. your image). And the better the
attractor, the more functions in the IFS you will need, thus more numbers
to store.


So one only has to choose the right functions, so that the attractor is
similar to the picture which one wants to compress. Sounds quite easy,
doesn't it? Well, now, how exactly does it all work? How does one find the
Tutorials correct functions? Is it possible to find functions for *all* possible images?
Appendix
An IFS consists of several functions, every single function is an affine

transformation, that means, a function, which just rotates, moves around
or streches a given object. Every such affine transformation has a value
assigned, which is interpreted as the execution probability, that means,
this value determines, how often this function is applied to a point
compared to the other functions in the system. Such affine transformations
can be represented simply by a matrix (responsible for rotating and
stretching) and a vector (responsible for moving the object around).


To be more mathematical, an IFS is a system of affine transformations:


Mi x + bi , with probability Pi ; i element of {1...n} , n >=1, Mi a 3x3

http://www.chaospro.de/documentation/html/fractaltypes/ifs/theory.htm[12/16/2018 2:21:07 PM]


Theory about IFS

Matrix, bi vector from R3


Sum of Pi, i=1...n, is equal to 1.


Now, how is a picture, the attractor of an IFS, calculated?


1. One starts with a point, which surely lies onto the attractor. For
example, one can take the fixed point of the first transformation.


2. Choose a function of the IFS, such that the given probabilities are
fulfilled. For example, P1=0.2, P2=0.5, P3=0.3: Generate a random
number p between 0 and 1. If p <=0.2, then choose function 1, if
0.2<p<=0.7, the choose function 2, if p>0.7, choose function 3.


3. Apply the chosen transformation to the previous point. The result is a
new point of the attractor. Go to step 2...


Well, after some time the attractor will appear.


Now lets come to the question, why and especially how it is possible, to
(re)construct an IFS from/to a given picture. There exists a mathematical
proposition, called the 'Collage Theorem', which essentially says, that this
construction is possible:

Given an IFS with the transformations w1 to wn, additionally a set T. Let s


be the greatest Lipschitz-constant of all the transformations w1 to wn,
which must be smaller than 1. The Hausdorff-distance between T and the
union of w1(T) to wn(T) should be smaller than a given epsilon. Then the
Hausdorff-distance between the attractor of the IFS and T is smaller than
epsilon/(1-s).


Well, so s should be the biggest stretching factor of all transformations,
and s must be smaller than 1, i.e. all transformations must be contracting
transformations.


The Hausdorff-distance of two sets is, to be quite inexact (and
mathematically wrong, but who cares), the 'normal' distance between 2
sets.


Well, now let me explain, what this theorem essentially says:


Given a set T, this could be perhaps a picture (should be a black-white-
picture ...)


Then choose the transformations w1 to wn of the IFS, so that the union of
the sets w1(T) to wn(T) covers quite exactly the whole set T. That means,
the union of the sets, which you obtain, if you separately apply w1, w2, ...,
wn to the set T, covers the picture. Remember, the transformations are
functions, which just rotate, stretch and move an object around. So this
previous sentence means, that the functions w1 to wn should be chosen,
such that the whole picture T is built of small copies of itself, just like a
collage...w1(T) is a rotated, stretched (with a factor smaller than 1!) and
displaced copy of the original set/picture T, and so is w2(T), w3(T),...wn(T).


Well, then the condition of the theorem is approximately fulfilled, i.e. the
Hausdorff-distance between T and the union of w1(T) to wn(T) is smaller
than epsilon. This epsilon of course is determined by the quality of the
collage. Now the theorem says:The attractor of the IFS, which one can
calculate from the transformations, is similar to the original set/picture T.
To be more exact, the Hausdorff-distance between this attractor and T is
smaller than epsilon/(1-s). Now you can see, why the Lipschitz-constant
must be smaller than 1. And you can see even more: If you have a very
small Lipschitz-constant, then (1-s) is near 1, but then of course you need
many transformations to cover your picture, because the Lipschitz-constant
is the stretch-factor, so you have to build the picture T out of many very
small copies of it. So if you want to make a very good collage, then the
compression ratio isn't that good. Also notice, that the calculation time
goes up, if 's' is small. It makes sense, to choose 's'=0.25, so to build the

http://www.chaospro.de/documentation/html/fractaltypes/ifs/theory.htm[12/16/2018 2:21:07 PM]


Theory about IFS

whole picture of quarters of itself.


As you can see, too, the number of differences between the attractor and
the original picture depend on epsilon. So if you make a bad collage, then
this epsilon is big...


Well, this is the idea for fractal image compression. One simply has to find
out the transformations. One could implement the following algorithm:
Given a picture, this picture is then cut out and used as a brush, just as in
any paint program. The user then has to rotate, move around and stretch
this brush, so it covers a part of the original picture. Then the user has to
fix it. the first transformation is completed (one simply has to write down
all actions done like moving, rotating and stretching). Then one fetches
another copy of the original picture, again moves, rotates and stretches it,
so it covers another part of the original picture. It then should be fixed,
too, and so the second transformation is ready. The user continues like
this, until the original picture has been covered by some smaller copies of
itself, just like a collage.


Let me note one thing: The parts of the copies may of course overlap, but
this just increases the calculation time, so it should be avoided.

http://www.chaospro.de/documentation/html/fractaltypes/ifs/theory.htm[12/16/2018 2:21:07 PM]


Parameters for IFS Fractals

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes IFS Parameters
Using Formulas
Layering in ChaosPro
Rendering
Most of the parameters of an IFS
Fractal Parameter Windows fractal are already defined by the
Windows formula itself. But some
parameters still remain to be
Menu
specified. First of all, the IFS fractal
3D Transformations allows zooming, so of course you
Animations can specify the area.
Formula Compiler

The other parameters are:
Compatibility
Fractal Type Reference Formula
Here you can choose the
Attractor
IFS formula to use. The
Bifurcation - Theory drop down listbox lists all
Dynamic System formulas currently known Fig.: Parameter Window
Escapetime to ChaosPro. You can
change the formula using
IFS the formula editor window.
Theory
Parameters Iteration

Here you can specify how many points you wish to calculate.


Colormode

Lets you specify how the points are colored.


a) Transformation: Colors each point according to the

transformation, which have lead to it.

b) Probability: Colors each point according to the probability, i.e.

according to the previous random number.

LSystem c) Measure: Colors each pixel in the window according to how
often a point hits the pixel.
Lyapunov Space - Theory d) Single: Creates a monochrome image.
Plasma
Quaternions

horizontal and vertical


Lets you specify two angles for 3D IFS fractals, so you can rotate
them.



A, B, C and D

Four parameters, which you can reference in a formula (see there

for details).

Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/ifs/parameters.htm[12/16/2018 2:21:16 PM]


LSystem

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes LSystem
Using Formulas
Layering in ChaosPro

This fractal type calculates Lindenmayer Systems. As with IFS fractals,
Rendering ChaosPro is able to read
FractInts formula files, i.e. *.l files (FractInt.l for
Fractal Parameter Windows example...), so if you have such files, you
can use them inside ChaosPro.
Windows The following chapter presents some theoretical background.
Chapter
Formula Editor for LSystems describes how to create your own formulas,
Menu
and how to handle other formula files.
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Theory
Parameters










Lyapunov Space - Theory
Plasma
Quaternions










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/lsystem/intro.htm[12/16/2018 2:21:40 PM]


Theory about LSystems

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes LSystem Theory
Using Formulas
Layering in ChaosPro

Well, the correct name for this fractal type should be deterministic
Rendering contextfree Lindenmayer systems.
Fractal Parameter Windows
Windows Deterministic, because there is nothing randomly chosen as opposed to
perhaps IFS.
Menu
3D Transformations Contextfree, because all rules are applied regardless of the context, i.e.
Animations rules of the form 'character <c> has to be replaced by the string <string>'.
Contextsensitive rules are of the form '<string1> has to be replaced by the
Formula Compiler string <string2>'.
Compatibility
Fractal Type Reference Lindenmayer, because Mr. Lindenmayer examined those systems...
Attractor System, because there can be many rules.
Bifurcation - Theory

An L-system consists of an axiom - which simply is a string - and a set of
Dynamic System
rules: All of them are of the form character <c> has to be replaced by
Escapetime the string <string>. In order to calculate an LSystem, one starts with the
IFS axiom as the initial string.
LSystem

Then the first character of the initial string is examined. If a rule exists,
Theory which says, that this character should be replaced by a string, then it
Parameters should be replaced by that string. If no rule for this character exists, then

just leave the character as it is. Then have a look at the second character,
replace it by a string, if a rule exists, or simply do nothing, if no rule exists.
Continue this way, until the end of the string is reached.


Then the first iteration is finished. The result is most likely a string, which

is quite a bit longer that the string before starting the iteration.


Now the second iteration is started: The resulting string from the first
iteration is taken: One again starts at the first character, replaces,
continues with the second character, the third, etc. until the end of the
string has been reached, then goes on to the next iteration, starts again at
Lyapunov Space - Theory the first character, etc., the 4th iteration, the 5th, etc. until the maximum
Plasma number of iterations is reached.
Quaternions

As you can imagine, values of less than 10 for MaxIt are very popular,

because the string will grow exponentially...


At the end one has a huge string, which doesn't look like a fractal. But now
the magic starts: The whole string is interpreted as a series of drawing
commands. A drawing command normally consists of a single character,
like 'F', which simply draws a line. The resulting image is a fractal, at least,
if one would iterate infinitely often.


The Lindenmayer-systems are of importance in conjunction with computer
generated natural objects, because the results show some similarities to
Tutorials objects, which appear in nature, mostly plants. Unfortunately these
Appendix deterministic contextfree systems aren't that powerful. It's very difficult to
create realistic plants with them. If one wants to create such plants, one

has to specify a huge amount of rules to describe simple plants. Due to
this, there exist some enhancements to DOL-systems, which then are
contextsensitive and additionally not deterministic.


But not lets give an example of an L-system, just to make clear, how it all
works:


Well, lets define the Koch-curve: It's ideal for creation via L-systems:


Keep in mind some drawing commands:

http://www.chaospro.de/documentation/html/fractaltypes/lsystem/theory.htm[12/16/2018 2:21:52 PM]


Theory about LSystems


F, which draws a line of given lenght into the current direction.


+, which changes the current direction, say about 60 degree counter
clockwise.


-, which changes the current direction, say about 60 degree clockwise.


Lets start with the axiom: F


Now lets define one single rule: F has to be replaced by F-F++F-F


This is exactly the definition of the Koch-curve: Every line (F) has to be
replaced by an object, which is the line, but the middle third part of the
line is replaced by a triangle. Just draw this F-F++F-F, and you will see this
replacement. It is obvious, that this very simple L-system creates the
Koch-curve.


Generally the interpretation of the drawing commands is very similar to
turtle-graphics: One has to imagine a virtual turtle on the screen, which
can do some actions. It can move forward a specified length, draw forward
a specified length, it can rotate itself, it can change the drawing color, etc.


For an explanation of all the drawing commands see chapter about the L-
system formula editor.

http://www.chaospro.de/documentation/html/fractaltypes/lsystem/theory.htm[12/16/2018 2:21:52 PM]


Parameters for Lsystem Fractals

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes LSystem Parameters
Using Formulas
Layering in ChaosPro
Rendering
As you can see, there are almost
Fractal Parameter Windows no parameters to choose.

Windows
Formula lets you choose
Menu the formula defined in the
3D Transformations formula editor window
Animations Fig.: Parameter Window
Iteration lets you specify
Formula Compiler the recursion depth of the
Compatibility string replacement algorithm.
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Theory
Parameters










Lyapunov Space - Theory
Plasma
Quaternions










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/lsystem/parameters.htm[12/16/2018 2:22:39 PM]


Theory of Lyapunov Space

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Theory
Using Formulas
Layering in ChaosPro

The Lyapunov Space is similar to a Bifurcation diagram. There a formula
Rendering was used, which - with some creative mind - could be interpreted as the
Fractal Parameter Windows development of a population. Depending on the growth rate there was
Windows shown, whether a balance exists in the population (an attractor for the
system) and if there is one, what type of balance (the lenght of this
Menu
eventually existing cyclus).
3D Transformations
Animations
The Lyapunov Space now has 2 growth rates, which vary in a periodic
fashion.
Formula Compiler
Compatibility
This 'periodic fashion' is defined by a sequence string. For example AAABB
Fractal Type Reference means the following:
Attractor Iteration step 1: Take growth rate A
Bifurcation - Theory Iteration step 2: Take growth rate A
Dynamic System Iteration step 3: Take growth rate A
Escapetime
Iteration step 4: Take growth rate B
Iteration step 5: Take growth rate B
IFS (repeating sequence...)
LSystem Iteration step 6: Take growth rate A
Lyapunov Space - Theory Iteration step 7: Take growth rate A
Iteration step 8: Take growth rate A
Plasma Iteration step 9: Take growth rate B
Quaternions Iteration step 10: Take growth rate B


Now we have to determine whether the system behaves chaotic or stable.
We do this by calculating the so called Lyapunov Exponent, which is
defined as follows:

lim    log( |f'(x1) * f'(x2) * ... * f'(xn) | )
n->oo  -----------------------------------------
                          n


Tutorials
One can interpret this exponent as follows:
Appendix
If negative, then the average derivation of f at the orbit points is smaller

than 1, i.e. the system is contractive. Otherwise the average derivation is
greater than 1, so the system is expansive, it behaves chaotic.


In practice we cannot calculate a limes. So we stop after some iterations
(after Maxit iterations). In order to improve the approximation of the
Lyapunov Exponent we start calculating after m iterations to give the
system a chance to decide where to go.


So we calculate:

log( |f'(xm) * f'(xm+1) * ... * f'(xm+n) | )
-----------------------------------------
                 n+1


Now an example algorithm could look as follows:

X=0.5            ; the population start value...


A=2.3           ; Growth rate A
B=0.8           ; Growth rate B
Sequence=AABAB  ; Sequence: How should A and B
vary?
; Just iterate several times
; for improving the exponent

http://www.chaospro.de/documentation/html/fractaltypes/lyapunovspace/theory.htm[12/16/2018 2:22:46 PM]


Theory of Lyapunov Space

FOR N=1 TO 4000


; R is A or B, see sequence...
X=R*X*(1-X)
NEXT N
; Now lets calculate the Lyapunov Exponent
Sum=1
FOR N=1 TO 6000
; R again is A or B, see sequence...
X = R*X*(1-X)
; now calculate exponent
Sum = Sum * |R-2*R*X|
NEXT N
Exponent=log(Sum)/6000        ; calculate the
average

http://www.chaospro.de/documentation/html/fractaltypes/lyapunovspace/theory.htm[12/16/2018 2:22:46 PM]


Plasma

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Plasma
Using Formulas
Layering in ChaosPro

This chapter describes the fractal type 'Plasma', the implementation of a
Rendering midpoint displacement routine. Such routines are often used by landscape
Fractal Parameter Windows generation programs (although the routines used there are much more
Windows powerful and sophisticated, so that they can produce rivers, seas, etc. )
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Lyapunov Space - Theory
Plasma
Theory
Parameters










Quaternions










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/plasma/intro.htm[12/16/2018 2:23:35 PM]


Theory of Plasma

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Plasma Theory
Using Formulas
Layering in ChaosPro

Plasma is just a 2-dimensional Brownian motion. But, what the hell is a
Rendering Brownian motion? Well, forget it, I'll tell it in other words:
Fractal Parameter Windows
Windows
These plasma clouds are generated by a recursive algorithm that randomly
picks colors of the corner of a rectangle, and then continues recursively
Menu quartering previous rectangles. Random colors are averaged with those of
3D Transformations the outer rectangles so that small neighborhoods do not show much
Animations change, for a smoothed-out, cloud-like effect.
Formula Compiler
Plasma clouds are great for color cycling, and great for 3D transformations.
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Lyapunov Space - Theory
Plasma
Theory
Parameters










Quaternions










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/plasma/theory.htm[12/16/2018 2:23:42 PM]


Parameters for Plasma

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Plasma Parameters
Using Formulas
Layering in ChaosPro
Rendering Plasma has two sets of parameters,
Fractal Parameter Windows depending on the type of plasma you want
Windows to generate:
Menu The first type is called Midpoint displacement
3D Transformations and works by recursively dividing the area
Animations into smaller pieces, displacing the midpoint
of the new area.
Formula Compiler
Compatibility The second type calculates plasma using a
Fractal Type Reference two dimensional fractional brownian motion.
Attractor
Midpoint Displacement
Bifurcation - Theory
Dynamic System
Escapetime H
This number directly determines the
IFS
dimension of the object. The
LSystem resulting dimension is 3-H, i.e. if
Lyapunov Space - Theory H=0.9, then the dimension is 3-
Plasma 0.9=2.1, so it's a rough area. If
H=0.1, then the dimension is 2.9,
Theory so it's a very rough area.
Parameters

Seed
Because this type works with random numbers and a seed of
random numbers is deterministic, (at least if calculated by a
computer), it's necessary to define a starting value of this seed.
The same value results in the same random-number sequence.


Sigma
Specifies the standard deviation of the random number generator.

Quaternions
Fractional Brownian Motion


Iterations
Number of iterations to perform in order to generate random
numbers. Higher values produce a more cloudy plasma.

Angle Step
This value lets you rotate the whole plasma image.
Power
Fractional Brownian Motion relies on generating random numbers.
Tutorials But generating these numbers is quite difficult. This parameter
Appendix lets you specify a parameter which is used to scramble the

random numbers. It lets you change the plasma pattern.
Step
This is an additional parameter used to scramble random numbers
between iteration cycles.

Passes
Number of drawing passes to perform.


http://www.chaospro.de/documentation/html/fractaltypes/plasma/parameters.htm[12/16/2018 2:23:48 PM]


Quaternions

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Lyapunov Space - Theory
Plasma
Quaternions
Theory
Overview
Parameter Tab
View Tab
Light Tab
Transformation Tab
Formula Tab
Coloring Tab










Tutorials
Appendix

http://www.chaospro.de/documentation/index20.html[12/16/2018 2:24:00 PM]


Theory of Quaternions

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Theory
Using Formulas
Layering in ChaosPro

Normal "fractals" as Julia sets or Mandelbrot sets iterate a fixed formula
Rendering until some condition evaluates to true (then a pixel is said to be "outside")
Fractal Parameter Windows or the maximum number of iterations has been reached (then a pixel is
Windows said to be "inside").
The result can be colored in thousands of ways, but
the basic algorithm always stays the same. Take an initial value, iterate,
Menu
test condition, iterate again or stop.

3D Transformations
Quaternions are exactly of the same type. There is only a single difference:
Animations "Normal" Escapetime fractals (for example Julia sets or Mandelbrot sets)
Formula Compiler use an initial value which must be specified as a complex number.
They
iterate this complex number, test this complex number: They perform
Compatibility operations using only complex numbers.
Fractal Type Reference
Attractor
But there are also Quaternions: A Quaternion is a 4 dimensional number, a
generalization of a complex number which only has 2 dimensions. So
Bifurcation - Theory
instead of starting with an initial complex number one can start with an
Dynamic System initial quaternion number!

Escapetime
So one can calculate a quaternion fractal as follows:
IFS
Start with an initial value (a quaternion number)
LSystem
Iterate using the iteration formula
Lyapunov Space - Theory
Plasma Test the condition:
Quaternions If it is true, the pixel is "outside"
Theory If it is false, continue
Overview
Parameter Tab Has the maximum number of iterations been reached? If yes,
View Tab stop, pixel is "inside", if not, continue...
Light Tab
Transformation Tab

Simple, isn't it? So why are most of the fractal generators only calculating
Formula Tab Julia and Mandelbrot sets using complex numbers?
Coloring Tab
The reason is: Basically Quaternions are (at least) 4 dimensional objects!



This means:
They cannot be drawn directly: 2 dimensional objects can be
drawn, the window on the screen specifies a part of the complex
number plane, we color each pixel to show what has happened.

The maximum number of dimensions for visualization is 3. So we
have to define a 3 dimensional sub space from the 4 dimensional
quaternion space and draw the fractal. The result then is a true
3D object,
complicated structured, with holes, mountains, hills,
valleys, cliffs, etc.
Tutorials It is much more difficult to draw a true 3D object (smoothing,
resampling, light model and all that stuff) than just to draw a
Appendix
pixel and color it...

The calculation is awfully slow: Assume you want to calculate a


basic 320x200 image of a complex Mandelbrot set (we all know
it...). Then you have to calculate 320*200=6400 pixels: Each
pixel iterates a formula on average, say, 60 times. That means,
the
main iteration loop gets executed 6400*60=384 000 times!

Now consider a three dimensional space, a quaternion in it: In
order to draw it we have to calculate our 60 iterations (on
average) not only 320*200 times, but 320*200*250 times (for
each pixel in our 3D space, having a resolution of 320 in x-
direction, 200 in y-direction and 250 in z-direction)! I.e. the
calculation needs 250 times as long!
And besides that,
calculations using quaternions are much more complicated and
time consuming than calculations using complex numbers:

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/theory.htm[12/16/2018 2:24:08 PM]


Theory of Quaternions

Multiplying two quaternions for example needs 4 times as long as


multiplying two complex numbers.


You see, there are many reasons why most fractal generators avoid
calculating fractals using quaternion numbers...


ChaosPro uses several techniques in order to speed up the process, but
please, *please* be not disappointed: Calculating true 3D objects using

such complicated math is slow.


So lets start explaining how ChaosPro calculates quaternions:

At first we must define a three dimensional subspace from the 4D -
Quaternion space:

Generally one can define all hyper planes from any n-dimensional space by
two values:
a base point
    and
a normal vector


A hyper plane of an n-dimensional space is an (n-1) - dimensional sub
space of it. And that's what we want.
So by specifying a 4D-base point and
a 4D-normal vector we can express all 3D sub spaces from that 4
dimensional space:

Our sub space consists of all points which form a rectangular angle to the
normal vector. And all points are then translated by the base point.

Seems strange? Well, the same method can be applied to any space, so lets
consider the following:

We want to specify any 1 dimensional object from a 2D-space, or to speak
more clear: We want all lines from a plane.


Indeed, we can express any line by providing a normal vector and a base
point (==> translation), as displayed in the following image: All three lines
can be expressed by specifying a base point (o1, o2, o3) and
a normal
vector. The representation is not unique: As you can see, the base point
can be anywhere on the line in question.


The same principle allows us to define areas (2D) in a 3D space, or, and

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/theory.htm[12/16/2018 2:24:08 PM]


Theory of Quaternions

that's what we want, 3D spaces lying in a 4D-space.


So we now should be able to specify a 3D space lying in a 4D-quaternion
space.
Of course, currently it is "lying" in it, i.e. it has dimension 3,
but all points
of it have 4 components.


The next step is to define a base of this 3D space. This base of course
consists of three vectors in the 4D-quaternion space. Lets call these
vectors b1, b2 and b3.
The base point O1 defined before specifies the "null
point" from our 3D space: We now have parametrized our 3D space:
We
can express all points P in our 3D space as P=O1+x*b1+y*b2+z*b3, or,
abbreviated: (x,y,z)


And so we now are completely in a (virtual) 3D space:
(x,y,z)=(0,0,0)= O1 + 0*b1 + 0*b2 + 0*b3 = O1
(x,y,z)=(1,0,0)= O1 + 1*b1 + 0*b2 + 0*b3 = O1 + b1
(x,y,z)=(0,1,0)= O1 + 0*b1 + 1*b2 + 0*b3 = O1 + b2
(x,y,z)=(0,0,1)= O1 + 0*b1 + 0*b2 + 1*b3 = O1 + b3


We start in a 3D space, and whenever we need the corresponding 4D
quaternion value, we simply calculate P as O1+x*b1+y*b2+z*b3.


So we can calculate a quaternion as follows:


An observer (i.e. YOU) is located anywhere. You can adjust his position. So
for example he is at (3,0,0).
You look at some point in the scene, lets say
onto (0,0,0). Your complete position (like rotation, where is "top") can be
specified, too.
So you look at the scene and the fractal window should
display what you see:

So we now have to scan the whole world seen by you, pixel for pixel, in
order to determine whether it belongs to the quaternion fractal or not.

Lets make an example for the pixel (0.3,-0.2,1.1), assuming some
defaults.

We must iterate a quaternion formula (lets say z^2+c), and at first we
must initialize z to the current pixel.

So:
3D-Point: (0.3,-0.2,1.1) ==> z= O1 + 0.3*b1 - 0.2*b2 + 1.1*b3
for i=1 to Maxiter
   z=z^2+c
   if |z|>4 then Bailout, pixel (0.3,-0.2,1.1) is "outside"
Next
If Maxit has been reached, pixel (0.3,-0.2,1.1) is "inside"


After all points in view direction have been examined, draw the inner
region, i.e. the object defined by all points which "belong" to the
quaternion.

You may ask why we draw the "inner" object: The most interesting part of
the Mandelbrot set was the outer region.
Well, the reason is simple:
The outer region is unbound, i.e. there is a
(small) object defined by the inner region, and all other pixels are
"outside".
To make a more realistic example:
Can YOU see a small bird when you are
"inside" a wall? Most probably you only would see "grey" ;-)

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/theory.htm[12/16/2018 2:24:08 PM]


ChaosPro - Quaternion Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion Parameters
Using Formulas
Layering in ChaosPro

In order to create a Quaternion
Rendering
fractal it is necessary to specify
Fractal Parameter Windows several parameters:
Windows
Menu Calculating them is a complicated
task (for me to write the
3D Transformations routines...), especially if the user
Animations should be able to change
Formula Compiler everything.
Compatibility So please let me explain in short
Fractal Type Reference terms the meaning of the 6 tabs
Attractor available in the parameter window.
Bifurcation - Theory I tried to organize the parameters, and hopefully most of the time you will
Dynamic System work only with a few of these...
Escapetime
IFS    Parameter This tab contains parameters to define the 3D sub
space from the 4D Quaternion space.
LSystem
If you want to know more about the specific
Lyapunov Space - Theory parameters, see Parameter Tab
Plasma If you want to know more about Quaternion numbers,
Quaternions see Quaternion Math.
And if you want to know more about how ChaosPro
Theory defines 3D sub spaces from a 4D space, see Theory
Overview about Quaternions
Parameter Tab    View The previous tab lets you define a 3D sub space from
View Tab the 4D Quaternion space. This tab now lets you
specify all items related to the observer:
Light Tab
This includes the observer position, the observer
Transformation Tab orientation and the view direction. A detailed
Formula Tab description of each parameter can be found at View
Parameters.
Coloring Tab
   Light This tab lets you specify all available light settings: This

includes the light position, the intensity, etc. .



ChaosPro uses a variation of the Phong lighting model.

Of course, ray tracing programs would produce much

better results, but the quality seems to be sufficient

for a fractal generator. More info can be found at Light

Parameters.

 
The previous three tabs let you specify all parameters which affect the
view: The 3D sub space, the observer, the light. The next three tabs now
Tutorials let you specify all the fractal related stuff: Some transformation, the
Appendix iteration formula, the coloring to apply.

 
   Transformation This tab lets you specify an initial transformation
formula: Just as with the Escapetime fractal one can
define transformations in the Quaternion space using
the compiler. This transformation gets applied to the
initial value. A more detailed description can be found
at Quaternion Transformations.
   Formula Here you can choose the iteration formula and specify
parameters for the selected formula. A more detailed
description can be found at Quaternion Formulas.
   Coloring And the last tab lets you choose the coloring algorithm
to use. The settings there do not affect the shape of
the fractal, they only affect the colors of the object. A

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmgeneral.htm[12/16/2018 2:24:15 PM]


ChaosPro - Quaternion Parameters

more detailed description can be found at Quaternion


Coloring.


In order to navigate through a quaternion object the following special
mouse actions are possible inside the rendering window:

Mouse Wheel: Using the mouse wheel you can zoom in and out
Double click with the left mouse button zooms in by 20% onto the
selected pixel.
A special zoom mode exists for Quaternion:

You can set the viewpoint, the observer and the "right side"
directly and then tell ChaosPro to use these values and start
rendering:
Hold down the Ctrl key and click onto the Quaternion
with the left mouse button. The first click sets the viewpoint, the
second click sets the observer and the third click sets the "right
side".
You cannot move around the points, but if you continously
click you can set the viewpoint again, then the observer, etc.


If you want to remove all points, hold down the Ctrl key and
double click with the left mouse button.


If you want to use these values, release the Ctrl key and double
click with the left mouse button.


If you want to use these values, but want to look at the object
from above (i.e. use the values and rotate by 90 degrees
vertically), then press the Shift key and then double click with the
left mouse button.


The latter is the one which I prefer most: By pointing onto the
Quaternion I cannot define a point which is "above" the
Quaternion. So it was implemented that way: Define three points,
viewpoint, observer and where is right, and then rotate the
observer by 90 degrees so he still looks at the viewpoint and still
the right side is at the right side...

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmgeneral.htm[12/16/2018 2:24:15 PM]


ChaosPro - Quaternion Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion Parameters
Using Formulas
Layering in ChaosPro
Rendering
Here you can define all parameters
Fractal Parameter Windows which describe the 3D space to
Windows calculate:

You can exactly specify the 3D
Menu
space to use. Additionally you can
3D Transformations specify, how this 3D space gets
Animations scanned by ChaosPro: Simply
Formula Compiler scanning the whole 3D space
would be possible, but awfully
Compatibility slow. So I had to apply some logic
Fractal Type Reference in order to reduce calculation
Attractor times.

Bifurcation - Theory

Lets describe the parameters:

Dynamic System
Normal vector N and base
Escapetime
vector V: These two 4D
IFS vectors describe a 3D space in normal form:
LSystem
The 3D space consists of all 4D points P, which satisfy N·(P-V)=0
Lyapunov Space - Theory
(where · means dot product: [a1,a2,a3,a4]·[b1,b2,b3,b4] =
Plasma a1*b1+a2*b2+a3*b3+a4*b4 )

Quaternions
Theory If you do not want to bother with mathematical meaning: Simply
play around with the values: They affect the shape of the fractal.
Overview
Parameter Tab
The following parameters are somewhat difficult to explain: They are the
result of a strange algorithm to scan the 3D space. The algorithm is
View Tab
"strange" because I had to speed up the calculation time.
Light Tab
Resolution: As the name implies, this specifies some kind of
Transformation Tab resolution: To be more exact: It specifies the resolution in z-
Formula Tab direction as a
multiply of the fractal width (so on resizing the
Coloring Tab fractal you wont have to change this value: It will be adjusted
according to the size of the fractal). For each pixel in the window

ChaosPro calculates the ray which starts at the observer, goes



through this pixel and ends at the transformation plane.


This ray gets examined using the specified resolution. In short

terms: Increasing this value enhances the image quality and

slows down calculation speed:
If there are too many "holes" in

the fractal, or if the fractal looks more like a collection of points

rather than a solid object, then it is a good idea to increase the

resolution.

Start Scan:
Tutorials This parameter speeds up the calculation:
Appendix

Most of the time a Quaternion fractal is some smooth object. So if

we want to examine a ray in order to find the border of a
quaternion object and if
we already know the distance of the
neighbouring pixels, we can assume that the pixel in question
nearly has the same distance.

So there is no need for ChaosPro to start searching at the
beginning of the ray, i.e. at the observer. Instead, it can start at
a distance near the neighbouring pixels. And that's what this
parameter is ment for:


Assume the neighbouring pixels are at distance d and Start Scan
has been set to 10 (parameter is specified in percent, thus this
means 10%).

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmparm.htm[12/16/2018 2:24:22 PM]


ChaosPro - Quaternion Parameters

Then ChaosPro starts scanning at d-d*Start Scan/100, or in


other words, ChaosPro goes back 10% (=Start Scan) of the
distance and starts scanning from there.

This greatly speeds up calculation times: Just watch the fractal


calculation: The very first line of a quaternion, where *no*
information about the fractal is available, needs much longer than
all the succeeding lines, where this neighbouring information is
available.

But the drawback is: Sudden big jumps in a quaternion object


won't be detected. So play around with this parameter, set it to
100 in order to "disable" the feature (this means: Go back 100%,
i.e. to the observer, i.e. start from scratch...).


If you have a very strange object with many holes and cliffs and
whatever, I would suggest to increase this parameter, although
the calculation time then increases, too.

Precision: The resolution basically should be at least about 20


times the fractal width.
If the resolution is set to 2, then the fractal object would seem to
have "steps" in it, which disappear when the resolution is
increased. If you want to see what I mean, choose Precision=1
and resolution=2, then increase the resolution. Do you see the
steps? And do you see how they disappear when you increase the
resolution?

Explanation: ChaosPro must determine the distance between a
quaternion pixel and the observer. Lets say that ChaosPro scans
a ray of length 4 at 200 points. That means, each 0.02 (=4/200)
unit a pixel gets tested whether it belongs to the quaternion or
not. But now imagine a pixel is 1.009283 units away!
ChaosPro would test whether the pixel 1 unit away belongs to the
quaternion:
Result: no

Now ChaosPro continues and tests the pixel 1.02.

Result: yes


And due to this effect steps appear in the fractal when the
resolution is too low.

So basically we need to increase the resolution by some


magnitude, but we do not want to increase the calculation times.

So a trick gets applied:

After having found a pixel ChaosPro uses a second pass to
determine the exact distance of that pixel: In short terms: When
ChaosPro finds a pixel in step i, it knows somewere between the
previous step and the current step the object is hit. It then tests
the middle of that distance, then knows whether the object is hit
in the lower or upper half. It continues doing so for
Precision
times. In more technical terms: It uses a bisection algorithm of
depth "Precision" to actually find out where the object is hit by
the current ray.


Lets take the previous example:

ChaosPro scans a ray of length 4 at 200 points.

That means, each 0.02 (=4/200) unit a pixel gets tested whether
it belongs to the quaternion or not.

Assume Precision has been set to 8.

Assume there is a pixel 1.009283 units away.

ChaosPro would test whether the pixel which is 1 unit away


belongs to the quaternion:
Result: no

Now ChaosPro continues and tests the pixel 1.02 (next step).

Result: yes

Now ChaosPro starts with the second pass:
Iter Min Max Middle Test at middle
1 1,000000 1,020000 1,010000 Y

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmparm.htm[12/16/2018 2:24:22 PM]


ChaosPro - Quaternion Parameters

2 1,000000 1,010000 1,005000 N


3 1,005000 1,010000 1,007500 N
4 1,007500 1,010000 1,008750 N
5 1,008750 1,010000 1,009375 Y
6 1,008750 1,009375 1,009063 N
7 1,009063 1,009375 1,009219 N
8 1,009219 1,009375 1,009297 Y

And after only 8 further iterations ChaosPro knows that the
border of our quaternion is at about 1,009297, which is quite
near at the real distance of 1.009283


Conclusion: Precision artificially increases the resolution. The scan
resolution basically is Resolution * 2^Precision *
Width_of_fractal


Setting precision to 0 disables the bisection algorithm.
Roughness - lets you specify an artificial roughness of the surface
by modifying the angle in which the light falls onto the surface. If
you set it to 0.1 then the surface seems to be a little bit rough. 0
turns roughness off, the pure fractal surface will appear without
any special modification.
Gamma - the gamma value: If the object seems to be too dark,
it's a good idea to adjust the gamma value and make it smaller.
Contrast - lets you adjust the contrast of the image

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmparm.htm[12/16/2018 2:24:22 PM]


ChaosPro - Quaternion Parameters

ChaosPro
Home Release 4.0

Introduction
What's New Quaternion - View Parameters
Palettes
Using Formulas

This tab lets you change all parameters of the camera (or observer), i.e. you can change the position, the
Layering in
orientation, etc.
ChaosPro
Rendering
There are three panels on this tab. The panels are used to group parameters which belong together in some
Fractal way. Panels can be expanded and collapsed.
The panels are:
Parameter
Windows Observer panel: Contains parameters which are used to easily modify the camera position. Most of
Windows the time you will work with the settings presented in this panel.
Menu Position panel: Contains raw positional data (even for the observer): In case you want to manually
3D enter the position of the camera, the view point, etc., then you can do that here.
Transformations
Projection panel: Contains parameters which control the projection.
Animations
Formula
Compiler Observer Panel
Compatibility
Fractal Type
Let me first describe the principle for specifying the observer
Reference position: Although you can specify the observer position
Attractor directly by entering the 3D coordinates
this panel allows you
Bifurcation - to specify that position in a more intuitive way.
Theory
Dynamic When you see a quaternion, you can "rotate" around that
System object. This is much better and much more intuitive:
Escapetime

Most of the time you don't want to specify some abstract 3D
IFS point which should be the observer position. No, most of the
LSystem time you simply want
to rotate the object by , say, 30 degree
Lyapunov horizontally, because this seems to be an interesting area
Space - worth looking at.
Theory
Plasma
And you can do that...
Quaternions Rotate Around: Here you can specify whether you
Theory want to rotate around the view point or around
Overview yourself. If you are looking at an object you normally
want to rotate around the point at which you are
Parameter looking at. But imagine you've zoomed in and you Fig.: Observer Panel
Tab are in a deep cavern inside the quaternion: Then you
View normally don't want to rotate around the point you are looking at. Instead, you want to switch your
Tab head to the right or left or up or down: Thus you want to rotate around your current position.
Light Tab
Horizontal Observer Angle: ChaosPro won't bother you with the current horizontal observer angle.


Transformation
Tab Indeed, who cares? You see the object, and you want to rotate it, so simply do it regardless the

current horizontal angle or any other parameter.

By dragging the slider you rotate the object horizontally. ChaosPro always internally maintains all

other parameters in order to give you the possibility to rotate horizontally relative to your current

observer position.


Just imagine you are at some location, looking at any point, you have rotated yourself: Now
horizontally does not mean "rotate in the x-y-axis". No! Horizontally for YOU means, rotate
horizontally relative to my current position, my current orientation regardless the coordinate
system!
Formula
Tab Perhaps this seems to be clear? Well, mathematically this is quite difficult, especially if interpolation
Coloring of the observer position should be implemented, too (or don't you want to create animations flying
Tab around a quaternion?). This slider can be dragged from -90 degree to +90 degree. After you are

finished changing the horizontal rotation angle it will switch back to 0, thus allowing you to rotate
by another 90 degree.


Vertical Observer Angle: Again, ChaosPro won't bother you with the current vertical observer angle.

This parameter lets you simply rotate vertically to your current observer position.

Distance: This parameter specifies the distance from the view point: It lets you change how far you
are away from the view point. The parameter is expressed in % of your current distance. ChaosPro
won't bother you with the current distance in any unit as this information is just a meaningless

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmview.htm[12/16/2018 2:24:29 PM]


ChaosPro - Quaternion Parameters

number.
Instead. By dragging the slider you can reduce the distance to the view point or you can
Tutorials increase the distance. After having adjusted the distance the slider will snap to the middle position
Appendix and again show "100%". You can then adjust the distance again.

Rotation: This parameter lets "rotate" the observers head: The position gets not changed. Instead,
the observer rotates himself around the view axis.
Example? Ok, you must rotate your head by 90 degree in view axis in order to correctly recognize
the following:      ;-)




Position Panel

The position panel now lets you define the 3D coordinates
directly. Most of the time you might want to collapse that
panel, but perhaps you feel more comfortable
specifying these
values directly.

View point: This is the null point of the system: The


point at which the observer looks at, the point
around which the observer "rotates", the point to
which the observer zooms in or zoomes out (if the
distance should change).
Observer: This is the position at which YOU are
supposed to be, i.e. the observer of the scene, your
eye or whatever you may call it.
Fig.: Position Panel
Top: Specifies the top vector, i.e. the direction which
is up. If you live on the earth, then "up" normally points to the sky. But if you look at a :-) it's
sometimes helpful to bend your head to the left, thus Top points to the left...

Projection Panel

Clipping Planes: The clipping planes specify the


frontmost and backmost part of the area which is
scanned. Only the part of the quaternion which lies
between the frontmost and backmost clipping plane
is drawn.
Relative to VP: If checked, the clipping
planes are defined relative to the
viewpoint. If not checked, the distance of
the clipping planes are relative to the
observer.
Front and Back: Specifies how far away the
frontmost and backmost clipping planes
are.
Adjust: Sets the clipping planes so that the
quaternion which is currently visible is
contained in it. As it gives a speed up and a
quality increase at no extra cost setting Fig.: Projection Panel
proper clipping planes is a good thing.

Depth of Field

When you take a picture using your camera you will for sure know that you need to set the focus
correctly. The area which you choose to be in focus appears sharp, other areas appear more blurry
depending on how far away they are from the focus point.
Computers do not have this possibility
by default: When rendering artificial images there is no focus: All areas appear sharp, i.e. are in
focus. Although this seems to be good as everything is sharp and clear the image looks artificial
due to that: We are not used to look at 3D objects which appear totally sharp!
As such, in order to
add some more realism to 3D objects ChaosPro artificially adds the blurry effect (depth of field).

Although ChaosPro uses a reasonable algorithm in order to add the depth of field effect it has some
drawbacks: Normally you zoom onto the object very closely. This is not very natural: Suppose you
are trying to take a picture from an object using your digicam which is round about 0.001 mm
away. That's what ChaosPro needs to render. Basically it is a microscope. As such, the parameters
below should not be interpreted as "real" values. Experiment with aperture and focal len. Don't try
to match them to real world values. It won't work.

Aperture: Specifies the camera lens size in mm. Normal values are 5 mm to 20 mm.

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmview.htm[12/16/2018 2:24:29 PM]


ChaosPro - Quaternion Parameters

Focal Len: Defines the focal length, normally round about half of the plane distance is
good.
Plane Distance: Specifies the distance at which points are in focus. If set too near or too
far, the whole object is blurry. ChaosPro sets it by default to the average distance of the
points around the viewpoint: So the middle of the object appears sharp.
The left button adjusts the settings to some reasonable values. The right button is the
"Auto Adjust" button: When pressed/activated ChaosPro will overwrite your values
whenever it renders the object using reasonable values.
So if you adjust aperture, focal
len and plane distance, deactivate the "Auto Adjust" button.
For more information about depth of field see Depth of Field (Wikipedia)

The following two images show the depth of field effect:
Depth of field off: The image below appears Depth of field on: Do you see the blurry areas?
sharp at any distance. Looks ok, but somewhat The focus is in the middle of the image. Areas
unnatural. which are farther away than these areas appear
blurry.

Aspect Ratio: Normally 1, specifies the ratio from width to height.


Field of View: Contains the angle of the perspective projection in degrees, or in other words: The
view angle which your eye has. Normal values are 30 or 45 degrees. If you change this value it
may seem as if the object just gets smaller or larger. But beware! When animating an object you
will see the difference: If set to an "unnormal" value (too low or too high) the angles of the objects
seem to be unnatural. This may not be relevant for fractal objects, as the visual appearance is not
natural anyway, but if you e.g. animate a cube you will see that it looks not as expected, as the 90
degrees of each side seem to be somewhat "strange" and "distorted".

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmview.htm[12/16/2018 2:24:29 PM]


ChaosPro - Quaternion Parameters

ChaosPro
Home Release 4.0

Introduction
What's New Quaternion - Light Parameters
Palettes
Using Formulas
Layering in The light tab contains all settings related to light sources. ChaosPro supports upto 8 light sources, each of them can
ChaosPro have its own settings.
Rendering
Fractal
Parameter Light Model Panel
Windows
Windows
Menu Light Model
3D This setting cannot specified per light source: Once set, it
Transformations applies to all 8 light sources.
Animations
A light model defines how light modifies the color of a
Formula
pixel.
Compiler
Compatibility ChaosPro offers two light models in order to color
Fractal Type quaternions:
Reference
Attractor The RGB light model modifies the R, G and B
Bifurcation - components directly depending on the light
Theory falling onto a pixel.
Dynamic The Saturation/Luminance light model (short: Sat/Lum) modifies the saturation and luminance of
System a pixel depending on the amount of light falling onto a pixel.
Escapetime
IFS
The RGB light model is more physically oriented: If a red light source shines onto a grey ball, the ball will
LSystem look red. Although the RGB light model is more physically oriented, the results look too colorful and thus
Lyapunov not too realistic.
Space -
Theory
The Sat/Lum light model only modifies the saturation and luminance of a color. So if a pixel is blue, it
Plasma remains blue when light falls onto it. Only the luminance and saturation of the color will be modified by the
light. This light model normally produces more realistic looking objects.
Quaternions
Theory
The following two images show the same object, but rendered with different light model:
Overview
Parameter
Tab
View Tab
Light
Tab


Transformation
Tab








Formula
Tab
Coloring RGB light model Sat/Lum light model
Tab


Light Panel



The light panel itself lets you switch on/off each of the 8 light sources and change its position:

Enabled If checked the light source is enabled, otherwise

it is disabled and has no (absolutely no) effect. The light

bulb above indicates whether a light is enabled or not and

will change according to your selection here.
Tutorials
Appendix Relative Specifies whether the light position is relative to
the observer/camera. Without a very good spatial sense

and exactly knowing where the observer is you are lost

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters


when specifying the light position.
If you check the

"Relative" checkbox then the light position is specified in

coordinates of the "Observer", i.e. 0/0/0 means:


The light source is where you are


x>0 means, the light source is at your right side


x<0 specifies your left side


y>0 specifies "above"


y<0 specifies "below" you


z>0 specifies in front of you

z<0 specifies behind you.
Horizontal Specifies the longitude of the light position.
Vertical Specifies the latitude of the light position.
Distance Specifies how far away the light source is. If "Relative" is not checked, specifies the distance from
(0/0/0), if "Relative" is checked, specifies the distance from the observer.

Light Settings/Color Panel


The Settings/Color panel lets you define properties of the light defined by the light model and the color of the light
source.
There exist two different versions depending on the light model chosen. The two models differ in how the
light itself and the specular light are defined:

The Sat/Lum light model does not modify


the shade of color (hue) of a pixel:

It only makes a pixel darker (upto black) or


brighter (upto white):
So no matter how
strong the light shines onto your object, if
the object is red, it remains red. It will
contain shades of red, ranging from totally
black (no light shines onto an area)
through all shades of red to white (full
amount of light shines onto an area).

As such, in the Saturation / Luminance light


model (see image at the left side) you can
choose how strong the light influences the
saturation and luminance of each pixel.
And you can define the same for the
specular highlight, i.e. how strong the
specular highlight affects the saturation
Fig.: Sat/Lum light model Fig.: RGB light model
and luminance of each pixel of your fractal.

The other light model - RGB light model - affects the red, green and blue component of each pixel of your fractal
depending on the color of the light. As such the light is defined by a color together with an intensity of how strong
the color of the light will affect the color of a pixel.

The same applies to the specular highlight: In the RGB light model you define the color of the specular highlight and
the intensity of it.

See below how the light color affects the color of an object.

Color Allows you to specify the color of the light source as well as the intensity.
The ball below is a simple grey The same grey ball, but now the And yet again, but now the
ball. light source throws red light onto intensity of the red light has been

White light with intensity 1 and it with intensity 1. increased to 3. The grey ball looks
white specular light with intensity red!
1 is used.

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters

Specular Allows you to specify the color of the specular light as well as the intensity.
White specular light shines onto Now blue specular light shines And now blue specular light with
the ball. onto the ball with intensity 1. intensity 3 is used. The size of the
specular highlight does not
change, but you can see it more
clearly.

Ambient
'Ambient' is a number between 0 and 1 and determines, how much light falls on each area, independent of
whether light from the light source actually falls on it. So it defines the minimum light intensity which falls
on each pixel. A value of 1 doesn't make much sense, because then every area would be drawn with an
intensity of 1 (brightest light). This is a pure artificial term, using this easy setting the light model used in
ChaosPro tries to imitate the overall reflected light in a scene.

Diffuse
Diffuse determines the proportion between the light from the light source and the "reflected" light (specified
by Ambient). A value of 0.8 means, that 80% of the intensity of each pixel (area) is defined by the angle, in
which the light from the lightsource falls on it, and 20% of the intensity by the angle, which is enclosed by
the vector of the reflected light and the vector from the observer. That's a rather crude description, I think.

To be more general, it defines, whether the 3D-picture shines due to reflected light or due to light from the
light source.

Normally Diffuse+Ambient should be equal to 1.


Here Ambient is almost 0. You can Normal setting: Ambient=0.15, ...and now Ambient is set to 0.5,
see that the areas which are not Diffuse=0.85. Even the dark areas which is unnatural: Now it does
exposed to the light appear black. at the bottom of the ball receive not matter too much whether a
No reflected light is taken into some light. This is due to the point is hit by the light or not, it
account. Ambient term. always receives a fair amount of
light intensity.

Shiny
Shiny determines the size of the shiny point, i.e. the specular highlight. The smaller the value, the smaller
the specular highlight.
This scene is rendered with Same as before, Shiny=0.1. Such This scene is rendered with
Shiny=0.1, it looks like a polished low shiny values produce polished Shiny=0.5, thus has a larger
billiard ball. surfaces or metallic looking specular highlight and looks more
surfaces. like plastic.

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters

Reflection
Reflection determines how reflective the object is: It determines how sharp the specular highlight will be. Try
values like 1 (dull) or 20 (sharp) or values in between.

Shadow Panel


A light source can also cast a shadow. As casting a shadow is
expensive (needs additional memory) and may be inaccurate (as it
basically requires the complete object as viewed from the light
source), it is by default switched off.
There are a few settings which
can be defined for shadow casting, as mentioned below:
Enabled Lets you specify whether the light source throws
shadows.
ShadowMap specifies the size of the shadow map as a
multiply of the fractal width. Rendering correct shadows is
very hard for Quaternions. In order to get a realistic
shadow you need a shadow map which is much larger
than the fractal itself. You might try 5 or 10, this of course
increases memory usage dramatically. But when you are
rendering an animation you normally don't have huge
image sizes, but want to have correct shadows.
Bias: One problem of rendering shadows using a shadow map are self-shadowing pixels. Due to rounding
errors during projection onto the shadow map pixels may be shadowing themselves.
In order to prevent
this some small corrective amount will be added to each shadow. The bias value is automatically
determined by ChaosPro. Using this value here you can fine tune that value: It specifies a multiply for the
value.
Softness: If you want hard shadows, set it to 0 or 1. Then a pixel is either in shadow or not. If you set it to
2, then a 2x2 raster around the current pixel is scanned, resulting in 4 possible shades of shadow, 3 then
means, a 3x3 raster is used, thus 9 shades of shadow. The higher the number, the softer the shadow, the
longer the rendering time.

Ambient Occlusion Panel


It is very difficult to write an algorithm which tries to simulate
physical light. For ChaosPro it is impossible. There are light models,
shadows, etc., and in order to create realistic looking objects you
need all of these effects.
And yet there is some important part
missing: Suppose there is a valley and a hill. Assume that light
shines into the valley and the same light shines onto the hill. For
sure you will see that in nature the valley still appears to be darker
than the hill.
This is because in nature small parts of the light get
reflected all around. As in the valley less objects are catching light
they do not reflect it to other areas in the valley: It will in general
appear darker.

This effect cannot be handled in ChaosPro. But there is a technique


which tries to simulate that: It is called Ambient Occlusion. All it
does is to scan the neighbourhood of a pixel: If many pixels are in
front of that, the pixel is assumed to be "occluded". If not, the pixel
is not occluded.

The technique works quite well, as you can see below:

Enabled Lets you switch on/off ambient occlusion.


AO Only If checked, displays the ambient occlusion buffer. This is of no real use, but it is quite interesting

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters

to see which parts of the objects seem to be occluded how much according to the algorithm.
Radius Defines the neighbourhood to scan: 1 means default (about 20% of image size is considered to be
neighbourhood).
Samples ChaosPro cannot scan the complete neighbourhood. Due to that it scans by choosing samples. The
more samples the better and more exact the scan will be. But the longer it takes...for animations you
should increase the value to 200 or 500, otherwise there might be some strange "texture" in the object.
Strength Strength of the effect: If the effect is too weak, increase it.
Intensity Specifies how much the ambient occlusion term modifies the light intensity. May range from 0
(effectively switching it off) to 1 (ambient occlusion replaces light intensity).
Cone angle Specifies the cone around each pixel: Only neighbours within that cone may occlude the pixel.
Default is 150 degree, thus the cone is quite large.

Mandelbulb closeup rendered without ambient occlusion   Same as before, but rendered with shadows. A little bit
and without shadow. It is hard to determine the depth better, as one can identify some parts which are behind
of some areas. The 3D effect is good, but the object is others and which parts are in front of other parts.
somewhat "flat", not perfectly 3D.
 

     
And now the same scene with ambient occlusion   And this image displays the ambient occlusion buffer:
enabled: The depth effect is much better. Parts lying Compare with the image: The shades of grey specify
deeper in the object are darkened, parts which are lying how much occluded ChaosPro thinks that a pixel is.
in front remain unmodified.
 

Fog Panel


In order to add even more realism to an image ChaosPro implements some kind
of fog: The farther away the image is the more the object color will be replaced

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters

by the fog color.

Enabled Lets you switch on/off fog.


Front Specifies the distance at which fog starts. All areas of the object
which are nearer than this value are not affected by fog.
Back In case of linear and square fog component: Specifies the back
distance at which the fog is dense, i.e. density increases from "Front"
to "Back" and is 1 at "Back".
Density In case of exponential fog component: Specifies the fog
density: The fog starts with density=0 at "Front" and then increases
with the given density.
Linear Defines how much from the linear fog component should be
used compared to the square and exponential fog component. The
absolute value does not matter, only the relationship to the other
values.
Square Defines how much from the square fog component should be used compared to the linear and
exponential fog component. The absolute value does not matter, only the relationship to the other values.
Exp Defines how much from the exponential fog component should be used compared to the linear and
square fog component. The absolute value does not matter, only the relationship to the other values.
The fog functions used by ChaosPro are:

Linear:

   if distance<Front: FogDensity = 0

   else if distance>Back: FogDensity = 1

   else FogDensity=(distance-Front)/(Back-Front);
Square:

   if distance<Front: FogDensity = 0

   else if distance>Back: FogDensity = 1

   else FogDensity=((distance-Front)/(Back-Front))^2;
Exp:

   if distance<Front: FogDensity = 0

   else FogDensity=1.0-exp(Density*(distance-Front));

   

Mandelbulb closeup rendered without fog. No matter   Same as before, but rendered with fog. The farther
how far away a pixel is: It keeps its color. away an area is the more it is mixed with the color
of the fog.
 

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmlight.htm[12/16/2018 2:24:41 PM]


ChaosPro - Quaternion Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion - Transformation Parameters
Using Formulas
Layering in ChaosPro

The transformation tab lets you
Rendering add transformations to the
Fractal Parameter Windows Quaternion. For more information
Windows about transformation formulas and
their meaning see Transformations.
Menu
You add transformations by double
3D Transformations clicking onto a transformation
Animations formula in the compiler window or
Formula Compiler by selecting a transformation
formula in the compiler window and
Compatibility pressing the "Add Transformation"
Fractal Type Reference image button in the parameter
Attractor window.
Bifurcation - Theory
Of course, you should assign only
Dynamic System Quaternion Transformations to a
Escapetime Quaternion, because only such
transformations are prepared to
IFS
obtain a quaternion number and return a quaternion number. Most other
LSystem transformations won't work because they use illegal operations.
Lyapunov Space - Theory
Because a transformation simply "transforms" (or, in other words, takes a
Plasma
quaternion number and produces a quaternion number), it is possible to
Quaternions apply several
transformations: The succeeding transformation takes as
Theory input the output from the preceding transformation.
Overview

And this indeed makes sense: Suppose you have a simple transformation
Parameter Tab which just "moves" the input area (takes the input value and adds a
View Tab quaternion number).
Suppose you also have a transformation which does
Light Tab some rotation. If you now want to combine these two transformations you
could write a more complicated transformation which "moves" and
Transformation Tab "rotates".
But wouldn't it be easier, if you just apply the "movement"
Formula Tab transformation, and after that apply the "rotation" transformation?
Coloring Tab
ChaosPro allows you to do that: You can write many simple understandable
transformations. And the user who simply wants to create fractals can

combine any number of transformations to obtain interesting sets of the



complex number plane.
For more information about setting parameters of

your transformations see Setting Formula Parameters.







Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmtrafo.htm[12/16/2018 2:24:54 PM]


ChaosPro - Quaternion Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion - Formula Parameters
Using Formulas
Layering in ChaosPro
The formula tab lets you specify
Rendering the iteration formula to use for
Fractal Parameter Windows the fractal.
You can assign such a
Windows formula by double clicking onto
the formula in the compiler
Menu
window or by selecting it through
3D Transformations the formula selection icon (right
Animations beneath the formula name at the
Formula Compiler top of the window).
Compatibility If you right-click onto the formula
Fractal Type Reference selection icon (right beneath the
Attractor formula name at the top of the
window) you can choose one of
Bifurcation - Theory the presets available for this
Dynamic System fractal type.
Presets are
Escapetime predefined settings (formulas)
and are used as starting points for
IFS
your own explorations.
LSystem
Lyapunov Space - Theory You then can change the parameters of this formula.
Plasma For more information about setting parameters of your formula see Setting
Quaternions Formula Parameters.
Theory
Iteration
Overview Here you can set the beloved "number of iteration"-parameter. It
Parameter Tab specifies how many iterations ChaosPro should perform.
The
View Tab higher the value, the more exact the quaternion, the slower the
calculation.
Light Tab
Transformation Tab
Quaternions look best with low iteration values. The smaller the
Formula Tab iteration values, the smoother the quaternion!
Most of the time
very low values will lead to a distorted ball. The higher the
Coloring Tab
iteration value, the more details appear, but the object will
get

holes.


Background Detect

A new parameter introduced in ChaosPro 3.1 is the "Background

Detection": It speeds up the calculation by guessing where
the

background is. The background areas are the most computational

intensiv areas, thus applying some logic to detect the background

has a great impact
on the calculation time.


Tutorials Inside
Appendix If checked ChaosPro will render the inside of a quaternion. This of
course only works if the camera is "inside" the quaternion.
The

difference between the "inside" and "outside" view is when
ChaosPro thinks it has found the border of the object:


Outside View: ChaosPro scans a ray starting from the camera
position until it finds a point which is "inside".


Inside View: ChaosPro scans a ray starting from the camera
position until it finds a point which is "outside".


The inside view might not work for all formulas: For example
most distance estimation formulas only work for points outside an
object.
The standard ray scan algorithm should work in any case,
as it only performs a stupid, slow, complete ray scan.

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmfrml.htm[12/16/2018 2:25:01 PM]


ChaosPro - Quaternion Parameters

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmfrml.htm[12/16/2018 2:25:01 PM]


ChaosPro - Quaternion Parameters

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion - Coloring Parameters
Using Formulas
Layering in ChaosPro
The coloring tab lets you choose a
Rendering coloring method for the Quaternion.
Fractal Parameter Windows For more information about coloring
Windows formulas and their
meaning see
Coloring Formulas.
Menu
3D Transformations
Animations
In addition to choosing the formula
Formula Compiler
you can set some standard
Compatibility parameters. Although the exact
Fractal Type Reference meaning is different,
the basic
Attractor meaning is the same as in the old
Colormapping Window. You can
Bifurcation - Theory specify a solid color for the
object
Dynamic System using the small image button.
Escapetime
For more information about setting
IFS parameters of your coloring formula see Setting Formula Parameters.
LSystem
Lyapunov Space - Theory
Plasma
Quaternions
Theory
Overview
Parameter Tab
View Tab
Light Tab
Transformation Tab
Formula Tab
Coloring Tab










Tutorials
Appendix

http://www.chaospro.de/documentation/html/fractaltypes/quaternions/parmcoloring.htm[12/16/2018 2:25:08 PM]


Tutorials

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
3D Transformations
Animations
Attractor Tutorial










Appendix

http://www.chaospro.de/documentation/index21.html[12/16/2018 2:25:16 PM]


How to create 3D Tranformations

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes How to create 3D Transformations
Using Formulas
Layering in
ChaosPro
This chapter should make you familiar with the problems one can encounter when one tries to calculate a
Rendering 3D view of a fractal.
At first I have to mention, that you cannot calculate a 3D transformation for all
fractal types. For some types this simply doesn't
make sense. A first presupposition is that the function
Fractal Parameter which calculates the color for any complex number has to be a continous function
to produce reasonable
Windows results. Fractal type '24 bit Julia', '24 bit Mandel', 'Plasma' and 'Lyapunov Space' fulfill this
Windows presupposition.
Other types may produce some results, due to the non continous function there of
Menu course are sudden 'jumps' in the height field,
which can't be avoided and really look annoying.
3D
Transformations
Lets make an example. Assume we
Animations want to create a 3D transformation
Formula Compiler of "Black_Hole". At first we
calculate the image. It will look like
Compatibility that:

Fractal Type
Reference
Tutorials

3D
Transformations

After you have decided that you
want to calculate a 3D
transformation, you have to tell
your decision to ChaosPro. This is
done
by placing a check mark at
menu item Fractal / 3D
Transformation. After having
calculated the flat 2D image of the
Animations fractal,
the 3D transformation is
performed. So you have to wait
Attractor some time until you see a 3D
Tutorial image.

A quite boring image will appear, as



you can see at the right side...





Now why is the image so boring?

Well, the main reason is that


ChaosPro has to transform an

iteration value to a height. Well, it

can do so by simply saying that

Appendix iteration value 1 is height 1,
iteration value 2000 maps to

height=2000. But that would
almost never produce any

reasonable result. So the height
transformation is user defineable.
And the default height
transformation is not suitable for
this fractal (in fact, it is suitable
only for the standard Mandelbrot
set when zoomed out).
So we have
to change the height
transformation function.


It can be defined in the 3D
parameter window, Tab 2. Please
open it and go to Tab 2...


If you change any 3D parameter, the fractal basically stays the same, i.e. the 2D image does not have
to be recalculated.
If you change any fractal related parameter, then of course the fractal will be
recalculated, after that the 3D view is adjusted...


Ok, lets have a look at the height

http://www.chaospro.de/documentation/html/3d/howto.htm[12/16/2018 2:25:23 PM]


How to create 3D Tranformations

transformation function. At first,


choose the scaling of the display
field to match the fractal.
The
fractal Black_Hole produces
iteration values from 1 to a
maximum of 5000 (maximum
number of iterations).

Choose XMin=0 and XMax=5000


(see marked fields in the image
beneath)

We now can adjust the height


transformation function to our
needs. We have control over the
full range of iteration values of
from Black_Hole!


At first, the existing control points
are totally wrong. Delete them by
activating them (click onto them)
and pressing the delete key on
your keyboard.

The 3D view will be recreated as


you delete control points. When the
control points have been deleted,
place new ones into the field, it
does not matter where, simply
add
about 3 control points equally
spread over the field (adding
control points is done by double
clicking at the desired place). You
should see that the 3D view
produces a "result".


Ok, now play around a bit with the
control points. Drag them around
and watch the 3D view to get a
feeling how it works.
My height
transformation function now looks
as follows:


And the result looks like that:


Quite strange...the problem is that
the data is not smooth enough:
One pixel has an iteration value of
500, the pixels in the
neighbourhood have values of
2000,3000 and 4000!
And these
pixels of course produce totally
different heights. And this leads to
those stalks in the image.


But as you can imagine, there is a
solution: Some kind of smoothing

http://www.chaospro.de/documentation/html/3d/howto.htm[12/16/2018 2:25:23 PM]


How to create 3D Tranformations

must be applied! Please go to Tab


3 of the 3D Parameter Window and
check the "Smooth heights"
checkbox.
My image now looks
much better:


And if you like, you can colorize
your image: Go to Tab 3 and
deactivate "One base color". This
means your fractal does not use
one base color and modify the
darkness of this color. Instead, it
uses the original colors from the
fractal and modifies the darkness
of those...
My image now looks
much better.


And then you can adjust the view
angle, the height transformation
function, the palette or whatever
you like.


You can even calculate an
animation of a changing height
transformation routine, i.e. the
fractal mountains disappear and
morph to valleys or whatever you
like.


My result after playing around with the other parameters looks as follows, perhaps your image is even
nicer?

http://www.chaospro.de/documentation/html/3d/howto.htm[12/16/2018 2:25:23 PM]


How to create 3D Tranformations


Well, you should now have a good starting point for 3D transformations. Good luck!

http://www.chaospro.de/documentation/html/3d/howto.htm[12/16/2018 2:25:23 PM]


How to create Animations

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes How to create Animations
Using Formulas
Layering in ChaosPro
Rendering
Theory:
Fractal Parameter Windows ChaosPro is able to automatically create animations (AVI files) or sequences
Windows of fractal pictures. The basic idea is as follows:
Menu
The user adds a fractal data structure (a data set which completely
3D Transformations describes a fractal - FractInt users may think of a data structure as an
Animations entry in a *.par file) to the animation system. This data structure is copied
Formula Compiler and inserted into the list of keyframes.
Compatibility 1. The user then changes some parameters in the original data structure
Fractal Type Reference (for example, the number of iterations, parameter c, area values,
Tutorials rotation angle, etc.) and inserts the modified data set into the
animation system again.
3D Transformations
Animations 2. The user continues with this as required.
Attractor Tutorial 3. The user provides the animation system with some other parameters
like, the size of the animation, the type (sequence of *.png files or an

*.avi file), and specifies how many images should be calculated



between the two key frames.

4. The user starts the process: ChaosPro subsequently creates fractal data
structures, which interpolate the given keyframes, calculates the
fractals described by the data structures,
saves the image, and
continues with the next part of the sequence.

For example let's assume the user subsequently adds keyframes with the
following values:
Appendix
bailout=60, maxiter=80, horizontal view angle=30 degree

bailout=80, maxiter=160, horizontal view angle=45 degree


bailout=80, maxiter=200, horizontal view angle=70 degree

bailout=70, maxiter=200, horizontal view angle=70 degree,
zoomed in once (by double clicking on the centre of the window).
Assume, that the user chose linear interpolation and wants to calculate 4
frames from one keyframe to the next.

ChaosPro then examines these 4 keyframes (ChaosPro calls them animation
keyframes or short: "AnimKeys").
Let us assume, that ChaosPro wants to
set up frame number 11. The program sets up a function for the bailout
value (as it changes during the sequence, ChaosPro will of course notice
this without further interaction from the user). Below is an image
describing how ChaosPro works.

The unit on the horizontal axis is the frame number, the vertical axis has
the parameter values, i.e. the initial bailout values.

ChaosPro now fills in the values it knows, i.e. frame 1 has bailout=60,
frame 5 (4 images should be calculated between 2 keyframes) has 80,
frame 9 also has the value 80, and frame 13 has bailout=70.

http://www.chaospro.de/documentation/html/animation/howto.htm[12/16/2018 2:25:31 PM]


How to create Animations

The user chose linear interpolation, so a polygon is drawn to connect the 4


points. ChaosPro
then extracts the value at point (image number) 11,
which is 75, and this is how the bailout value for frame 11 is calculated.

Then the maximum number of iterations should be determined for frame


number 11.

Again ChaosPro fills in the values known to the program, i.e. frame 1 has
maxit=80, frame 5 has 160, frame 9 has the value 200, and frame 13 also
has maxit=200.

As you can see, image number 11 has the value 200, so the iteration value
for the data structure created when image 11 is calculated, will be 200.

The same method is applied to all parameters. ChaosPro examines the


parameters, recognises whether the parameter changes and interpolates it.
The interpolation type specifies how the points are connected. 'Linear'

http://www.chaospro.de/documentation/html/animation/howto.htm[12/16/2018 2:25:31 PM]


How to create Animations

simply draws lines between them (as above), 'Spline' calculates a cubic
spline (i.e. a smooth curve which interpolates the given points). Most of
the time you will use 'Spline' as the interpolation type, as this generates
smooth animations. The examples above use 'Linear' only for simplicity so
that you can understand what is going on.

So you can for example calculate an animation, in which you look onto a
3D-transformed fractal
(a kind of a landscape), then zoom into the fractal
(you zoomed in on the 2D fractal), 'fly forward' (you moved the fractal
around a little) while the palette changes and the fractal seems to morph
(perhaps it was a juliaset and the user changed parameter C which gives
some kind of morphing...) and at the end of the sequence the light source
moves to the back and vanishes...

I hope that you recognise the power of this algorithm: Inside ChaosPro a
fractal has a specific data structure of a predefined format where all
relations to other "objects" like formulas are defined. A parameter can
either belong to a fractal and thus resides in the fractal data structure, or it
does not belong to a fractal and is therefore a global setting. This method
of data separation makes it possible to compare the different fractal data
structures and their parameters, and to create animations of almost all
parameters in a fractal.

Note: You can't change all the parameters. Some of them act like switches
(boolean values), and as you can imagine, there's no reasonable way to
create sequences of images if a boolean value has changed. ChaosPro will
detect it if you try to create such a sequence of images as soon as you try
to add your fractal data structure to the animation.

Technique:
Now let me explain how I create animations, and how you should go about
it:

1. Calculate a fractal which will define the starting point of the animation,
and change it as you like.
2. As soon as you are satisfied with your changes, open the animation
window (Menu: Windows / Animation), choose the "Key Frame Path"
tab, and add the fractal to the keyframe list by clicking onto the button
Add First. This is how a keyframe is created: All values, which describe
the fractal, are copied into this keyframe structure. The values in this

keyframe remain constant even if you change your fractal (because the
values have been copied!).
3. Then change other parameters of the calculated fractal (the original
one): Perhaps zoom in a bit, move it around, change the bailout value,
or do something else (no, do NOT go away to drink
some coffee!).
4. Then add it again (the same fractal, but now with other values...) to the
keyframe list after the first one. (Select the first keyframe and click on
the 'Add' button to insert the new keyframe directly after the current
selection). ChaosPro is able to recognise the parameters which change
between keyframes, and can create in-between data structures which
interpolate
from the parameter set of the first keyframe to the
parameter set of the second keyframe.
It should be obvious that one
should not change too many parameters from one keyframe to the
next, because the resulting fractal images will be far too dissimilar and
thus the sequence will not resemble an animation. ChaosPro will still
interpolate these using its algorithm, which works in every case, but if
you do too many changes then you would have to calculate hundreds
of frames between the two keyframes to get a smooth transition. I
should zoom in about once (by a factor of two), then add this as a
keyframe. If you want to change the parameters by a large amount,

then do this bit by bit and add more keyframes to compensate.
5. Continue changing parameters and adding the fractal to the end of the
keyframe list until you think you are finished. You can add as many

http://www.chaospro.de/documentation/html/animation/howto.htm[12/16/2018 2:25:31 PM]


How to create Animations

keyframes as you like and you are only limited by the amount of
memory available in your computer.
6. Once you have created the keyframes, you can define the width,
height, and the number of frames to be calculated between your two
(or more) keyframes.
7. When you have finished, click 'Start' in the keyframe tab of the
animation window and wait for the animation creation to reach
completion (this may take a while...).
Once upon a time somebody complained that creating animations didn't
work like he expected. He did the following:

He took two fractal data sets and added them as keyframes. He presumed
that ChaosPro would
produce some kind of morphing from one fractal to
the other but his two fractals were completely different. Although they
were of a similar fractal type, one was a deep zoom into one location,

whereas the other fractal was an even deeper zoom at another location. He
specified 50 frames to
be calculated between the two keyframes and
wondered why this only produced black images.
If he would have specified
about 20,000,000 frames to calculate, this would have resulted in an
animation lasting 188 hours (at 25 frames per second) and he would have
seen that ChaosPro zoomed in a bit and then moved around before
reaching its "goal", the second keyframe. The
images were black, because
ChaosPro had interpolated over the big "lake" of the Mandelbrot set, which
was black in that case.

So my recommendation is: Don't try adding two fractal data structures as


keyframes if you
don't know exactly what you are doing. You won't crash
ChaosPro (unless there is a bug), but you could easily get quite confused.
Always make sure that the two keyframes don't have wildly different
values, so the interpolation makes sense and produces reasonable values.

Of course, you can add two completely different keyframes. ChaosPro will
interpolate in every case. And if you specify enough frames to calculate
between the two keyframes, you will indeed get a smooth animation from
the one keyframe to the other ...

http://www.chaospro.de/documentation/html/animation/howto.htm[12/16/2018 2:25:31 PM]


Attractor Tutorial - How to use it

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Fractal type Attractor - a Tutorial
Using Formulas
Layering in ChaosPro

The fractal type "Attractor" - new in ChaosPro 4.0 - is based on formulas
Rendering which generate one 3D point per iteration. This point will then be drawn -
Fractal Parameter Windows more or less!
In the first instance this does not sound too exciting, but if
Windows you let ChaosPro generate many points, these points will form arbitrary
complex objects.
Basically you can - at least theoretically - create any three
Menu
dimensional object with that: You only need to write a formula, which
3D Transformations generates a more or less random point of the desired object.
And after
Animations millions of points have been generated, you will see the object itself.
Formula Compiler

Let's start with a very simple example: A sphere!
Compatibility
Fractal Type Reference
What do we need in order to generate a sphere? A formula! More precisely
a formula which generates a random point on a sphere per iteration. This is
Tutorials
quite easy.
Of course we do not need to write such a formula, as it belongs
3D Transformations to the standard distribution of ChaosPro.
Animations

So let's start: At first we create a new fractal of type Attractor:
Attractor Tutorial

1. Choose menu item Fractal/New Defaulttype/Attractor: A new fractal
gets generated, using default values.

2. Press the green traffic light to start generating the fractal object
3. Make sure the parameter window is open: Menu item
Fractalwindows/Parameters must be checked.



And now we
change the
Appendix formula:


In the parameter
window we select
the Formula tab
(there are five
tabs: Parameter,
View, Light,
Formula, Coloring
- see image at the
right side).


We then change
the iteration
formula currently used by clicking with the left mouse button onto the icon
beneath the formula name - see image, labelled with number (2)


ChaosPro will then open a window in which all formulas currently available
are presented in a tree view.

There is an item called AttractorConstructor.cfm, if collapsed, expand it to
see the contents.
There is a formula named "Sphere". That's the one we
are looking for! We use it! Simply double click onto that formula.


The fractal now uses that formula.

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

ChaosPro has a preview mode in which the first few thousand pixels are
drawn quickly in order to show you the basic shape of the object.
Whenever ChaosPro needs to redraw the fractal it first draws the preview.

We now can rotate the object: We click into the fractal window with the left
mouse button and move the mouse around. This will rotate us around the
object.
Although it looks like the object itself rotates, mathematically "we"
are rotating around the object. But in principe this does not make any
difference for us as long!


To be even more exact we do not rotate around the object, but around the
view point: Let's switch to the View tab, there we can see the view point
which is (0/0/0).
And the object, i.e. our sphere, is centered around
(0/0/0). And due to that it seems as if we are rotating exactly around the
object.


If the object by chance would not be a sphere, but rather some other
complex sophisticated object, which lies around anywhere in the space,
then it would run out of round, if we rotate...


Let's practice this and change the view point: Either complicated, by
entering some values, or easily and more intuitively:
Hold down the Shift
key and "grab" the fractal with the left mouse button (i.e. press left mouse
button inside the window and move the mouse):
By doing that we do not
rotate around the sphere, but move around the view point.


Well, and now stop holding down the Shift key, grab the fractal again,
move the mouse. Oh! It runs out of round!


If you have a mouse wheel on your mouse, then make use of it: Using the
mouse wheel you can zoom in/zoom out.

All these actions can also
be done in the
corresponding tab, i.e. in
the View tab: The sliders
and entry fields found
there in principle do
exactly the same: Rotate,
zoom and such stuff.
Whether you prefer to
use them instead of
directly grabbing the
fractal is up to you.

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it


There is a feature which
needs to be mentioned:
The checkbox "Follow
Object" in the View tab
(see image): The feature
might be very useful
sometimes - and nasty
and irritating at some
other time:

If activated, ChaosPro
will determine the middle
of the object while doing Fig. View Tab
the preview render and set the view point to that point every time the
fractal changes.
It thus "follows" the object and makes sure the object is
halfway "centered" in the window.

This might be very reasonable if you are wildly searching for interesting
fractals and you must constantly "find" the fractal as it may be outside the
current window.
As such you then the must constantly readjust the view
point so the visual focus is at the center of the object.

On the other hand it can be very bothersome if by accident the checkbox is


activated!

Suppose you've just repositioned the fractal so it is perfectly centered in
the window, then you shortly adjust the light settings
and some other
parameter and suddenly ChaosPro discards your view point and sets it to
what it thinks is the center of the object.


So do not forget to uncheck this check box! If your fractal seems to
constantly change the position in the window, then perhaps this checkbox
is activated!

Let's go back to the
main topic- our
sphere. Basically very
boring! What can we
do with it to make it
more interesting?

Well, ChaosPro
constantly generates
points which then are
drawn. The lighting
algorithm then
detects points, tries
to find a surface
using neighboring
points and "throws" a
light ray on it to
determine the light
intensity.
And the resulting object, the sphere, then is drawn.


Now what would be if we "displace" the points "by random" immediately
before they are drawn?


Let's do that - let's add another formula after the sphere formula: See the
image at the left side:
You need to click the right button: The button
immediately above the "desired" button lets you change the current

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

formula (that's not what we want), and our button lets one add another
formula.

Click onto the button.

The new formula which performs a random based displacement of a point


in 3D space, is in the folder AttractorTrafo.cfm and is labelled "Perlin
based FBM".

After the formula has


been added we can
see the effect almost
immediately: Oops!
Our sphere is
distorted!


As a side note: We
should make sure the
checkbox "Final" is
checked with our new
formula "Perlin based
FBM" so that the
formula is applied
after the
input for the
next iteration has
been determined,
immediately before
the point is drawn.
Otherwise the input
for the next iteration
is the result from the
random displacement
which could be nice
but if not desired...


But because the base formula here (sphere formula) is a formula which
does not care about any starting point and just generates the next point on
the sphere by random (the formula is a so-called "constructor" formula...)
the checkbox has no effect in this special case.
But please activate the
checkbox now as it is important for later steps in this tutorial...

Now it's upto
you:
Experiment
with the
parameters
of the
formula
"Perlin based
FBM": Try
out

Octaves=1,2,3,... and watch the effects, set Scale Factor to 2,3,4,5, try out
different values for Scale.


The image aside for example has the following settings:
Scale=1

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

Scale Factor=1.5
Scale Step=0.5
Octaves=7
In Coloring Tab Speed set to 0.1 (so that the colors do not
change so much...)
Zoom out a little bit, rotate

Finally it should not be too difficult to obtain an object which looks like a
stone or a comet or a crinkled piece of paper (assumed you chose a proper
color...)


To sum up: Originally there was a sphere. By the subsequent formula
(Perlin based FBM) the sphere was distorted.
And now imagine what
happens if you apply the Perlin displacement formula to a more complex
base shape...


I think it would be best to try it out: Let's adjust the parameters of the
Perlin formula to some smaller values,
otherwise the formula is so
dominant that it will make crinkled paper from any object:

Scale=0.5
Scale Factor=0.5
Scale Step=0.5
Octaves=7

1. Now lets check the checkbox


"Hide" for the formula "Perlin
based FBM", so we can see
the base shape, our sphere.
2. Now we change the sphere
formula: Press the button as
shown in the image aside. In
the formula window expand
the folder "Attractors.cfm"
and choose the formula
labeled "Polynomial A/B".
3. Enter the following
parameters manually:
Displace: 0.42/0.57/0.65
P1: 0.76
P3: 0.44
P5: 0.15

4. Move/rotate the object so it


fits into the window.


Ok, looks nice, not so boring like a sphere...and now we uncheck the "Hide"
checkbox of the "Perlin based FBM" formula, in order to apply the
distortion.
If you like you can change the colors, the resulting object might
then look as follows:

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it


Sometimes it lasts some time until the fractal appears to be "solid":
ChasoPro already uses all of the CPU power of your system for fractal type
"Attractor", i.e. if you have a multi core CPU you can see that all your CPU
cores are busy.
But nethertheless, it needs time and millions of points until
you can see whether the object is nice and worth some fine tuning or not.


Lets stick to this formula, I would like to explain the search functionality
and experimenting with parameters:
First of all, we deselect "Perlin based
FBM" by checking the "Hide" checkbox. This makes the rendering faster,
that is never amiss.


The current fractal looks nice, but isn't there a more beautiful thing? We
could change the parameters of the formula. Cumbersome!
And it's often
leading nowhere.


Great many combinations of
parameters lead to just an
endless cloud of points which
cannot be drawn correctly.

Due to that ChaosPro (as well as
Chaoscope, another very nice
program! You should definitely
try it out!) an automatic search
function:
This search function
picks parameter values
randomly, checks whether the
resulting fractal can be drawn. If
yes, it stops, if no, it continues.
This task lasts until ChaosPro
has found parameters, which
seem to form something
reasonable. Whether the
resulting fractal then is nice or
rather boring...well - ChaosPro Fig. Search Button
cannot know that.


Ok, let's click onto the button which shows a magnifying glass. Does a new
fractal appear?

In any case a counter will appear in the window where the fractal is drawn:
It shows you how many parameters ChaosPro has already tested while
searching for new reasonable parameters.


If the counter disappears, then ChaosPro thinks, the current parameters
lead to something useful. If the counter does not stop increasing,
then you
can press onto the search button again: ChaosPro will stop the current
search and restarts from scratch. Sometimes this helps, sometimes not.


If the counter disappears and the window is black, there are two reasons:

1. The fractal is outside the current view area (perhaps it is behind us, or
too wide left/right/up/down). So we zoom out (mouse wheel is the
most easiest thing) in order to check whether there is a fractal

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

anywhere.
2. If all stays black, then bad luck, the search yielded no valid result. We
then continue with the search and keep on clicking onto the search
button.
And at any time ChaosPro will find something. Keep on
searching, you won't break anything! Some people spend hours clicking
onto the search button and watching the results.


Not later than now you will become quite fast in mouse handling and using
the mouse wheel: When using the search function you need to constantly
adjust the position of the object: Sometimes it is far away then you need to
zoom in, the next object is too near and you need to zoom out in order to
see it completely.
Sometimes the object is not centered and is somewhere
near the edge of the window and you need to center it (you
remember...holding down Shift key will let us "move" the object instead of
rotate it).
And not later than now - if you use the search function - you will
recognize the benefit of the checkbox "Follow Object" in the view tab
which
automatically adjusts the viewpoint so that the object is halfway centered:
It spares yourself some work with the mouse.


If you have found an interesting
object then pause for a
moment: The object looks nice,
but how would slight variations
of it look like?
What if ChaosPro
would change the parameters by
random only slightly? ChaosPro
can do that: The slider at the
left side of the magnifying glass
specifies how strong the
parameters should be changed.
Normally the slider stays at 100
(unit: percent), that means, the
parameters will
be chosen
completely at random from the
defined range of values.
Fig. Search Settings

Set the slider to 0.5%. That will
instruct ChaosPro to change the parameters only by 0.5% of their defined
range of values based on the current value.
This is ideal in order to get only
slight variations or mutations. If you want stronger variations, choose a
higher value.


Now click again onto the magnifying glass. You will see: The fractal looks
quite similar to before, but it has changed somewhat.
Sometimes it has
changed to be more interesting, sometimes it will be more boring. If you
don't like the way the parameters are taking, then press Ctrl-Z or choose
the menu item "Fractal/Undo", in order to go back to the previous settings.


Using the search function in
ChaosPro is one way of finding
interesting objects. But of
course you can change the
parameters yourself by directly
entering numbers.
And
regarding that I now want to
describe another small new
feature which ChaosPro offers:

ChaosPro allows you to change
a number in an entry field not
only by typing in a new number,
but also using the mouse. This
feature is "general" and not
limited to the new fractal type
"Attractor": Whenever you see Fig. Parameter Change
an entry field with a number
inside, you can change it with the mouse.
Now how does it work:

Choose a digit from the number using the mouse (by selecting a
digit with the left mouse button).

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

Keep the left mouse button pressed, do not release it.


The digit which you've just selected defines how strong the
number will change.
After that move the mouse up/down while holding down the left
mouse button.

The digit which you selected will be increased or decreased while you move
the mouse up and down. See image at the right side, perhaps it helps a bit
to understand what I mean.


If there is the number 0.77903204 and for example you choose the
0.77903204, then you can easily explore how the fractal looks like,
if the
parameter is 0.78903204, 0.79903204, 0.80903204. This is easy going
with the mouse.


Round about 20 pixels on the screen correspond to a change of the
selected digit. By selecting the proper digit you can determine how much
the number actually changes.
As ChaosPro restarts the rendering each time
a parameter changes you can see quite fast, how the fractal responds to
changes of its parameters.


Enjoy yourself exploring fractals!

Let's sum up what we have done so far: ChaosPro can use an arbitrary
formula (Sphere, Polynomial A/B, or whatever formula) f1(z). You can add
another formula f2(z) after that formula (for example a random
displacement formula), thus the resulting formula will be f2(f1(z)).
You can
proceed doing so and add as many formulas as you like (or as it makes
sense), in order to get interesting effects.


Now to something new: It is not only possible to add a formula after
another formula, but also to create a new formula sequence in addition to
the existing one(s). Until now we worked with a single formula sequence:
We had a sphere formula, added a random displacement formula. That's it!

But internally ChaosPro chooses a random formula sequence in each
iteration. As we had only a single formula sequence, the same sequence
has been chosen.


It's possible to create a "new" formula sequence: This is basically done for
IFS fractals: They contain several formula sequences, each sequence

consists of a simple matrix multiplication and a vector addition. A single
formula sequence there would yield either a single point or a sequence of
points which go to inifinity - not too exiting!
But if you choose several
sequences of formulas and thus allow ChaosPro to randomly choose one of
the formulas for each iteration, apply it, choose another formula randomly,
apply it, etc., then very interesting new objects will appear.


Let's try this out in order to
show something of the flexibility
of this fractal type: Let's choose
three formula sequences, each
sequence consisting of a single
formula - a linear
transformation formula (which
effectvely does a matrix
multiplication plus a vector
addition).
ChaosPro has a little-
known feature, the so called
"Presets": These are different
default settings for fractals,
ment to be starting points for
exploring.
If you like you can
create your own additional
presets, starting points for Fig. Presets
fractal exploration. You obtain a list of presets by clicking with the left
mouse button
onto the small arrow within the formula button (at the right
side of the formula button) - or by clicking with the right mouse button
onto the formula button.
A popup menu will appear which lists the currently

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

defined presets.

The list might look different than shown in the image, that's because I am
writing this tutorial before the final release of ChaosPro - but the idea
behind that stays the same.


We now select the menu item "Select IFS": Now our fractal will be changed,
the parameters and formulas assigned to this preset will
be assigned to our
fractal.

A quite interesting fractal. As you


can see, the formula with the
name "Scale, Shear, Rotate,
Displace" has been assigned
three times to it.
Of course the
three formulas have different
parameters. This is what makes
it interesting.

You can also see that "weight"


and "color" is different for each Fig. Formulas
formula:

The "weight" defines how often ChaosPro will choose this formula compared
to the other one. If formula #1 has weight=1 and formula #2 has
weight=8, then formula #2 will be chosen 8 times as often as formula #1.

And "color" assigns a unique color to the formula which allows a coloring
formula to reference that parameter and create interesting coloring effects.


But I want to show what's else possible: At first we choose another color
palette, I like "Volcano". The toolbar contains the palette icon.
Rotate,
zoom in/out to get a feeling of what this actuall is.


And now I want to distort this fractal using the beforehand used formula
"Perlin based FBM". One difficulty now is that we have three formulas and
thus
we now must add the new formula to each of the three formulas if we
want to displace the points.


So we select the first formula and add the formula "Perlin based FBM" from
AttractorTrafo.cfm. And in order to displace the final point and not to
modify the input for the next iteration (and thus the overall shape of the
whole IFS fractal) we
mark the checkbox "Final" and thus tell ChaosPro,
that this formula should be applied immediately before the pixel will be
drawn.

Then we select formula 2, add "Perlin based FBM", make sure that "Final" is
checked. The same procedure for formula 3.


You can see, the fractal looks a little bit distorted! In order to distort it
further, choose Scale=0.4 for formula "Perlin Based FBM" for each of the
three formulas.
It's a little bit cumbersome to constantly switch between
three formulas if you want to change some parameter in all of them. But
that's life!

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it


Looks promising? Yes, could be more beautiful, but it's up to you to
explore!


Now if you have some spare hours left (well, in fact: not you, but your
computer), then you could render an animation, a very simple one, just to
show you that this *is* possible:

Please open the


animation window and
add the current
fractal: Simply click
onto the button "Add".
A copy of the current
fractal will be added to
the animation.
Then set Scale=0 on all
three formulas in
order to remove the
random displacement.
Add the fractal with the
new settings to the Animation Window
animation by clicking the button "Add" again. A copy of the
current fractal will be added.
How much time do you have? How much time did it need to render
the fractal? My computer needed 1 minute for the fractal, I have
2 hours spare time, thus I can now render 120 frames. This will
give a smooth animation I think...ok, why not?
I drag the second
key frame in the animation window and pull it down until there
are 120 frames between the first one and the second one.
Ok, finished, rendering the animation can start, please click onto
the button "Start" in the animation window.
After choosing a file name ChaosPro will ask for the compression
to use. I always use "no compression", as I always will use
another animation editing tool which allows me to experiment
with different compression/quality ratios, depending on my
needs: If I want to upload an animation to my homepage, then
the size should not be too big. If I want to show a friend such an
animation, then the size does not matter, quality is what matters!

This is of course best done with a perfect animation which then
can be downsized to your needs.

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it


It's very easy to create an animation. And by viewing the animation you
can see the effect of the "Scale" parameter. It seems to be only a
multiplicator for the displacement: From 0.4 (displacement) slowly moving
to 0 (no displacement).


If you like you can rotate the fractal during, zoom in/out, you can add
dozends or hundreds of keyframes, just as you like. I only show you a few
basic possibilities, just let your imagination run wild.


ChaosPro also has further render modes: A render mode determines "how"
ChaosPro renders the object from all the millions of points. Until now we
used the render mode "Solid":
In this render mode ChaosPro tries to form
an object and lets shine light onto it in order to make the object solid.
The
different points are used as samples for the whole object. This works quite
well for solid objects (like a sphere), but sometimes areas of the object are
hit too rarely, thus too few points are calculated for that area thus the
object looks somehow perforated.


But there are also other render modes:
My favorit is the "Flame" mode, well-
known due to flame fracals (you might
google for that).
The main trick done by
this algorithm is that it counts how often
a pixel on the screen gets hit and then
the logarithm for that will be calculated
- just to get to the point.
As it operates
on screen pixels the 3D effect basically
is thrown away - it's not possible to
render a light and light is very important
for the perception of 3D.
but on the
Render Mode other hand the object looks transparent
and unveils its inner structure. Due to
the logarithm applied to pixels the object still looks like 3D (dense areas
seem to be in front, sparse areas seem to be far away), but it does not look
realistic, it looks unnaturally beautiful.


Interestingly the flame coloring algorithm not only works for flame fractals,
but quite well also for many other 3D fractals (although not ment for
them!).
Just choose the flame mode for our current fractal: Choose the
"Parameter" tab, choose the "Flame" render mode.

And suddenly our fractal is rendered - well - transparently?


One thing to mention: The flame coloring algorithm needs a proper coloring
formula which makes use of the additional information and creates correct
colors from the density.
Thus you need the coloring formula "Weighted
Sequence" or "FlameSequence". The IFS by default has "Weighted
Sequence", and due to that we do not need to change something here.
But
if you explore your own objects and the object looks boring it might be due
to the wrong coloring formula.

Using a suitable coloring formula creates astonishing effects.


If there exists a flame render mode, then it's for sure not a big step
towards flame fractals: Right!
As a waste product ChaosPro then can render
flames as well.
But the "normal" flame fractals are 2D fractals and
ChaosPro renders in 3D. Well, ChaosPro does not care, it works! Flame
fractals can be rendered without problems,
but as they are only 2D objects,
only a colorful plane will appear. You won't notice that though - only if you
rotate the flame object: It's razor-thin!


But exactly this adds zest to it! With ChaosPro it is possible to extend the
flame formula into the third dimension (i.e. adjust the single components of
the formula itself to produce a new 3D point instead of a new 2D point) and
then to render
true 3D flames!
If you know flames and then imagine that
these objects are 2D pixels renders with a special algorithm, then you
might get excited how the result would look like if done in true 3D.
So it
sounds incredibly interesting: There exists a special formula "3D
Superfunction" in "AttractorFlame" which does exactly that: The resulting
flame fractals then are true 3D fractals. They look quite similar to standard
2D flames, but
it's possible to rotate them.


Ok, enough talk: How do we get

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

a Flame? Using Presets! Simply


click onto the formula selecton
button using the right mouse
button. And from the list of
presets choose "Select Flame
2D".


The next step is the same as in
Apophysis or UltraFractal: You
start a random search for new
useful parameters.
So you do in
ChaosPro - the magnifying glass
instructs ChaosPro to perform a
new search.


But beware, a short note: Fig. Presets
Flames are somewhat special: If you look at the formula of the flame, then
the overall structure is that the
flame master formula contains round about
50 completelty independent small formulas.

You can see that in the parameters listed: There are many of them! And
normally a flame fractal only uses only a few of those 50 formulas,
the
others not. Otherwise the flame fractal would be too mixed up - and in
order to be "nice" for a human being, there must be some kind of
order in
the chaos. Additionally too many active sub formulas just let rendering time
increase.

So we need to tell ChaosPro to search,


but choose only some of the 50 sub
formulas. How do we do that?

Well, the formula for the flame fractal


uses a special feature of ChaosPro made
for such issues: It tells ChaosPro that
there are many
sub formulas inside the
main formula. And ChaosPro then offers
the possibility to choose some of them at
random and then randomly
chooses
parameters for these formulas.

This is all done if you right click with the
mouse onto the search button. See
image at the left side: A small popup
menu will appear
which offers us the
possibility to choose 5, 10, all or just
keep the current ones and then to
choose the values of the remaining
parameters at random.

So choose "5 Vars" from the section "All


Fig. Flame Search Formulas": This will activate exactly 5
sub formulas from the first flame
formula, then choose values for the remaining parameters at random, then
choose another 5 sub formulas from the second flame formula, for the
third, fourth, etc., until all formulas have been randomized.

Ok, now search can start: If you've chosen the menu item, ChaosPro starts
the search. By the way, ChaosPro keeps in mind what you have chosen.
So
the next time you want to search you only need to click onto the search
button with the left mouse button and do not have to right click, choose
item from popup menu.

After some time you for sure have found an interesting flame fractal. Then
you would like to render a few mutations, perhaps it gets more
interesting:
As before we just set the slider aside to 5%. And then we right click (!!)
onto the search button and choose the item "Keep"
in the section "All
Formulas".

This instructs ChaosPro to keep the current sub formulas and only slightly
changes the parameters. The sub formulas itself define the overall
structure of the flame, if another sub formula would be chosen, then the
flame would
change completely. Using "Keep" prevents that.
The result

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Attractor Tutorial - How to use it

then are mutations.

So much for flame fracals. The 3D-Flame function is labelled "3D


Superfunction". If you like you can replace the "normal" flame functions
with that one and
then continue your search. Have fun!

Now the tutorial is at its end. There is still much to explore for you, for
example the light. But these settings are more intuitive because
they have
a reference to the real world. But formulas and render modes and all that
stuff is really confusing!
Perhaps a few ideas for you:

Experiment with colors and coloring formulas! Colors are one of


the most important things! A completely chaotic fractal may
unveil a beautiful structure if proper coloring is used!
Try to attach different formulas, for example Polynomial A/B and
then Pickover, or any other formula! Why not? Essentially the
resulting objects then are more complex than just a single
formula.
Search for IFS fractals on the Internet - the class of IFS fractals is
huge! For example there is a program called Xenodream,
which
only renders IFS fractals - and for these of course offers much
much more than ChaosPro! It's a very exiting program,
unfortunately not freeware,
but Garth Thornton and Virginia
Sterling deserve my deepest respect for such a great program!

And you can see how complex IFS fractals can become, although
the base formula is very simple!

http://www.chaospro.de/documentation/html/programdescription/tutorial_attractor.htm[12/16/2018 2:25:39 PM]


Appendices

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes A. Appendices
Using Formulas
Layering in ChaosPro

The appendices collect different information not directly related to the
Rendering previous chapters.
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix
Keys Help
Program Directories
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For...
History
ChaosPro - FAQ
Quaternion Math
Credits

http://www.chaospro.de/documentation/html/appendix/appendix.htm[12/16/2018 2:25:46 PM]


Keyboard Support in ChaosPro

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Keyboard support
Using Formulas
Layering in ChaosPro
Rendering
ChaosPro can be controlled not only by using the mouse, but also by using
Fractal Parameter Windows the keyboard.
Windows
The following more general key combinations exist:

Menu
Shift + <Return> Starts the fractal calculation
3D Transformations
Animations ALT + Tab-key Windows hotkey: activates the next window
Formula Compiler Closes the current window. If the keyboard
Compatibility focus is on an element inside a window,
Fractal Type Reference the keyboard focus will be given to the
parent (i.e. the window). You then have to
Tutorials press ESC twice: The first key press will
Appendix remove the focus from the entry field, the
Keys Help ESC second key press will close the window.
Program Directories F1 Opens the help window.
Configuration Settings F2 Lets you rename the current fractal.
Trouble Shooting and Knows Bugs
Shift+F2 Lets you rename the current folder.
Searching For...
History Refresh: By pressing F5, the fractal gets
F5 recalculated.
ChaosPro - FAQ
Quaternion Math Refresh: By pressing Shift+F5, the fractal
Credits gets redrawn, i.e. the colors get reassigned
Shift+F5 (same as re-assigning the current palette).

Many menu commands can be accessed by using a hotkey. Have a


look at the menu commands to see the hotkeys.

The various input elements in ChaosPro can be activated using a
hotkey, too. The following rules apply:
Input elements which can be activated using
the keyboard indicate this by an underlined
character in their label, or, in case of
elements without a label, by the tooltip,
which then contains a description of the
shortcut. The shortcut can be activated using
ALT + <key>, where <key> is the key
indicated by the underlined character or
Input elements specified in the tooltip
ChaosPro sometimes uses a combination of a
slider and an entry field for adjusting a
parameter, for example when specifying the
number of iterations. In this case the
shortcut will activate the entry field. If you'd
like to activate the slider, you need to hold
down the Shift key, too. So for example
ALT+I activates the entry field, ALT+Shift+I
Slider/entry activates the slider.
The different tabs of a tabcontrol don't use
the ALT+<key> combination in order to not
interfer with the standard key combinations.
Instead, you need to press either ALT+Ctrl+
<key> or Ctrl+Shift+<key> (both
Tabs combinations will work).

http://www.chaospro.de/documentation/html/appendix/keyshelp.htm[12/16/2018 2:25:54 PM]


Keyboard Support in ChaosPro

The fractal window itself has several key actions.


Pressing the right mouse button over a list view normally brings
up a context menu. Whenever you feel like a command is
missing, try it with the right mouse button and see whether there
is something in the context menu.
ChaosPro uses the normal Windows behaviour for selection: For
example in the palette editor window: There are many control
points. If you want to select many control points at once, draw a
selection frame around them. If you then want to add control
points to the selected control points, hold down the shift key and
draw another selection frame or select additional control points.
If
you hold down the shift key and then move around a control
point you can see that all selected control points stay selected
and can be moved around at once. If you release the shift key
and select a control point, all other control points will be
deselected.

The same applies for the alpha channel window or the 3D


transformation window (height transformation field): Holding
down SHIFT allows multi selection.

Changing numeric values in entry fields


ChaosPro allows you to change
a number in an entry field not
only by typing in a new
number, but also using the
mouse. This feature is "general"
and not limited to specific
numeric fields: Whenever you
see an entry field with a
number inside, you can change
it with the mouse.
Now how
does it work:

Choose a digit from


the number using the
mouse (by selecting a
digit with the left Fig. Parameter Change
mouse button).
Keep the left mouse button pressed, do not release it.
The digit which you've just selected defines how strong the
number will change.
After that move the mouse up/down while holding down the left
mouse button.

The digit which you selected will be increased or decreased while you move
the mouse up and down. See image at the right side, perhaps it helps a bit
to understand what I mean.


If there is the number 0.77903204 and for example you choose the
0.77903204, then you can easily explore how the fractal looks like,
if the
parameter is 0.78903204, 0.79903204, 0.80903204. This is easy going
with the mouse.


Round about 20 pixels on the screen correspond to a change of the
selected digit. By selecting the proper digit you can determine how much
the number actually changes.
As ChaosPro restarts the rendering each time
a parameter changes you can see quite fast, how the fractal responds to
changes of its parameters.

http://www.chaospro.de/documentation/html/appendix/keyshelp.htm[12/16/2018 2:25:54 PM]


Program Directories

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes A.1 Program Directories
Using Formulas
Layering in ChaosPro

Although you can change the directory structure, ChaosPro's default
Rendering directory structure and the meaning of each directory is as follows:
Fractal Parameter Windows
Windows Base directory
This is where the ChaosPro program itself (the executable) is
Menu located. The configuration file ChaosPro.cfg is loaded from this
3D Transformations directory and written into it.
Animations
Formula Compiler Anims
Compatibility This directory is the default for loading and saving parameter files
describing an animation and AVI files. The animation file
Fractal Type Reference
requesters point to this location.
Tutorials
Appendix
Formulas
Keys Help At program startup ChaosPro scans this directory for formula files
Program Directories (*.frm) containing formulas. This can be changed by specifying a
Configuration Settings different directory in the file ChaosPro.cfg
Trouble Shooting and Knows Bugs
Searching For... Fractals
At program initialization this directory will be scanned for
History parameter files (*.par files). All parameter files found in it and all
ChaosPro - FAQ fractal entries are loaded. Again, this can be changed by
Quaternion Math specifying a different directory in the file ChaosPro.cfg.
Credits

Palettes
At startup of ChaosPro this directory is scanned for *.map files
describing palettes. All maps which are found in it are
automatically loaded. Yet again, this can be changed by
specifying a different directory / different directories in the file
ChaosPro.cfg

Pictures
That's the default directory for saving and loading images.

http://www.chaospro.de/documentation/html/appendix/directories.htm[12/16/2018 2:26:01 PM]


Configuration Settings

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes A.2 Configuration Settings
Using Formulas
Layering in ChaosPro

The configuration file is called ChaosPro.cfg and resides in the same
Rendering folder as the executable file ChaosPro.exe. It is automatically loaded at
Fractal Parameter Windows startup, so if it contains nonsense, ChaosPro could refuse to start.
Windows

The file contains a series of very useful entries. Until now I did not have
Menu enough time to write a configuration tool. So you have to load this file into
3D Transformations any ASCII editor (Notepad for example) to change entries.
Animations

The file format is something like follows:
Formula Compiler
Compatibility <Identificator>   <arg1>    <arg2>     ...   <argn>
Fractal Type Reference
Tutorials
Where <Identificator> tells ChaosPro what to change and <arg1> to
Appendix <argn> how.
Keys Help
The first entries in the configuration file will be window positions and a flag
Program Directories whether they have to be automatically opened at startup. For example:
Configuration Settings
Parm1 279 123 0
Trouble Shooting and Knows Bugs
Searching For...

tells ChaosPro that Parameter window 1 is positioned at x=279, y=123, but
History is not automatically opened. When you open this window, it will appear at
ChaosPro - FAQ 279/123.
Quaternion Math

There will be several such entries, currently these are (some more might
Credits appear in future version):

Identificator
Description
Parm1
Parameter Window 1

Parm2
Parameter Window 2

Dims1
3D Parameter Window 1
Dims2
3D Parameter Window 2
Dims3
3D Parameter Window 3

Area
Area Window
PalEdit
Palette Editor Window
FormulaJM
Formula Editor Window (for
Julia/Mandel)
Output
Messages Window
Colormapping
Colormapping Window
Anim1
Animation Window 1
Anim2
Animation Window 2
FractSel
Fractal Selection Window
Colorcycle
Colorcycling Window


After the window entries there appear other interesting entries:

DrawingSpeed <arg1>
ChaosPro calculates most of the fractals line by line. So after
calculating a line the line could be drawn. But this way for a
fractal of size 640 x 480 there would be 480 draw commands.
Lets assume that a single draw command (Win32 API call) takes
about 10 milliseconds (Much of that time is overhead used up in
the GPI sub system of Win32, so it does not matter very much
whether one issues a command for drawing a single line or 10
lines). Then every fractal will need 4.8 seconds ONLY for drawing,
not taken into account the time needed to actually calculating it.

http://www.chaospro.de/documentation/html/appendix/configuration.htm[12/16/2018 2:26:06 PM]


Configuration Settings

Lets assume you calculate the standard Julia set, which needs a
calculation time of, say, 3 seconds. Then ChaosPro would need
7.8 seconds instead of 3 due to all those drawing commands.
Wouldn't it be nice if ChaosPro would calculate the whole fractal
and draw it as a whole at the end (after 3 seconds) with one
single draw command? This way ChaosPro would need 3.01
seconds.

Now lets assume you calculate a very nice, complicated fractal,


which takes 5 minutes. Here it does not matter, whether it takes
5 minutes or 5 minutes and 4.8 seconds. So in this case
ChaosPro should draw every line as soon as it is calculated.

To solve this 'problem' the parameter 'DrawingSpeed' exists: It


specifies, how often ChaosPro issues a drawing command. The
time is specified in milli seconds. After a line has been calculated
ChaosPro tests whether the time elapsed since the last drawing
command exceeds the time specified by this parameter. If no, it
does not draw the line now. If yes, it draws all lines, which have
been calculated since the last draw command.

In other words: ChaosPro adds up lines until the specified time


has elapsed and then issues a drawing command.

Reducing 'DrawingSpeed' results in more overhead for drawing


commands, but you will see a 'smoother' drawing (line by line in
the extreme case). Increasing 'DrawingSpeed' results in less
overhead for drawing commands, but the image is drawn in
whole bunches of lines. It's your choice now...

GUIFont <height> <bold>


SmallFont <height> <bold>

These two parameters define fonts to be used by ChaosPro.


GUIFont defines the font used by all graphical elements and
SmallFont defines the font to be used whenever small elements
have to be drawn where the normal font perhaps would be too
large. For example, the text below the tick marks of a slider is
drawn using the font defined by SmallFont. <bold> can be either
0 for FALSE or 1 for TRUE. <height> specifies the height of the
font.
If the font name contains a space character, then you have to
place the name in quotation marks.

ChaosPro <Posx> <Posy> <Width> <Height> <Maximized>

This parameter specifies the position and size of the main


application window. Maximized=0 tells ChaosPro to show its main
window in normal state, Maximized=1 tells ChaosPro to maximize
the main window at startup.

CNF_... <arg>

<arg> can be either 0 (no confirmation necessary) or 1


(confirmation necessary)
These items specify whether ChaosPro pops up confirmation
message boxes if deletion operations are performed.

Identificator
Responsible for
CNF_DelTask
Closing the fractal calculation window (= deleting
calculation task)
CNF_DelProj
Deleting a fractal project
CNF_DelPic
Deleting a fractal data structure from the drop down
combo box.
CNF_DelPal
Deleting a color map

http://www.chaospro.de/documentation/html/appendix/configuration.htm[12/16/2018 2:26:06 PM]


Configuration Settings

CNF_DelFrm
Deleting a formula
CNF_DelAnm
Deleting an animation
CNF_End
Exiting ChaosPro

ProjectPath path_1;path_2;path_3;...;path_n
This identifier defines various directories to scan for parameter
files (*.par files) at program startup. So if you have a collection
of FractInt *.par files and want to automatically load these files at
startup of ChaosPro, you can set the project scan path to the
corresponding directory/ directories.

PalettePath path_1;path_2;path_3;...;path_n
Same as for ProjectPath: This entry specifies directories to scan
for palette files (*.map-files) at startup.

FormulaPath path_1;path_2;path_3;...;path_n
Just the same as before: This entry specifies directories to scan
for formula files (*.frm-files) at startup.

CompilerFormulaPath path_1;path_2;path_3;...;path_n
Just the same as before: This entry specifies directories to scan
for compiler formula files (*.cfm,*.ctr,*.ccl-files) at startup. It
defaults to "ChaosPro\Formulas\Compiler". Please do not place
any *.frm, *.ucl, *.uxf or *.ufm formula file into this search path
as then ChaosPro will constantly try to convert that file (time
consuming and annoying).

AnimPath path
This identifier specifies where animations and animation data files
are stored.

PicturePath path
This identifier specifies where images of fractals are stored.

http://www.chaospro.de/documentation/html/appendix/configuration.htm[12/16/2018 2:26:06 PM]


Troubleshooting and Known Bugs

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes A.3 Troubleshooting and Known Bugs
Using Formulas
Layering in ChaosPro
A. Troubleshooting
Rendering
Fractal Parameter Windows 1. Problems during run time
Windows

Well, most of the time the 'troubles' will be bugs, which need to be
Menu reported to the author to remove them. So I can't give you hints here.
3D Transformations
Animations
2. Problems at startup
Formula Compiler
Compatibility
The program crashes at startup? Following are a few hints which might
help:
Fractal Type Reference
Tutorials Delete 'ChaosPro.cfg'
Appendix
This file contains configuration settings. It can happen that the
Keys Help
configuration is invalid. If you delete it ChaosPro will start up
Program Directories using default settings, which should work.
Configuration Settings
Trouble Shooting and Knows If ChaosPro crashes on startup it might be that it's because a
Bugs render job is buggy.
Searching For...
As the render jobs are saved on exit and loaded and started (!) at
History startup, this will become a problem if there is a buggy render job.
ChaosPro - FAQ
In order to manually delete all render jobs which will be executed
right after startup go the common repository for application-
Quaternion Math specific data,
which normally is in c:\Documents and Settings\
Credits <username>\Application Data. There's a folder called

"ChaosPro/RenderJobs" in it. Delete all files in the directory
"RenderJobs" and try to start ChaosPro.
Starting ChaosPro needs much time
I would suspect that you have many parameter files and formulas
in the search path of ChaosPro. In contrast to FractInt ChaosPro
loads all formulas and parameter files at startup. Especially
formulas need much time to load, as they are parsed on loading.
Try to remove formulas (and/or parameter files), which you do
not need every time. You can load them into ChaosPro when you
really need them. This saves time and memory.
B. Known Bugs

Palette problems
If you use a 256 color display then ChaosPro is forced to use the
palette manager. Basically there are 256-20=236 colors
available: 256 colors in total, and 20 colors reserved for the GUI
elements of Microsoft Windows. If an application uses more than
those 236 colors, then these colors are mapped onto existing
ones, thus errors can occur. Well, not enough, there seems to be
a bug in the palette manager: If one allocates more than 236
colors for exclusive use (exclusive is necessary for color cycling),
then the result in some rare cases is that some colors are totally
wrong and cannot be changed. This effect occurs quite often if
one uses more than 252 colors. Upto 252 colors this problem
occurs only rarely. And that's the reason why ChaosPro uses only
252 colors. If it occurs, you have bad luck. The only way to fix it
was/is to quit ChaosPro and to restart it...

PNG image file corrupt


Sometimes it can appear that the PNG image file cannot be loaded
by other applications, specifically PaintShop Pro 5.0. This is a bug
in PaintShop Pro, and not in ChaosPro: It happens whenever the

http://www.chaospro.de/documentation/html/appendix/troubleshooting.htm[12/16/2018 2:26:12 PM]


Troubleshooting and Known Bugs

"Text" chunk in the PNG file containing the parameter file entry to
recreate the fractal image exceends a certain size. PaintShop Pro
can handle PNG files with such text chunks only upto a certain
size (which depends on how good the chunk can be compressed,
i.e. what it contains...).
To avoid that problem you need to use another image viewer or to
update it.

AVI file playback: Colors wrong


On displays running in high color mode (15 bit/16 bit) the
Windows Media Player is not able to correctly play the AVI file: It
seems as if it does not convert the 24 bit colors (3 x 8 bit RGB) to
16 bit, thus the colors are wrong. This is not a bug in ChaosPro,
it's an "issue" in the Windows Media Player: It is not able to
correctly handle high color display modes.
Switch to true color mode to play back the AVI files or use another
AVI player.

http://www.chaospro.de/documentation/html/appendix/troubleshooting.htm[12/16/2018 2:26:12 PM]


Searching For...

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes A.4 Searching for...
Using Formulas
Layering in ChaosPro
Perhaps you have noticed it: My english is not too good. So I'm
Rendering looking for somebody why is willing to correct this
Fractal Parameter Windows documentation, so native english speakers don't get headaches
Windows during reading this online help.
Menu
3D Transformations If you have interesting parameter files, formulas, palettes, then I
would be glad if you send them to me, so I can create a collection
Animations
of these. Of course, there are already thousands of parameter
Formula Compiler files, palettes and formulas for FractInt, and ChaosPro can use
Compatibility many of them, but perhaps you incorporated interesting new
Fractal Type Reference features in them...
Tutorials
Appendix If you know how to improve the online documentation, then you
are welcome to rewrite some chapters. I did not want to spend
Keys Help too much time in writing it, I thought it would be more important
Program Directories to write ChaosPro itself.
Configuration Settings
Trouble Shooting and Knows Bugs If you know of features missing in ChaosPro, let me know.
Searching For... Depending on the available time I will improve ChaosPro.
History
ChaosPro - FAQ
Quaternion Math
Credits

http://www.chaospro.de/documentation/html/appendix/searchingfor.htm[12/16/2018 2:26:19 PM]


History

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix
Keys Help
Program Directories
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For...
History
List of Changes from V1.0 to V2.0
List of Changes from V2.0 to V2.1
List of Changes from V2.1 to V3.0
List of Changes from V3.0 to
V3.02
List of Changes from V3.02 to
V3.1
List of Changes from V3.1 to V3.2
List of Changes from V3.2 to V3.3
List of Changes from V3.3 to V4.0
List of Changes from V4.0.189 to
V4.0.228










ChaosPro - FAQ
Quaternion Math
Credits

http://www.chaospro.de/documentation/index22.html[12/16/2018 2:26:25 PM]


History

http://www.chaospro.de/documentation/index22.html[12/16/2018 2:26:25 PM]


Changes from ChaosPro V1.0 to V2.0

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V1.0 to V2.0
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Tutorials
Appendix
Keys Help List of Changes
Program Directories
Configuration Settings
Bug fixed: Formulas can be changed during run time.I spent much
Trouble Shooting and Knows Bugs
time in programming the formula editor. And what happened? I
Searching For... added another window with another feature, so that a multiline
History edit field can be read only. But I did not test the other MLE's. So
List of Changes from V1.0 to suddenly the multiline edit field, where you should type in your
V2.0 formula was read only, too. I did not recognize that :-(Btw.: The
List of Changes from V2.0 to V2.1 same bug appeared in the comment window, so you were not
able to change the comment of a fractal.
List of Changes from V2.1 to V3.0
List of Changes from V3.0 to Changed: Tab control in animation window.
V3.02 It was quite unconvenient to have two windows for creating
List of Changes from V3.02 to animations. So I decided to use a tab control, which has two
V3.1 tabs: Both animation windows now are just tabs in a single
List of Changes from V3.1 to V3.2 window.
List of Changes from V3.2 to V3.3 Bug fixed: ChaosPro crashed, if you manually entered a value into
List of Changes from V3.3 to V4.0 the offset field of the palette editor window and closed that
window while the entry field still was activated (because
List of Changes from V4.0.189 to
ChaosPro updates the offset value as soon as the entry field
V4.0.228
looses its focus ==> if you close the window, the color display

fields are deleted, after that the entry field is deleted, thus it
looses the focus, thus ChaosPro wants to set the new offset, but
the color display fields already are deleted...)
Note: For the same reason the size window crashed, if you
entered a number and closed the window. Applies to many other
windows, too...

Changed: On loading a PNG image ChaosPro always added
scrollbars to a window. This has been changed: Now ChaosPro
only adds scrollbars if necessary (i.e. if image to be loaded would
ChaosPro - FAQ be too big to fit into a window).
Quaternion Math Bug fixed: If you loaded a PNG fractal image and then redraw the
Credits fractal (NOT recalculated), then the fractal was single coloured.

Fixed: Fractal now will be completely recalculated.
Bug fixed: If you move an animation key frame outside the
animation keyframe timeline, then mouse moves are still
accepted. This enables you to move the last animation key to a
later position.

Changed: Animation ‘Smooth’ button removed. It had no function.
New: If you add the first animation key to an animation (i.e.
create a new animation), then the animation name automatically

http://www.chaospro.de/documentation/html/appendix/history/history2_0.htm[12/16/2018 2:26:34 PM]


Changes from ChaosPro V1.0 to V2.0

is set to the name of that fractal. You can change it afterwards, if


you like. If you add an animation keyframe, then always the
animation width and height are initialized to the current fractal
values (i.e. animation size = size of fractal to be added as
animation frame). You can change it right before actually
calculating the animation, but I think, if you add a fractal of size
480x360 to the animation system, then you expect the animation
to be in the same format...
Changed: If you start an animation in AVI mode, then the file
name in the Save As dialog already shows a *.avi extension, if
not existant in the animation name itself...
Bug fixed: Animation system now checks whether recalculation of
animation fractal frame is needed. So for example you can create
a palette morphing animation, where only the first frame will be
calculated, after that only the next palette is applied.
Bug fixed: If you started an animation and during the initialization
routine an error occurred, then ChaosPro crashed.
Bug fixed: If there were more than one fractal calculated and you
added (or removed) a scrollbar from one fractal window, then
suddenly the other fractal was activated. Fixed now, switching to
scrollbar mode does not change the currently activated fractal.
Reason for this behaviour: Add/Remove a scrollbar means: Close
the window, open the window with/without scrollbars ==> When
closing the window, automatically another window gets the focus,
thus ChaosPro thinks that another fractal has been activated. The
message loop thread then activates the other fractal, while the
original routine continues opening the window of the other fractal
with/without scrollbars...
Bug fixed: Switching to/from scrollbar mode doesn't redraw the
fractal any more. Minimizing/Restoring a fractal image does not
redraw the fractal any more, too.
Bug fixed: Due to an unknown reason I always added 1 to the
vertical height whenever calculating the client area of a window.
This resulted in fractal images being one pixel too height
whenever calculating them. I don't know why I added that pixel,
but I do know, that there was indeed a reason. If you now
encounter some windows, which seem to be one pixel too small,
please let me know...
New: Size window now contains some more default sizes,
2048x2048 has been removed from the list (just to keep the
window small...)
Bug fixed: Palette animations did not work with Tiera_Julia and
Tiera_Mandel: The algorithm used the normal palette in the
fractal itself, which does not change, instead of the palette being
calculated by the animation system. (fixed now)
Bug fixed: Reloading a saved animation parameter file did not
work.
Bug fixed: Converting an animation to fractal pictures (using
Convert-button) did not create palettes. Now palettes get
created. This may result in many palettes appearing in Palette
combobox...
Bug fixed: Animation system used HSV coloring model for palette
interpolation. Although this model is great if you want to calculate
a smooth range from one color to another, it is a bad idea if used
for palette morphing:
Example:
Palette 1, Index 153 is : 0 178 228 ( RGB )
Palette 10, Index 153 is: 231 0 3 ( RGB )
Palette 1, Index 154 is : 0 174 232 ( RGB )
Palette 10, Index 154 is: 235 0 0 ( RGB )What happens, if you
interpolate the two colors, lying directly beneath?
Index 153 should interpolate between a H-value of about 185

http://www.chaospro.de/documentation/html/appendix/history/history2_0.htm[12/16/2018 2:26:34 PM]


Changes from ChaosPro V1.0 to V2.0

degree to 0 degree
Index 154 should interpolate between a H-value of about 175
degreee to 0 degreeSo normally Index 153 would go as follows,
producing a smooth range (note that 360 degree =0 degree):
185...194...203...212... ... ... ... 351...0Index 154 would
interpolate as follows:
175...166...157...148... ... ... ... ...9 ... 0So both colors start with
a similar color and end up with a similar color, but the
interpolation takes totally different ways to each end color... So
an interpolated palette most of the time had sudden jumps in it,
which look unnatural...Now simple RGB interpolation is used.
Interpolated colors may look unnatural (i.e. if you interpolate
pure blue and pure yellow, an in-between palette will show
grey... 0 0 255 to 255 255 0 (RGB mode) increases R and G, and
decreases B, so after half of the steps you have 128 128 128
(==grey), which for a human being looks unnatural: For us there
is no grey between blue and yellow...
Changed: If you delete a palette, then the first palette in the list
was selected. Changed now: If you delete a palette, then the
previous palette gets selected (better if you have 50 palettes you
want to delete (created by Convert from the animation system):
Simply select the last palette and click onto delete...)
Bug fixed: Choosing another font did not work properly with the
new tabs in Animation window and 3D parameter windows.
Bug fixed: If you chose another font which contained spaces, then
the font was not saved/loaded correctly. So you were not able to
choose e.g. Arial Narrow. Fixed: Config file now recognizes fonts
with spaces correctly if enclosed by, e.g. Arial Narrow...
Bug fixed: Animations created by ChaosPro could not be loaded by
the ActiveMovie Control. Don't know why. All other players were
able to read those files. So I switched to another way of creating
AVI files, and now they can be loaded by ActiveMovie...
Changed: Compression Manager settings (Animation 2 window)
removed. The compression manager dialog gets automatically
opened as soon as an AVI file should be saved.
New: Slider to Animation window added, which lets you specify
the frames per second of the resulting AVI file.
New: Colormapping window now has two more controls, which let
you specify the range of the speed and accelerator sliders.
Bug fixed: If you switched to Scrollbar mode back and forth very
fast, the window size could change, as the routine accessed a not
fully initialized window.
Bug fixed: A minimized fractal window showed a size of 4x1 pixels
in the status bar. Fixed: Correct size is shown in the status bar.
Changed: Closing a fractal window activated the fractal belonging
to another opened fractal. Quite annoying if the other fractal
belongs to another folder, which then gets activated. Fixed now:
Closing a fractal window does not influence the currently
activated fractal. So if you close a fractal window, then after
closing it, the same fractal stays selected...(although maybe the
window of another fractal may have the keyboard and mouse
focus...)
Bug fixed: Errors appearing during creation of an AVI file were not
handled. Fixed: Error text now should give some hints about
whats wrong...
Bug fixed: Status bar did not show the correct fractal type for
Plasma fractal.
Bug fixed: Fractal Selection Window did not work with Tiera_Julia
and Tiera_Mandel fractal types.
New: Fractal Tree Window added. Because it seems to be quite
uncomfortable having two combo boxes, the one containing

http://www.chaospro.de/documentation/html/appendix/history/history2_0.htm[12/16/2018 2:26:34 PM]


Changes from ChaosPro V1.0 to V2.0

fractal projects, the other containing the fractals itself, I added a


window, which shows a hierarchical view of the projects and
fractals. This way you can reorganize the fractals, i.e. remove
them from one folder, adding them to another folder (simply by
drag and drop). Double clicking (or pressing return) on a fractal
starts the calculation.
Bug fixed: Again, I checked the routines for setting the fractal size
and removed an unconsistency, which could have lead to fractals
calculated at 640x481, but displayed in a window, whose size was
640x482...
New: Fractal Type Compound added.
New: Fractal type IFS (iterative function scheme, iterative function
system or whatever it is called) added. It is compatible to
FractInt, so you can load FractInt formula files (for example
FractInt.ifs from the FractInt distribution). ChaosPro is able to
accept formulas for each element, making it much more powerful
than FractInt (to be honest, not more powerful, but rather more
comfortable)...
Parameter window 1 for this type contains four parameters, which
you can refer to in each formula element. For example, you could
write 'p1' instead of '0.04' for an element, or you could write
'p1+sin(p2)' for another element. Each fractal you then create
takes its own parameters p1 to p4 and so calculates the resulting
formula on the fly. Formula editor for this fractal type will be
added in future (currently you have to edit that formula file by
hand and restart the program, just as in FractInt...)
New: Fractal type LSystem added, compatible to FractInt, so you
can load FractInt.l formula files.
Formula editor for IFS added, so you do not need to open a text
editor in order to edit a formula as you have to do in FractInt.
Formula editor for LSystem added, so you do not need to open a
text editor in order to edit a formula as you have to do in
FractInt.
Changed: Compound fractal: When adding a new layer to a
compound fractal, it gets automatically selected (thus mergetype
and factor are initialized).
Changed: Compound fractal: When adding a new layer or when
calculating a compound fractal, it is always placed in front of the
layers (and not behind all of them).

http://www.chaospro.de/documentation/html/appendix/history/history2_0.htm[12/16/2018 2:26:34 PM]


Changes from ChaosPro V2.0 to V2.1

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V2.0 to V2.1
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Tutorials
Appendix
Keys Help List of Changes
Program Directories
Configuration Settings
Bug fixed: New memory management system in ChaosPro
Trouble Shooting and Knows Bugs
detected several bugs,
where the program accessed invalid
Searching For... memory (this memory management system will be
removed in
History the final version):
List of Changes from V1.0 to V2.0 Fixed: Opening the formula editor window could produce
List of Changes from V2.0 to a crash
V2.1
Fixed: Deleting an animation key frame could produce a
List of Changes from V2.1 to V3.0
crash
List of Changes from V3.0 to
V3.02 Fixed: Loading a fractal could crash ChaosPro
List of Changes from V3.02 to Fixed: Opening a file requester could produce a crash
V3.1 (even at startup of ChaosPro, where the file requester
List of Changes from V3.1 to V3.2
structures were initialized)
List of Changes from V3.2 to V3.3
Fixed: Calculating a formula fractal accessed invalid
List of Changes from V3.3 to V4.0 memory (could have caused crashes)
List of Changes from V4.0.189 to
V4.0.228 Fixed: Compound fractal could crash on calculating.

Bug fixed: Subtype of fractals (formula, Julia/Mandel, etc.) has


not been saved.
Changed: Toolbar now has tooltip hints

Changed: Toolbar now is a system conform object and can be
adjusted using the system toolbar
configuration dialog.
Changed: Edit Controls with positive range (minimum>=0) do not
show '+' signs in
front of numbers

ChaosPro - FAQ New: Elimination and Periodicity checking logic added to
Quaternion Math Julia24/Mandel24 (makes calculation faster)
Credits New: Elimination and Periodicity checking logic added to

Julia/Mandel (makes calculation faster)
New: atan2 function added to formula parser

Bug fixed: Pressing the tab key did not take care of invisible
windows, i.e. pressing the tab
key could activate an invisible
window. Therefore deactivating that invisible window
could
produce a crash. So if you encountered crashes soon after
pressing the tab key
(and nothing visible was activated), then
perhaps it was this bug.

http://www.chaospro.de/documentation/html/appendix/history/history2_1.htm[12/16/2018 2:26:41 PM]


Changes from ChaosPro V2.0 to V2.1

Bug fixed: Mystery solved: Activating a window in ChaosPro did


not bring all application windows to front,
instead, they remained
at the z order position where they were...It all depended on an

invisible popup window (the popup window on all entry fields)
created at startup of the program.
Bug fixed: Message boxes in ChaosPro did block only input into
the main window, but not input into any other window.
Bug fixed: ChaosPro could crash, if the fractal coloring algorithm
produced strange values
(e.g. Julia24, Palette
mode=interpolated, Coloring=DEM, Bailout=1 ==> crash)
Bug fixed: Deleting a fractal did not update the fractal specific
parameter windows.
Instead, you had to select another fractal
manually.
Bug fixed: Renaming a fractal did not update the window titles.
Bug fixed: Saving a fractal image (as *.png) did not work, except
you saved any parameter
file before... ChaosPro simply crashed.
New: ChaosPro now can save images additionally in BMP and JPEG
format. Loading images
is supported only for PNG and JPEG
images, because only these formats allow storing parameters

inside the image.
Bug fixed: Double clicking an animation folder (Fractal Tree
Window) crashed ChaosPro.
New: Compiler added: Unlike the formula parser the compiler
additionally compiles the formula
(in native machine code),
therefore the formula normally runs at least as fast as if it
would
have been compiled using a C/C++ compiler.

When I say "at least", then I mean, that most of the time the
formulas run even faster,
which is not a mystery, because the
compiler in ChaosPro of course "knows" all about
complex
numbers, whereas a standard compiler does not know anything
and thus the user has
to code the operations using double
numbers...
New: Compiler Window added to administer compiler formulas:
There are three types of formulas: Transformations, iteration
formulas and coloring formulas.
New: Fractal Type Escape Time added: Uses compiler formulas,
replaces type="Formula"
New: Parameter window for Escape Time fractal added.
New: Import parser for Ultra Fractal formulas (transformations,
formulas, colorings) added.
Ultra Fractal formulas,
transformations and colorings can be loaded into ChaosPro. They
are converted on the fly into the
ChaosPro-syntax.
Bug fixed: Animations did not work most of the time: The
resulting AVI-file was bad.
Mainly this was due to the fact that a
codec silently produces crap if the input format is
not suitable (for
example, the Microsoft codecs can only handle 8 bit input ==>
AVI file is crap
if a 3D image is selected). Additionally, the Intel
Indeo 3.2 and the Cinepak codec won't
work at all (don't know
why). ChaosPro cannot hide these codecs (the codec selection
window
comes from the operating system). But now ChaosPro
warns the user if a wrong codec is
selected. If the codec can only
handle 8 bit images, then ChaosPro suggests to automatically

dither the images (if necessary).
New: Palette interpolation added (upto version 2.0 only linear
interpolation of palette
control points was possible)
Bug fixed: Moving interpolation control points in palette editor
could produce undesired additional control points.
Bug fixed: ChaosPro did not release threads, once allocated. Thus
each time a fractal was
calculated, about 16 KB of memory got
wasted. The number of threads so constantly increased.

http://www.chaospro.de/documentation/html/appendix/history/history2_1.htm[12/16/2018 2:26:41 PM]


Changes from ChaosPro V2.0 to V2.1

Changed: Toolbars now cannot be put in separate windows. Menu


items for those actions
have been removed.
Changed: Network support has been disabled. Because the code
needs to be rewritten and I have not enough time
the code has
been temporarily removed. The next version will be able to use
this feature again.
New: Fractal Type "Layered Fractal" added: Supplements the
"Compound Fractal" from V2.0, which is still there but should not
be used any more.
New: Import feature for UltraFractal parameter files (*.upr-Files)
added: ChaosPro can load Ultra Fractal *.upr-files (i.e. parameter
files). They get converted to fractal type "Layered Fractal". Please
note that you will need to download the Ultra Fractal formula
compilation in order to use Ultra Fractal *.upr files.
New: Fractal type Escapetime can be animated.
New: Fractal type "Layered Fractal" can be animated (thus *.upr-
files from Ultra Fractal can be animated).
Changed: Palettes now are not "referenced" any more: previous
versions of ChaosPro stored only references to palettes, i.e.
if you
had three fractals, all using palette "Matisse", and you then
changed this palette, ChaosPro
adjusted all three referencing
fractals. In other words: Each fractal had a parameter called
"palette name", and then
there was a list of palettes where each
element is identified by its name.
Now palettes are only presets:
Each fractal has an anonymous palette, and
you can change each
color using the palette editor window. All changes
affect only the
current fractal.


Basically nothing has changed. But now you do not end up with
thousands of palettes. You can have
thousands of fractals where
each fractal has its own specific palette, and the number of
palettes in the
palette drop down box stays the same...
Changed: Fractal type Compound removed. Although all routines
and windows still are there, you cannot directly
choose this type.
Please use the fractal type "Layered Fractal". For compatibility
you can load
old parameter sets from ChaosProV2.0. On load the
fractal type Compound will be created.
Changed: Fractals which use type=formula get automatically
converted to type=Escapetime. FractInt *.frm and old ChaosPro

*.frm formula files get automatically converted to compiled
formulas. The converted fractal then automatically uses
the
converted formula. You should not use the fractal type "formula"
any more...

http://www.chaospro.de/documentation/html/appendix/history/history2_1.htm[12/16/2018 2:26:41 PM]


Changes from ChaosPro V2.1 to V3.0

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V2.1 to V3.0
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Tutorials
Appendix
Keys Help List of Changes
Program Directories
Configuration Settings
Bug fixed: At program start ChaosPro tried to find out the IP
Trouble Shooting and Knows Bugs
adress of the computer it was running on (in case the user
Searching For... wanted to use the network calculation feature).
Although this
History feature has temporarily disabled, the code was still there and on
List of Changes from V1.0 to V2.0 some systems automatically an Internet
connection was
established (when you use dynamic IP adresses (DHCP), you get
List of Changes from V2.0 to V2.1
your final IP adress when connecting to the
provider). Now that
List of Changes from V2.1 to code has been completely removed. Under no circumstances any
V3.0 secret data transmissions have been done by ChaosPro.
List of Changes from V3.0 to
V3.02 Bug fixed: While scanning for convertable UltraFractal or FractInt
List of Changes from V3.02 to formulas ChaosPro often tried
to convert formulas which already
V3.1 had been converted. This happened because ChaosPro
compared
List of Changes from V3.1 to V3.2 the file names (name of original file and name of already
converted file) case sensitive, and sometimes
this produced
List of Changes from V3.2 to V3.3
wrong results. So ChaosPro did not find the converted file and
List of Changes from V3.3 to V4.0 wanted to convert it again.
List of Changes from V4.0.189 to Bug fixed: On several computers ChaosPro either crashed when
V4.0.228
saving an animation frame or the whole animation was corrupt.


The exact behaviour varied. On some systems it was nearly
impossible to create any AVI files, on some systems a few
codecs
worked. I think I have found a bug in ChaosPro. Now on my
system all codecs work. Let me
know if you encounter problems
with the animations created by ChaosPro.

Changed: Image Manipulation feature did not work on 3D images
(Smooth, AntiAlias, Enhace Detail etc.). This has been changed:

They now work correctly with 3D images.

Bug fixed: Compiler had a bug: Under some circumstances the
ChaosPro - FAQ
wrong operation has been taken, "<=" instead of ">=",
"b^a"
Quaternion Math instead of "a^b". This happened in complex formulas where
Credits operations were "hanging" and some floating point registers
had

to be unloaded to perform a complex operation.
Bug fixed: Compiler had a bug: Iteration statements in for loops
caused wrong alignment of jumps (==> crash).

New: Quaternion number type added.: Escapetime fractals can
now declare variables as "quaternion". Please note: No
transcendental
functions are supported, only addition,
subtraction, multiplication, division and all other elementary
functions.

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V2.1 to V3.0

New: Functions added: Given a quaternion q=(qr,qi,qj,qk)


"hiquat(q)" returns (qr,qi) as a complex number.
"loquat(q)"
returns (qj,qk) as a complex number. Given a complex number
c=(cr,ci) "hiquat(c)" returns
quaternion (cr,ci,0,0). "loquat(c)"
returns quaternion (0,0,cr,ci).
New: Fractal type quaternion added.
New: Formula option flag QUATERNION added: When placed as an
option after the formula identifier
the formula is considered to be
used with quaternions. Thus the predefined variables z and pixel

are quaternion instead of complex. The formula compiler uses
other icons in the compiler window for such formulas.
New: New fractal type Quaternion uses compiler formulas similar
to type "Escapetime".
New: The fractal type "Layered Fractal" was not able to correctly
accept 3D images.
Bug fixed: On slow computers often a "Deadlock assumed"
message box appeared: In order to
avoid dead locks in the
communication between the main thread and a calculation
thread
a timeout is defined. On slow systems the timeout value was too
small, so
often the box appeared. Fixed: Timeout is set higher.
Bug fixed: Some predefined variables in compiler transformations
were not initialized (x,y, screenpixel).
Bug fixed: When loading a "LayeredFractal" the parameter
"LeftOffset" was set to "BottomOffset" and
"BottomOffset" was
set to 0.
Changed: Exception handling implemented: Upto ChaosPro 2.1
software exceptions simply crashed ChaosPro
so all unsaved work
was lost. Exception handling now lets you continue your work. If
a null
pointer exception occurs during fractal calculation then the
fractal is still there, but cannot
be calculated. There is a chance
that it will work if you undo your last change.
Bug fixed: Compiler formulas got saved only when the user
choosed the appropriate command or
collapsed the folders. But
ChaosPro did not save them when you changed a formula,

compiled it and then exited the program. This has been fixed:
Now as soon as you click onto
"Compile" the formula gets saved
(either when you choose the command, or when
you collapse the
folder, or when you close the compiler window, or when you
close
ChaosPro).
Changed: Windows can be resized only when the window really
"supports" it, i.e. adjusts
itself and its content to the new size. If
it is not able to adjust itself, then
resizing is disabled. Animation
window and formula windows now can be resized.
Bug fixed: IFS-Formulas: Changing the vector of an affine
transformation did not work: All changes
were applied to the first
component (x-component).
New: Its now possible to 3D-transform an Escapetime fractal.
Bug fixed: Compiler variable numIter was not initialized correctly
(constantly counted upwards in
each iteration, was never reset to
0).
New: Data-View tab to Escapetime fractal added: You may select
a variable to display: When moving the
mouse over the fractal
the value of that variable will be displayed. Great for examining

fractals, and great for creating your own formulas or colorings:
You do not only see
a fractal, you also can examine the direct
output of your coloring formula.
Bug fixed: Adding new formulas and cloning formulas contained a
bug: If you compiled the formula,
ChaosPro crashed due to non
initialized variables. It only worked if you collapsed the
formula
file (the file then gets automatically saved!) and expanded it

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V2.1 to V3.0

again (the file


gets loaded, the load routine was ok).
Bug fixed: Cut, Copy & Paste worked only in the compiler window.
If you pasted anything into another
window, chaospro crashed, if
the compiler window was not open.
New: Comment can now contain some special variables which are
evaluated when the file gets saved.
This allows you to insert the
save date, the calculation time and the resolution into the

comment.
New: Alpha Channel added to Escapetime fractal: The compiler
has an additional predefined variable (applies to transformations,

formulas and colorings of Escapetime and Quaternion fractals).
The result of this variable is stored as the alpha-value of
the
pixel.
Bug fixed: 3D parameter window: "Suggest"-button could produce
an invalid mapping: If ChaosPro thought that a linear
mapping
was the best (most simple case), then the resulting mapping was
not valid.
New: Importing of UltraFractal formulas has been speeded up.
Bug fixed: Choosing Menu/Fractal/Defaultvalues was dangerous:
Sometimes it crashed ChaosPro.
Bug fixed: In 8 bit palette mode an uninitialized color (=black)
was used where the palette wrapped
around (due to a "round"
bug). This has been fixed.
Bug fixed: Creating animations using a fractal type other than
Compound, Julia24, Mandel24, Escapetime and
LayeredFractal
produced wrong results, because a parameter has not correctly
been interpolated.
New: Tip window added: It provides some tips especially for
beginners.
Bug fixed: On some systems ChaosPro crashed on startup if no
internet connection has been established.
This was due to the
initialization of the network feature. The network feature has now

completely been disabled, so ChaosPro should not care about any
network settings.
Bug fixed: Converting FractInt parameter file entries of
type=formula could crash ChaosPro due to
an initialization error.
New: On startup ChaosPro now registeres its file types, if the file
types are not already registered
with another application (*.frm,
*.par, *.map, *.ifs, *.l, *.ctr, *.cfm, *.ccl)
Bug fixed: If there were different compiler formula files in
different folders having the same name then
ChaosPro correctly
assigned only formulas from the first file found (i.e. if you had

two versions of dmj.ccl in different folders, and if the second file
had additional coloring
formulas, then ChaosPro was not able to
correctly assign formulas from the second file).
Bug fixed: Closing the Compilerwindow could crash ChaosPro,
because your current selection was not resetted, and
thus during
the close function the invalid current selection has been accessed.
Bug fixed: Microsoft Visual C++ optimizer sometimes produces
buggy code if "optimize" is chosen.
Because optimizing reduces
file size by about 20% and speeds up the routines, I only
partially
switched off the optimization. If you encounter crashes or other
mysterious
behaviour, it could either be my fault or the
optimizers fault. Just let me know...
Bug fixed: ChaosPro did not implement ceil, floor, round, trunc
and cabs functions in the old formula
parser. Thus using FractInt
formulas with the formula parser in ChaosPro sometimes did
not
work (ChaosPro did not load that formula due to that unknown
operation). This does not
apply to the formula compiler:
Importing such a *.frm file worked ok.

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V2.1 to V3.0

Bug fixed: Saving a parameter to a write protected file crashed


ChaosPro (If you copy ChaosPro from a CD, then all files are write
protected...)
Bug fixed: Sometimes changing a formula did not refresh all
referencing fractals:

If you loaded FractInt parameter files and then allowed ChaosPro
to convert them, then
the formula file names did not have the
proper ending, thus ChaosPro did not recognize
them as
referencers.
Changed: Converting a fractal of type=Formula (old formula
parser) always asked the user whether to
convert the fractal.
Menu item "Settings/Confirmation/Formula Fractal Conversion"
lets
you switch on/off this message box. If switched off, the
fractal gets converted
automatically.
Bug fixed: Compiler function "zero" was not implemented correctly
and thus did not work.
Changed: If ChaosPro wants to convert an old fractal of
type=Formula, and during the conversion
process the formula file
is not there, ChaosPro tried to find the original formula
file
(*.frm-file) and converts it silently (leaving the old file
unchanged, placing
the converted file in directory
\formulas\compiler): It was annoying that ChaosPro
offered to
convert a fractal, but did not warn about a non existant converted
formula
file.
Bug fixed: exp-function for real numbers had a bug: The compiler
returned the wrong number type.
New: FractInt formulas have been speeded up: In order to use the
speed up you need to re-import
FractInt formulas: ChaosPro now
detects the fastest number type (FractInt only knows
number
type complex)
Bug fixed: If you opened the online help file from within ChaosPro
and there were several topics
to choose from and you then did
not click onto any topic, then ChaosPro was blocked
forever: You
were not able to do anything with ChaosPro and you were not
even able
to select a topic ==> deadlock.
Bug fixed: Sometimes the help window did not show up: In order
to correctly perform palette manager
functions it is possible to
adjust the focus to NULL. If the focus does not get
restored, then
all keyboard input, including "F1" for help, was sent to nirwana.
Bug fixed: Adding a fractal of type=Escapetime or Quaternion to
an animation crashed ChaosPro.
Bug fixed: During import of UltraFractal formulas some predefined
symbols were not recognized
(especially pi and e). Thus these
formulas were imported wrong. You need to reimport
Ultra
Fractal formulas.
Bug fixed: On import of UltraFractal formulas ChaosPro created
variables where it is not necessary:
If it encountered the number
"1e20", it imported it as 1e20 and created a variable named

"e20". The formulas worked ok, but the variable just wasted
space...
New: The optimizer in the compiler in ChaosPro now tries to
detect whether a faster variable
type can be chosen: It does not
automatically choose it, but the message window will inform
you
about that: It will tell you that a variable named "foo" of type
"complex" can be changed
to "real". Check if it is really correct
and then change it.
Bug fixed: On saving parameter files ChaosPro used too few
significant digits. This has been fixed.
Bug fixed: A color model conversion routine contained a bug:
Under some circumstances the conversion from
a HSL color to a
RGB color produced wrong results. You saw the bug if you

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V2.1 to V3.0

created a Layered Fractal


and merged two layers using HSL-
Addition, Saturation or any other HSL coloring mode (especially

when converting black the error was visible).
Bug fixed: Under some circumstances the fractal colortable was
not correctly initialized.
Changed: Drawing Layered Fractals has been changed: It is not
faster, but it seems to work faster:
The final image gets drawn
starting from the middle of the window going up and down
completely.
Changed: ChaosPro allowed you to specify complex constants as
(1/3) instead of (1,3) or (1+3i).
This is in conflict with another
meaning: (1/3) could be 0.3333333, too.
ChaosPro now
interprets (1/3) as 0.33333333333 (and thus conforms to
UltraFractal).
Changed: The compiler function "^" (power) was not implemented
correctly: If you calculated
3^4 it returned (12,0) as a complex
number instead of 12 as a real number.
Bug fixed: If a compiler formula contained several user functions
and some user functions were inside
an if clause which could be
eliminated because the condition always evaluated to false, then

the user functions did not work properly.
Bug fixed: If you loaded UltraFractal *.upr parameter files and the
gradient of a layer had control points
lying directly beneath each
other, then it was possible that ChaosPro lost a control point (due

to a rounding error, ChaosPro only has about 250 control points,
UltraFractal allows 400 control points)
Bug fixed: Saving a fractal parameter folder did not work: The
filename in ChaosPro was invalid.
Bug fixed: If you imported an UltraFractal parameter file which did
not use any coloring then it was
imported wrong: The default
coloring methods in ChaosPro and UltraFractal are different.
This
has been changed: Such UF-fractals now get assigned a special
coloring formula.
Bug fixed: If you wanted to deassign any coloring formula from a
fractal (by pressing the "Clear"-button)
then the parameter and
function list was not updated to reflect the change.
New: ChaosPro now correctly handles UltraFractal Alpha channels.
Bug fixed: Transformations using functions like "exp" could crash
ChaosPro.
New: Layered Fractals now correctly display calculation progress.
Bug fixed: Import Modul for UltraFractal formulas contained a
bug: If a variable with the same name was
used as a variable and
a parameter, then ChaosPro did not recognize the parameter
(which has
the prefix @). Instead, it throught, it has already been
defined.
Bug fixed: Import module for UltraFractal formulas did not adjust
user functions: In ChaosPro compiler
formulas (and all variables
and functions) are case sensitive, in UltraFractal not. Thus
during
conversion all variable names and all function names must be
converted to lower case.
And this did not work for user functions.
Bug fixed: Setting a default value for user functions did not work.
Bug fixed: Loading UltraFractal *.upr files which used mixed case
variable and function names were not
loaded and converted
correctly.
New: ChaosPro did not implement FastJulia and FastMandel from
UltraFractal. Thus fractals using
these formulas were not
calculated correctly.
New: ChaosPro now correctly handles UltraFractal opacity values
of solid colors (inside and
outside). Opacity value of solid color

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V2.1 to V3.0

can now be adjusted.


Changed: Calculation routine of Layered Fractals now pays better
attention to multi pass calculation.
Changed: function "arg(0,0)" now returns -pi/2 instead of 0 (i.e.
behaviour adjusted to conform to
UltraFractal)
Bug fixed: When you assigned a different formula to a fractal and
the formula contained a variable with the
same name as a
parameter from the previously assigned formula, then ChaosPro
got confused.

http://www.chaospro.de/documentation/html/appendix/history/history3_0.htm[12/16/2018 2:26:47 PM]


Changes from ChaosPro V3.0 to V3.02

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V3.0 to V3.02
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Tutorials
Appendix
Keys Help List of Changes
Program Directories
Configuration Settings
Bug fixed: Default Property did not work always.
Trouble Shooting and Knows Bugs
Searching For... Bug fixed: Creating animations could produce duplicate images or
History corrupt images or corrupt animations: This was due to
the
animation system continuing with the next frame before the
List of Changes from V1.0 to V2.0 current frame was saved.
List of Changes from V2.0 to V2.1
Bug fixed: Stop/Resume did not work for Layered Fractals. Menu
List of Changes from V2.1 to V3.0 item added.
List of Changes from V3.0 to
Bug fixed: Pasting a parameter set with fractal type !=
V3.02
List of Changes from V3.02 to LayeredFractal did not work.
V3.1 Bug fixed: Hints specified for of checkboxes and function did not
List of Changes from V3.1 to V3.2 work. Hints specified for formulas assigned to quaternions did not
List of Changes from V3.2 to V3.3 work.
List of Changes from V3.3 to V4.0 Bug fixed: Compiling some formulas crashed ChaosPro due to a
List of Changes from V4.0.189 to stack overflow (too many if-clauses). The
stack overflow check
V4.0.228 routine contained a bug: Normally in such cases the stack

increases, and this "increase" routine was buggy.
Bug fixed: Cloning a compiler formula using the toolbar button
cloned the formula *and* deleted the current project due to a
missing stop command.

Bug fixed: Deleting a formula now asks for confirmation.

Bug fixed: In some rare cases starting a fractal calculation could

crash ChaosPro.

Bug fixed: Changing task priority did not work. Additionally the
ChaosPro - FAQ menu item did not display the current settings.
Quaternion Math Bug fixed: Pressing F1 did not bring up the help file if you just
Credits used the number picker button or a slider.

Bug fixed: Removing a coloring formula from a Quaternion did not
work. Default formula was not correctly restored.

Bug fixed: If you tried to assign a formula to a fractal for which it
was not written (i.e. a quaternion formula to an escapetime
fractal or vice versa), ChaosPro got confused.
This has been
changed: ChaosPro now complains if you want to assign a wrong
formula to a fractal.

But notice: If there is a formula which has been written for
"Escapetime" and can be used
with Quaternions, then you can

http://www.chaospro.de/documentation/html/appendix/history/history3_02.htm[12/16/2018 2:26:53 PM]


Changes from ChaosPro V3.0 to V3.02

assign it to a quaternion. ChaosPro only complains if the


formula
then would produce compiler errors.
Bug fixed: Loading and saving the config file skrewed up the
entries "AnimPath" and "PicturePath" if the path contained a
white space.
Bug fixed: The configuration file calculated the size of the main
application window wrong: Whenever the config file was written,
the window size was 1 pixel too small.
Bug fixed: If you edited a numberic value in an entry field and
pressed return, the fractal is recalculated.
If the entry field then
lost focus, the fractal was recalculated again. This has been fixed:

ChaosPro now checks whether the entry field actually changed its
value since the previous recalculation.
Bug fixed: Quaternion constants were not initialized correctly.
Bug fixed: Compiling quaternion formulas containing constant
subexpressions of type quaternion were not
handled correctly by
the compiler. Additionally, when a subexpression referenced a
predefined variable it did not work correctly.
Bug fixed: On some systems ChaosPro crashed on exit.
Bug fixed: Sometimes (especially Win98) tooltips appeared
*behind* the window...
Bug fixed: If you had a fractal which used a formula and you
rapidly changed formula parameters
then ChaosPro sometimes
crashed: Reason: You interrupted the calculation thread when it
was
compiling the formula. This left the compiler in an undefined
state. Normally it does not matter
because at the beginning of a
formula compilation the compiler gets reset. Unfortunately some
internal stacks were not reset...

This bug occured especially when rapidly changing formula
parameters on complex formulas (because
on complex formulas
it is more likely that the interruption occurs during compilation
and not
after that in the fractal calculation...). And of course it
occurred especially on slower systems
(300Mhz and below).
Bug fixed: Zoom animations were calculated wrong: Sometimes
the fractal flipped upside down:
Reason: When interpolating using
Spline interpolation a corner gets interpolated without looking
at
another corner. Fixed: Now only the radius gets interpolated...

http://www.chaospro.de/documentation/html/appendix/history/history3_02.htm[12/16/2018 2:26:53 PM]


Changes from ChaosPro V3.02 to V3.1

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V3.02 to V3.1
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Improved means the behaviour has been improved somehow.
Tutorials
Appendix
Keys Help
Program Directories
List of Changes
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For... Bug fixed: Rotating a quaternion or 3D-Object did not work
History correctly if viewpoint was not (0/0/0).
List of Changes from V1.0 to V2.0 Bug fixed: If you used the AntiAlias feature and resized the
List of Changes from V2.0 to V2.1 original fractal then ChaosPro blocked.
List of Changes from V2.1 to V3.0 New: OpenGL for 3D transformations added: Many new
List of Changes from V3.0 to parameters including textures etc. You can now switch between
V3.02 two 3D calculation modes: Standard and OpenGL.
List of Changes from V3.02 to New: Formula method void init_once(void) added: Called once
V3.1 a time right before the fractal calculation starts. Can be used
List of Changes from V3.1 to V3.2 with:
List of Changes from V3.2 to V3.3 Transformations
List of Changes from V3.3 to V4.0
Iterations
List of Changes from V4.0.189 to
V4.0.228 Colorings

See Also: How it works together


New: Compiler now supports subfunctions

New: Compiler supports function libraries using an import

statement.

New: Compiler supports local variables for each function

New: Function parameters can be call-by-value or call-by-
ChaosPro - FAQ reference
Quaternion Math New: Compiler knows data type array (static and dynamic)
Credits Improved: Compiler speed enhanced: When compiling very large

formulas (e.g. Brew formulas), it could last too long.

Improved: Compiler optimizer enhanced: Compiler now performs

several steps and rounds in order to examine the formula and
all

of its variables to detect constant expressions. It will even detect

partial constant assignments to static arrays and speed it up.

Changed/Improved: Message Window now contains a listbox
instead of an MLE: Clicking onto a listbox entry jumps to error
location (if the error occurred in the compiler)

http://www.chaospro.de/documentation/html/appendix/history/history3_1.htm[12/16/2018 2:27:00 PM]


Changes from ChaosPro V3.02 to V3.1

Bug fixed: If you tried to render an animation and saved your


images as png files it could happen that the files were corrupt.
Sometimes ChaosPro advanced to the next animation image too
fast.
New: Parameter Zoomspeed added to configuration file: Specifies
how many times ChaosPro scales the image in case of a zoom.
Improved: Precision of animations increased: ChaosPro already
containted arbitrary precision math in order to calculate
area
values of deep zooms. Unfortunately there were some bugs in my
routines. So I threw away the code and took the MAPM package
from Mike Ring,
which works fast and very reliable. If you now
zoom into a fractal at the highest possible level (round about 45
to 50 times),
then even animations are calculated correctly.
Improved: Palette editor window has been redesigned, contains
new color models: You can now decide which color mode you'd
like to use.
Changing the color mode now correctly affects the
interpolation (in contrast to UF!).
New: Alpha Channel Editor added.
Improved: Changes to palette editor, alpha channel editor now
can be undone (using Undo/Redo of Fractal)
New: Using Ctrl-C one can copy a fractal parameter set to the
clipboard (text format) and paste it for example into a mail.
Bug fixed: Compiler could crash if a formula contained
complicated constant expressions which internally were using a
"stackframe" (which you of
course did not notice, you only
noticed a crash!).
Bug fixed: Image Manipulation Settings did not work correctly
with Quaternions (ChaosPro crashed)
Changed: Colorcycling enhanced, on (very) fast computers it now
works with 24 bit images as well.
Bug fixed: Compiling large formulas while using the slider could
crash ChaosPro due to short refresh intervals (slider produces
many refreshes) and long compiling intervals (large formula
needs longer).
New: Raytracing export added: Wavefront or POVRay.
Bug fixed: On fast machines ChaosPro could block while creating
animations.
Improved: Palette selection drop down combobox has been
redesigned: The combo box will show small
versions of each
palette.
Bug fixed: After having calculated an animation the current fractal
was not "activated": Thus you were not able to open some of the
windows.
You first had to activate another fractal.
Improved: Fractal selection drop down combobox now shows the
fractal type by displaying a small
icon left to the fractal name. In
addition to that layers of a "layered fractal" are indented. Icons
are shown in Fractal Tree Window as well.
Changed: A fractal of type "Layered Fractal" cannot be selected
directly: You only can select the different layers of such a fractal:
This way you can
change the settings of a layer more easily: In
former versions you had to manually select a layer using the
Fractal Tree Window or the drop down combobox.
The layer
property window now is an additional window for each fractal
which can be opened as soon as the fractal is a layer.
Changed: Drag operation in a tree view control (Fractal or
compiler formula) did not work perfectly: Draw operations (drop
selection and drag image)
interfered and produced strange
artefacts.
New: You now can add another layer to a Layered Fractal either

http://www.chaospro.de/documentation/html/appendix/history/history3_1.htm[12/16/2018 2:27:00 PM]


Changes from ChaosPro V3.02 to V3.1

by dragging a fractal from the FractalTreeView window


to the
Layerlist of a Layered Fractal or by clicking onto the image
button Add Layer, which lets
you add any standard fractal type.
The "Fractals" drop down box in the Layer Parameter window has
been removed.
Improved: Animation Timeline object redesigned: It now displays
its current selection more clearly
New: Animations based on Layered Fractals now can be
converted, i.e. you can not only create an
animation (AVI), but
also single fractal parameter sets.
Bug fixed: If you rendered an animation and you created two
frames which were equal, then ChaosPro detected that they are
equal and did not render
the second frame again. Unfortunately
the frame then did not send the signal "I'm finished" (because
the frame calculation did not even start!), so
ChaosPro did not
advance any more...
Bug fixed: Deleting a fractal layer using the toolbar could crash
ChaosPro.
Bug fixed: When you chose to save an animation as a series of
single images the image file names were numbered without
leading zeros, i.e. base1,
base2, base3, etc. This has been
changed, the filenames now have leading zeros, i.e. base001,
base002, base003, etc.
New: Image Filters added: SizeWindow contains filters (similar to
Image Manipulation settings) direct antialiasing capabilities added
(no additional
window any more). Image Manipulation settings
have been removed.
Bug fixed: Choosing menu item "File/Folders/Rename" did not
change the name of the project file in the Fractal Tree Window.
Bug fixed: Duplicating a fractal project did not work at all. Fixed:
It now duplicates a whole project including all fractals...
New: Pressing right mouse button in fractal window while holding
down the SHIFT-Key brings up a context menu for fast access to
several commands.
Bug fixed: IFS, LSystem and DynamicSystem in 24 bit mode used
the wrong colors: red and blue parts were switched.
Bug fixed: DynamicSystem did not initialize DrawMode parameter
correctly (i.e. points or lines)
New: DynamicSystem: New parameter added: Coloring: Lets you
choose the type of coloring
Changed: DynamicSystem now correctly handles depth: Pixels far
away are darker than pixels near the observer.
New: When using the 3D mode "OpenGL" you can use the mouse
in order to rotate the object: In the fractal window hold down left
mouse button and move
mouse left/right/up/down to rotate the
object. Hold down right mouse button to adjust the distance
Bug fixed: If you loaded a bitmap image and resized the image
window, the image was lost. Changed, so that you cannot resize
the image.
New: randomrange parameter added.
New: random function added.
New: Parameter pixelcolor added
(same as "color" in UF3.0). This
allows the implementation of direct coloring algorithms
New: In the description function additional parameter properties
are allowed: visible and enabled
(true/false).
New: The properties default, visible and enabled
may contain
arbitrary boolean expressions, which may reference any other
parameter. Using these properties you can show/hide and

http://www.chaospro.de/documentation/html/appendix/history/history3_1.htm[12/16/2018 2:27:00 PM]


Changes from ChaosPro V3.02 to V3.1

enable/disable parameters
depending on the current values of
other parameters. Each time the value of a parameter changes,
the expressions are evaluated!
New: Escapetime and Quaternion parameter windows
now display
all formula parameters at once: Upto ChaosPro 3.02 all formula
parameters were listed in a drop down combobox: You selected a
parameter and
then the current parameter values appeared
below that drop down combobox. This has been changed: Now all
parameters and functions appear directly.
New: Compiler formulas: Parameter Separator added: Because all

parameters appear at once it is now possible to add a separator
between logical groups of parameters.
New: Compiler formulas: Compiler directives built in: #define,
#undef, #ifdef, #else and #endif implemented.
The following
symbols are predefined: ULTRAFRACTAL,CHAOSPRO, UF_VER20,
UF_VER30, VERSION300 and VERSION310
New: Compiler formulas: color datatype added, various functions
for working with colors added
New: Compiler formulas: When comparing enumerated
parameters you now can use the
enumeration string itself.
So
you don't have to compare against the string index.
Improved: Compatibility to UF3.0 added: You now can import all
formulas from UF3.0. During import the formulas are rewritten
using the ChaosPro
syntax. Compatibility includes all new
features of the formula compiler of UltraFractal 3.0
Changed: Dataview removed: Handling was too complicated,
users did not see the goal of this feature.
New: Function ubound implemented: returns maximum
dimension.
New: Compiler formulas: In ChaosPro arrays can be "parameters"
as
long as the dimension is 2. In order to initialize this
parameter, you can choose a JPG or PNG image. If the array is
dynamic then the array will get the
dimension of the whole
image. If the array is static, it will contain only a portion of the
image (or black areas if the image is smaller).
Bug removed: Predefined variable numiter was
not initialized if it
was used only in coloring algorithms.
Bug fixed: If you imported (or loaded) formulas then under some
circumstances a new directory appeared in the compiler window,
which had the same
name as another one and was empty. This
happened if a compiler formula path was added which was
already there, but ChaosPro compared using case
sensitivity and
thus did not recognize that.
Bug fixed: Sometimes the configuration file was corrupt and
contained illegal window positions. Thus for example a window
was opened at a location
which was out of the screen and so you
were not able to see the window.
New: Compiler formulas: Variables and parameters now can have
a storage type: If you define a real variable, its a 80 bit
coprocessor variable, if you
define a double, then it's a 64 bit
IEEE number, and float=32 bit IEEE number. Int/Bool variables
now are really int/bool variables, ChaosPro 3.02
actually used
int/bool as synonym for "real", thus you were able to store "float"
values in "int" variables. ChaosPro 3.02 knew only one
storage
type: 80 bit coprocessor format.
New: Contexthelp implemented: All windows now contain a
question mark in the title bar: This allows faster access to short
help strings
explaining functions in ChaosPro.
Changed: Memory consumption was high: Right after startup
ChaosPro used about 10MB of physical memory. This was due to
inefficient storing
of IFS and LSystem formulas. This has been

http://www.chaospro.de/documentation/html/appendix/history/history3_1.htm[12/16/2018 2:27:00 PM]


Changes from ChaosPro V3.02 to V3.1

changed and thus the memory consumption was reduced by


about 3 MB.
Improved: Comments enhanced: Creditlist added, new variables
added, template mechanism added.
New: Some new options introduced: Taskpri, Username, number
of undo steps, possibility to adjust window size and positions.
New: Option window added.
Improved: Layers can be dragged by holding down the Ctrl-Key.
Changed: Size window now allows you to specify the work area,
i.e. the size of the Layered Fractal independently
from the size of
a layer inside it.

http://www.chaospro.de/documentation/html/appendix/history/history3_1.htm[12/16/2018 2:27:00 PM]


Changes from ChaosPro V3.1 to V3.2

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V3.1 to V3.2
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Improved means the behaviour has been improved somehow.
Tutorials
Appendix
Keys Help
Program Directories
List of Changes
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For... New: Container Bar added
History
The container is a window at the right side of the main window.
Other windows can be placed in this window and are
List of Changes from V1.0 to V2.0 automatically arranged vertically.
The container can be attached
List of Changes from V2.0 to V2.1 to the main window or it can be put into its own window.
List of Changes from V2.1 to V3.0 Changed: Fractal Types replaced
List of Changes from V3.0 to
Fractal types Julia1, Mandel1, TieraJulia, TieraMandel, Julia24,
V3.02 Mandel24, Formula, Bifurcation and Lyapunov Space have been
List of Changes from V3.02 to completely removed.
Formulas for fractal type Escapetime have
V3.1 been written which imitate the old fractal types in order to
List of Changes from V3.1 to maintain compatibility.
If ChaosPro encounters parameter sets
V3.2 from old ChaosPro versions which make use of these fractal
List of Changes from V3.2 to V3.3 types, then the fractal type Escapetime will
be used to calculate
List of Changes from V3.3 to V4.0 these fractals.
If you want to use the old fractal types, just create an Escapetime
List of Changes from V4.0.189 to
fractal, go to the formula tab, right click the
formula selection
V4.0.228
icon: There you can select (and define) presets (predefined

fractal parameter sets): The old fractal types are now just
presets...

Bug fixed: If you created a 3D transformation and used fog, then
the result sometimes was somehow strange. Has been fixed to
look more natural...

New: Compiler enhancement


Formulas now can contain the keyword "shared" before a variable

declaration in order to indicate that the variable should be shared

between
the iteration formula and the coloring formula. This
ChaosPro - FAQ
makes it possible to write coloring algorithms which can access
Quaternion Math the variable of a formula.
Credits
New: Compiler enhancement


You now can define a function using "function complex ;" or
"function color fn2". Such a statement defines a constant variable
__, which
can be queried for the current user selection. So you
can write:
if (fn1=="sin") {
// do something
}

New: Compiler enhancement

Formula flag for Escapetime iteration formulas:

this.functionorder=0 ==> Bailout function will be called right
after the loop function has been called.

http://www.chaospro.de/documentation/html/appendix/history/history3_2.htm[12/16/2018 2:27:07 PM]


Changes from ChaosPro V3.1 to V3.2


this.functionorder=1 ==> Bailout function will be called at the
beginning of an iteration, and after that the loop function will be
called.
Bug fixed: FractInt parameter sets with huge palette entries
were not loaded correctly. Only the first 512 bytes were used by
ChaosPro, thus the palette has not been
completely loaded into
ChaosPro.
New: Fractal Popup Window

Pressing the right mouse button in fractal window while holding
down the SHIFT-Key brings up a context menu for
fast access to
several commands.
Bug fixed: The compiler had difficulties in correctly identifying
negative integer numbers: So it often happened that "-3" was not
recognized correctly.
Bug fixed: Layers now can be renamed: Simply press F2 or click
onto the label with the left mouse button in order to start layer
label name editing
New: Quaternion export to POVRay

Quaternions can now be exported to POVRay. But please note
that POVRay only has a base formula. ChaosPro will use that
formula, so the
resulting POVRay quaternion will be correct only if
you use the formula z^2+c.
New: Fractal Presets

Escapetime and Quaternion fractals now let you define presets:
You can add the settings of the current tab (or the whole fractal)

to a list of presets. And by using the "Select formula" button you
can quickly choose one of the presets.
The fractal types
Julia/Mandel/Julia Tiera, etc. from previous versions of ChaosPro
can now be found in the list
of presets.
Improved: ChaosPro and Windows XP schemes

ChaosPro now correctly renders on Windows XP either with or
without schemes. Former versions of ChaosPro used
wrong
background colors, thus the user interface looked somewhat
strange.
Bug fixed:Editing of write-back parameters

ChaosPro did not allow to adjust a flame parameter during
rendering of a flame fractal (which used the parameter write-back
feature). You had to wait until
the render was finished, because
otherwise the fractal thought that the parameter has been
changed. This bug has been fixed, you now can adjust a
parameter at any time...
Bug fixed: Title bar of fractal window flickered heavily during
resize
Bug fixed: The rightmost 3 rows of a Layered Fractal were drawn
in scrollbar mode although they did not belong to the fractal
(they just were there in order to align the width to a multiple of
4)...
Bug fixed: When switching to scrollbar mode the window
flickered, was brought to front, layeres suddenly showed their
window although it should be hidden...
Bug fixed: Fractals using formulas which tried to allocate huge
arrays just threw an exception in case of "OutOfMemory" instead
of displaying a meaningful error message
Bug fixed: On resize the width/height of the workarea was not
updated
... many more bugs fixed ...

http://www.chaospro.de/documentation/html/appendix/history/history3_2.htm[12/16/2018 2:27:07 PM]


Changes from ChaosPro V3.2 to V3.3

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V3.2 to V3.3
Using Formulas
Layering in ChaosPro
Rendering
Notes:
Fractal Parameter Windows Bug fixed means that the bahaviour was not intended by the
author and has been changed.
Windows
Menu
New means the feature is new
3D Transformations
Animations
Changed means the behaviour of ChaosPro has been changed in
Formula Compiler
any way, most of the time in order to make ChaosPro more
Compatibility intuitive.
Fractal Type Reference
Improved means the behaviour has been improved somehow.
Tutorials
Appendix
Keys Help
Program Directories
List of Changes
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For... New: ChaosPro now can load *.ugr files from UltraFractal
History (gradient information).
List of Changes from V1.0 to V2.0 Improved ChaosPro now works with Windows XP SP2 with "Data
List of Changes from V2.0 to V2.1 Execution Prevention" (DEP) enabled. Former versions just
crashed when it was enabled for ChaosPro.
List of Changes from V2.1 to V3.0
Bug fixed If a formula contained too many parameters ChaosPro
List of Changes from V3.0 to
V3.02 had trouble in displaying
the parameters. They weren't displayed
List of Changes from V3.02 to and disappeared.
V3.1
List of Changes from V3.1 to V3.2
More exactly: This happened when you scrolled down using the
scroll bar at
the right side by about 1000 pixels (i.e. formulas
List of Changes from V3.2 to with many parameters)
and after that you did something which
V3.3 ChaosPro forced to refresh the parameters
(i.e. switching to
List of Changes from V3.3 to V4.0 another tab and back again or changing a parameter which
List of Changes from V4.0.189 to
updates the visibility state of another parameter).
V4.0.228
Bug fixed The animated zooming out of a fractal was slower than

the animated zooming in.



Bug fixed The animated zooming out of a fractal was a little bit
asymmetric, i.e. the sequence
of fractal images seemed to "flip"
slightly

Bug fixed If you encounter problems during import of formulas
then you can try to disable your virus
scanner: On my system the
virus scanner tried to access a file as soon as it was created
and
then blocked ChaosPro when it tried to access the file afterwards
ChaosPro - FAQ (ETrust AntiVirus).
Quaternion Math Bug fixed Formula compiler window now uses a new editor
Credits (Scintilla) which allows syntax coloring and is
more like an editor
that the formerly used RichEdit control from Microsoft.

NewRenderJobs implemented.
Improved PNG and ZLIB libraries updated.

New Mouse Wheel now lets you zoom in/zoom out. In order to
render the fractal you need to start it
using any action like press
space or return key on the keyboard, double click, move fractal

around, press F5 (refresh) or change any parameter.

http://www.chaospro.de/documentation/html/appendix/history/history3_3.htm[12/16/2018 2:27:13 PM]


Changes from ChaosPro V3.2 to V3.3

Bug fixed When double clicking onto an entry in the fractal tree

window ChaosPro crashed.
New New setting in options window: Redraw on resize:
Suppose
you are changing the window size of a fractal using the mouse
(i.e. dragging a border of
the window). Should the fractal get
redrawn automatically to reflect the new size or is the
scaled
fractal image sufficient until you manually decide to redraw the
fractal by pressing F5?
Improved Depending on the graphics card OpenGL was very slow
due to a constant call to glReadPixels.
Has been removed,
glReadPixels will be called only when the image is really needed.
This may
result in some unusual "hang" when WM_PAINT
messages are processed, but OpenGL speed
thus should be much
better.
Bug fixed ChaosPro crashed when you opened the small window
which allows you to adjust any floating point
number and then
switched to another tab, because then the underlying floating
point entry field
was deleted and the window was not informed
about that...
Bug fixed ChaosPro sometimes randomly crashed when OpenGL
was used and the window was resized because the OpenGL
engine was drawing into the window device context which was
currently changed by the operating system.
Changed New menu item: Default Values is now renamed to
"Reset/Current Layer or Reset/Fractal": It will reset
either only
the current layer or the complete fractal (including all its layers)
to their default values.
New New menu item: Revert all Changes: Restores the fractal to
its original state, i.e. the last saved state
or to the state
immediately after creation.
New You can now configure the modifiers to use when you want
to zoom in/out, move the fractal, use the box zooming or using
the mouse wheel in the options window (tab "Keys").
Bug fixed Changing the window size while the visible client area
of ChaosPro was smaller than expected forced
ChaosPro to resize
to a size smaller than desired. But the final size in such cases was
similar to
"random". Fixed: You can size a fractal now upto the
largest possible window size (depends on your
screen resolution).
Bug fixed The window borders of fractal windows were not
correctly activated when the fractal tree window or any
other
window like palette editor and alpha channel was used.
Improved Fractal tree window now remembers its state between
open/close (i.e. which folder has been expanded/collapsed,
etc.).
Changed Animated zooming now should take as long as you
specified in the options window: Formerly the zoom speed
specified in the options window was only a number which
indicated ChaosPro whether the animated zoom
should take
longer or less long. Now the zoom speed specifies the number of
milliseconds which the
animated zoom may need.
New Redraw on Mouse Wheel: This new option in the options
window lets you switch on/off the automatic redraw after each
mouse wheel action: Sometimes the resulting scaled image is
good enough, so there's no need to redraw the fractal.
New Redraw on Resize: Similar to the setting before: This option
in the options window lets you switch on/off the automatic redraw
after each window resize.
New Key configuration: The options window now has a new tab
called Keys: It allows you to configure the keys and modifiers
which you must use to zoom in/out, use the mouse wheel,
context menu, etc.

http://www.chaospro.de/documentation/html/appendix/history/history3_3.htm[12/16/2018 2:27:13 PM]


Changes from ChaosPro V3.2 to V3.3

Improved Zoom box (Box zoom) visibility improved.


Bug When opening the alpha channel window the fractal has been
recalculated as if something has changed.
Improved Color cycling should now work better: The next cycle
only takes place when the previous cycle has been
completed.
Formerly there appeared some visual "bands" resulting from two
consecutive cycle images.
BugIf the Clipboard containted a fractal and you exited ChaosPro,
ChaosPro crashed.
BugUltraFractal gradient information was incorrectly imported into
ChaosPro when the base control points were not sorted (which
can appear when the UF palette has been rotated).
BugChaosPro crashed when you used the slider on entry fields
when the previous author was different from the
current user
(author not equal ==> create undo step ==> initialisation in
comment window ==> window closed ==> access to closed
window ==> crash)
ImprovedIf ChaosPro imported formulas from Ultra Fractal 4,
then a new Ultra Fractal 4 folder was created, although
an Ultra
Fractal folder was already there. Changed: Now each "Ultra
Fractal" formula folder will be
imported into the "Ultra Fractal"
folder in ChaosPro.
Bug Alpha channel window will be displayed only when the
current fractal type is "Escapetime". Other fractal
types do not
support an alpha channel.
Bug While importing formulas (Update from formula database or
direct import) new additions sometimes did
not show up: The
import feature sometimes had problems renaming the import file.
Improved Quaternions now let you adjust the aspect ratio:
ChaosPro 3.1 and before had a non-default aspect ratio, thus

quaternions made with this version seemed to be distorted when
viewed with V3.2
Now they will be rendered as in version 3.1
Bug Due to a bug in the formula compiler ChaosPro sometimes
crashed when using a formula. Basically this could
have
happened with any formula which is more complex. The bug was
related due to variable storage when the
FPU registers were not
sufficient.
Bug Several import bugs for UF formulas regarding UF 4
removed.
Bug ChaosPro was not able to correctly save BMP image files if
the file size was not a multiply of 4.
... many more bugs fixed ...

http://www.chaospro.de/documentation/html/appendix/history/history3_3.htm[12/16/2018 2:27:13 PM]


Changes from ChaosPro V3.3 to V4.0

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V3.3 to V4.0
Using Formulas
Layering in ChaosPro

Most of the changes done in the version are not listed here. Only the most
Rendering important things are mentioned.
Fractal Parameter Windows
Windows
Notes:
Menu
Bug fixed means that the bahaviour was not intended by the
3D Transformations
author and has been changed.
Animations
Formula Compiler
New means the feature is new
Compatibility
Fractal Type Reference
Changed means the behaviour of ChaosPro has been changed in
Tutorials any way, most of the time in order to make ChaosPro more
Appendix intuitive.
Keys Help Improved means the behaviour has been improved somehow.
Program Directories
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For... List of Changes
History
List of Changes from V1.0 to V2.0
Bug fixed Compiler bug: shared variables which were not read
List of Changes from V2.0 to V2.1
have been removed from the formula, as the compiler
thought
List of Changes from V2.1 to V3.0 the variable was not used.
List of Changes from V3.0 to
Fixed: shared variables won't be removed at all.
V3.02
Bug fixed Quaternion animations with simple zooms did not
List of Changes from V3.02 to
V3.1 work: coordinate system transformation had a bug.
List of Changes from V3.1 to V3.2
May have affected 3D animations as well.
List of Changes from V3.2 to V3.3 Improved Mouse Wheel now scrolls the window which is below
List of Changes from V3.3 to the cursor. You need not activate the window in order to "scroll".
V4.0
This makes it more easy to scroll the container bar.
List of Changes from V4.0.189 to Bug fixed ChaosPro had difficulties with virtual screens which
V4.0.228 appear on two monitors.


It crashed (alpha channel window, palette editor, if width was
greater than primary monitor width),
positioned windows wrong
(color selection, formula selection, etc.), did not allow to size
fractals to
full virtual screen size. This has been fixed.

New Fractal type Attractor added
Bug fixed When a renderjob crashed, ChaosPro was not able to
recover: On next startup ChaosPro automatically loaded
the
render job and crashed again. ==> fixed! ChaosPro now detects
whether it has terminated successfully and
if not, removes
ChaosPro - FAQ pending render jobs.
The install/uninstall routine also removes
Quaternion Math render jobs
Credits New fractal type Quaternion enhanced: Rendering mode changed,

lighting rewritten to be the same as Attractor
New When you slowly change a slider only a single Undo step will
be created. It will be created when you release the slider.
Formerly dozends of Undo steps were created when you e.g.
changed the light vertical position using the slider from 10 degree
to 50 degree.

Bug fixed ChaosPro crashed when you assigned a formula to a
fractal which had an error and then tried to change the values

http://www.chaospro.de/documentation/html/appendix/history/history4_0.htm[12/16/2018 2:27:19 PM]


Changes from ChaosPro V3.3 to V4.0

from the previous formula


(the entry fields were still there...)
... many more bugs fixed ...

http://www.chaospro.de/documentation/html/appendix/history/history4_0.htm[12/16/2018 2:27:19 PM]


Changes from ChaosPro V4.0.189 to V4.0.228

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Changes from ChaosPro V4.0.189 to V4.0.228
Using Formulas
Layering in ChaosPro

Most of the changes done in the version are not listed here. Only the most
Rendering important things are mentioned.
Fractal Parameter Windows
Windows
Notes:
Menu
Bug fixed means that the bahaviour was not intended by the
3D Transformations
author and has been changed.
Animations
Formula Compiler
New means the feature is new
Compatibility
Fractal Type Reference
Changed means the behaviour of ChaosPro has been changed in
Tutorials any way, most of the time in order to make ChaosPro more
Appendix intuitive.
Keys Help Improved means the behaviour has been improved somehow.
Program Directories
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For... List of Changes
History
List of Changes from V1.0 to V2.0
Bug fixed Switching to Scrollbar mode while Quaternion or
List of Changes from V2.0 to V2.1
Attractor has been calculated created a heightfield
List of Changes from V2.1 to V3.0 transformation, has been fixed, now only redraws the finished
List of Changes from V3.0 to image.
V3.02
Bug fixed Moving around a Quaternion fractal with the mouse did
List of Changes from V3.02 to
V3.1 not create an Undo point. Fixed, now an Undo point will be
List of Changes from V3.1 to V3.2 created when you release the left mouse button and thus finish
moving the fractal.
List of Changes from V3.2 to V3.3
Improved Quaternions now use all CPUs and cores which are
List of Changes from V3.3 to V4.0
available in order to speed up the fractal generation.
List of Changes from V4.0.189
to V4.0.228 Bug fixed When zooming into a Quaternion and the window had

scrollbars the zooming did not pay attention to the position of the
scrollbar
Bug fixed Quaternion allocated much too much memory due to a
wrong multiplication. This could lead to a crash, as so much
memory was not available

Bug fixed FractInt formulas using "ismand" parameter were not
imported correctly. Has been fixed. FractInt formulas need to be
re-imported.

New Quaternions: Ambient AO added
ChaosPro - FAQ
Quaternion Math Bug fixed Loading an animation parameter file might modify the
key frame names of an animation
Credits

Improved Lighting for Quaternions speeded up
Bug fixed Quaternion animation frames were sometimes re-
calculated although nothing changed (due to a rounding error).

Bug fixed Shadow rendering enhanced: Shadows were not
rendered correctly when viewed from front
Bug fixed Windows Vista Aero Theme: Titels of windows in
container bar were rendered wrong. This is due to a bug in
Windows Vista Aero Theme.

http://www.chaospro.de/documentation/html/appendix/history/history4_0_189_228.htm[12/16/2018 2:27:26 PM]


Changes from ChaosPro V4.0.189 to V4.0.228

New Panels added: GUI element which groups other elements:


Can be collapsed and expanded.
New ChaosPro now stores all modifiable data under your user
account. Please note that the data there won't be
uninstalled during uninstall.
Additionally, if you install a
new version of ChaosPro the files may be overwritten.
Improved Shadow Casting with Quaternions improved
Bug fixed Crash with Windows Vista removed.
Bug fixed Functions inside formulas were not displayed correctly
during an animation as settings were not copied/initialized
correctly!
Bug fixed Duplicating a fractal did not work for every fractal type
Bug fixed Shortcuts did not work
Bug fixed ChaosPro blocks on an 8-core-machine when
minimizing an Attractor fractal.
Bug fixed ChaosPro restarts the calculation when miniziming the
application and a fractal has been maximized.
New Quaternions: "Inside"-View implemented
New Quaternions: New Zoom Feature implemented for
Quaternions to allow easy zooming
Bug fixed Tool tips for toolbar reactivated (were disabled)
Improved Fractals now render immediately, you don't need to
click on the green traffic light any more.
Bug fixed Errors during import of some of David Makins formulas
fixed (MMFwip3D.ufm and mmf4.ucl)
Bug fixed constants from -10 to 10 could be overwritten by
constant local variables in sub functions
Bug fixed Color picker from palette editor did not work outside its
own window
New Variables for distance estimation added: estimatedDistance,
currentRayIndex,hasBeenHit
Bug fixed Writing back to parameters did not work properly for
Quaternions due to multi threading
New Quaternion: Depth of Field implemented
New Quaternion: Formulas for distance estimation added

In order to support distance estimation the following variables
have been added:
estimatedDistance: Estimated distance from object
currentRayIndex: Number of scans performed so far
hasBeenHit: True if fractal has been found and final loop is
executing. No distance estimation needed!
New Compiler: Function sincos added: Calculates sine and cosine
of a real argument.
Improved In case a formula needed for rendering a fractal
cannot be found/compiled, ChaosPro will now display
an error
text inside the fractal window. Formerly only the message window
contained the exact error, and if
that window was minimized or
hidden, you won't see the error and just a black window
appeared...
New Quaternion: Fog added
Improved new version of libpng included
Bug fixed Loading of images from another drive did not work
Bug fixed Bugs fixed when importing/loading images
New New formula and preset added which loads images as

http://www.chaospro.de/documentation/html/appendix/history/history4_0_189_228.htm[12/16/2018 2:27:26 PM]


Changes from ChaosPro V4.0.189 to V4.0.228

fractals: Choose Escapetime Fractal and then select the preset


"Image Import" in the formula tab.
New New quaternion preset added: "Inside View Mandelbulb" and
"Inside View Juliabulb"

http://www.chaospro.de/documentation/html/appendix/history/history4_0_189_228.htm[12/16/2018 2:27:26 PM]


ChaosPro - FAQ

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Tutorials
Appendix
Keys Help
Program Directories
Configuration Settings
Trouble Shooting and Knows Bugs
Searching For...
History
ChaosPro - FAQ
Quaternion Math
Credits

http://www.chaospro.de/documentation/html/appendix/faq.htm[12/16/2018 2:27:33 PM]


ChaosPro - Quaternion Math

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Quaternion Math
Using Formulas
Layering in ChaosPro
Rendering
At first there were numbers, they were used to count objects like
Fractal Parameter Windows
stones or apples or whatever (~ 9000 b.c.)
Windows
Then people thought, that there must be some "nothing", so
Menu
clever people invented the most important number, called "zero"
3D Transformations
After that people played around and asked whether there could be
Animations
numbers smaller than 0, and they invented negative numbers.
Formula Compiler
Then the communists came and wanted to divide everything, and
Compatibility
that's how rational numbers were invented (a/b, a and b
Fractal Type Reference numbers.)
Tutorials
Then some mathematics asked for the solution of x*x=2. He did
Appendix not find a number, he found only an approximation (1.41...), so
Keys Help the clever guy just wrote sqrt(2), and voila! The irrational
Program Directories numbers were invented.

Configuration Settings
Trouble Shooting and Knows Bugs Ok, so far so good. All numbers were invented. All numbers? No!
We forgot the mathematicians! They searched and searched, and
Searching For...
suddenly somebody asked why there should not be a solution to
History x*x=-1. They told the number to be written as i, and so the
ChaosPro - FAQ complex numbers were invented. Unfortunately the good old
Quaternion Math number line was dense (i.e. full), there was no place for these
strange "complex" numbers (just as the name implies ). So they
Credits placed them below and above the real numbers: And even

nowadays they form the complex number plane, each complex
number consistring of a real part and an imaginary part.

And then, as if this were not enough, in 1843 Sir William R.

Hamilton was trying to find a way to rotate a 3D vector by

multiplying it with another one.
After 15 years of hard work, he

stumbled upon the idea of using a 4D notation. He called these

numbers quaternions.



A Quaternion q is a quadruple of real numbers and can be defined as q=
[s,v] where s is a scalar and v is a 3D vector.


One can express the vector v in terms of its components:


q = [s + xi + vj + zk], where s is a real number called the scalar part.

The three imaginary parts are xi, yj, zk. The coefficients x, y, z in the
imaginary terms are the real numbers.


Now how are the rules for mathematical operations with quaternion
numbers?
Two Quaternions are equal if and only if their corresponding terms
are equal.
The following rules apply when multiplying Quaternions:
i2 = j2 = k2 = -1
ij = k = -ji    [i.e. Quaternion multiplication is not
commutative!]
it therefore follows that

jk = i = -kj, ki = -ik = j,

http://www.chaospro.de/documentation/html/appendix/quatmath.htm[12/16/2018 2:27:38 PM]


ChaosPro - Quaternion Math

ji = -ij = -k, kj = -1, ik = -j

Given two Quaternions q1 and q2:

q1 = [s1, v1] = [s1 + x1i+y1j + z1k]

q2 = [s2, v2] = [s2 + x2i+y2j + z2k]

The product of q1q2 is:

q1q2 = [(s1s2
- x1x2
- y1y2
- z1z2) + (s1x2
+ s2x1
+ y1z2 - y2z1)i + (s1y2 +
s2y1 + z1x2 - z2x1)j + (s1z2 + s2z1 + x1y2 - x2y1)k]

Fortunately this can be written using dot and cross products

q1q2 = [(s1s2 - s1.v2),  


s1v2 + s2v1 + (v1   x   v2)]


For any Quaternion q = [s + xi + yj + zk] = (s,v):

The inverse Quaternion is:

q = [s - xi - yj - zk] / |q|2 = (s,-v) / |q|2

Where |q| is the magnitude or modulus of q given by:

|q| = sqrt(s2 + x2 + y2 + z2)

Also, |q|2 = (s2 + v · v)

http://www.chaospro.de/documentation/html/appendix/quatmath.htm[12/16/2018 2:27:38 PM]


Credits

ChaosPro Home
Release 4.0
Introduction
What's New
Palettes Credits
Using Formulas
Layering in ChaosPro

ChaosPro is quite a huge program, thousands of lines of C/C++ code and
Rendering thousands of lines of assembler code.
Fractal Parameter Windows
Windows It would have been impossible without the encouraging help of other
peoples work, testers, formula writers.
Menu
3D Transformations
ChaosPro makes use of the following packages which have been written by
Animations other programmers:
Formula Compiler Scintilla
Compatibility Scintilla is used for the formula editor: It contains many useful
features which are easy to access and is much better to use than
Fractal Type Reference the standard RichEdit component from Microsoft.
Tutorials
Appendix
License for Scintilla and SciTE
Keys Help

Copyright 1998-2003 by Neil Hodgson
Program Directories
Configuration Settings
All Rights Reserved
Trouble Shooting and Knows Bugs

Permission to use, copy, modify, and distribute this software and
Searching For... its documentation for any purpose and without fee is hereby
History granted, provided that the above copyright notice appear in all
ChaosPro - FAQ copies and that both that copyright notice and this permission
notice appear in supporting documentation.
Quaternion Math
Credits
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO

THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL
HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER

TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
libpng V1.2.8 (PNG Reference Library) - Copyright (c) 2000-2004
Glenn Randers-Pehrson: The PNG library has been written by
several people
(Simon-Pierre Cadieux, Eric S. Raymond, Gilles
Vollant, John Bowler, Kevin Bracey, Sam Bushell, Andreas Dilger,
Magnus Holmgren, Tom Lane, Dave Martindale
, Glenn Randers-
Pehrson, Greg Roelofs, Guy Eric Schalnat, Paul Schmidt, Tom
Tanner, Willem van Schaik and Tim Wegner). This easy to use,
fast library
is used to save and load PNG files. It makes use of the
zlib library.
zlib1.2.3 from Jean-loup Gailly (jloup@gzip.org) and Mark Adler
(madler@alumni.caltech.edu).
Visit
http://ftp.cdrom.com/pub/infozip/zlib/ for the official zlib web
page.


This library is used for loading and saving PNG files (the PNG
library uses the compression/uncompression routines offered by
this libary).

Additionally this library is used to decompress compressed


UltraFractal parameter sets. And finally it is used in order to unzip
downloaded
zip files when using the automatic Formula Update
feature from ChaosPro.
JPEG library V6b from the Independent JPEG Group. This very fast
library is used to load and save JPG images.

http://www.chaospro.de/documentation/html/appendix/credits.htm[12/16/2018 2:27:44 PM]


Credits

MAPM package from Mike Ring: This package offers arbitrary


precision math. Several numbers in
ChaosPro need more
precision than the FPU offers. Especially the animation system
needs to perform calculations with more precision. The MAPM
package is
easy to use and flexible. There are some other
arbitrary precision math packages out there. But their authors
were not even capable of writing a decent
makefile. The MAPM
package can be used out of the box: Download it, and start using
it directly!

Documentation Reviewers

Ken Grant
He is currently reviewing and correcting the documentation. As he
is a native english speaker, he improved the readability of some
pages enormously. Thank you very much, Ken!
Testers


Many thanks to all my testers. Endless mails, many hints and tips. Endless
versions were mailed to them, and they
did not stop finding bugs. Thanks a
lot.
  Mario Beauchamp   William Clock   Julian Dederby
  Buaran Duhn   Valery Kritchallo   Jake and Mac Melon
  Rolf Schulz   Bill Smith   James Smith

Formula Authors


Without their help the ChaosPro distribution would have only a few
formulas, just very small
examples of how you can write your formulas. I
do not have the time, nor do I have enough fantasy to write
them.

  Marcelo Anelli   Paul Carlson   Sylvie Gallet


  David Makin   Kerry Mitchell   Samuel Monnier
  Gedeon Peteri   Stig Pettersson   Luke Plant
  Erik Nathan Reckase   Mark Townsend

http://www.chaospro.de/documentation/html/appendix/credits.htm[12/16/2018 2:27:44 PM]

Potrebbero piacerti anche