This is the tutorial for XaoS 2.2. If you use a different version, please update
XaoS or this tutorial from its homepage
Why use XaoS
We decided to make XaoS, because all fractal browsers we know needs long
time to calculate every image. You may browse nice images generated by
them but real impression from fractal - they self similarity and possible
infinite zooming into nice part of fractals can be seen only in animation.
There are many programs available that makes nice animations but they takes
long time to calculate and lots of space on disc. Most of animations are
quite ugly because their authors can't see it without many hours of calculations.
I found special algorithm that saves up to 99.98% of calculations during zooming.
I am not first, who discovered it. Later I found some demos, that makes
real-time zooming but I don't know any that is interactive and as fast as XaoS.
XaoS is able to generate full-screen 320x200 animation on 486 in reasonable speed
(5-20 frames per second). It uses several methods to save calculation - Uses
pixel from previous image, solid guessing, symmetry, avoids calculation inside
Mandelbrot set and much more.
How to zoom
Main advantage of XaoS is that after few seconds needed to calculate first image
you may choose some point by mouse and press left button. Image will start to zoom
smoothly into point you choose. You may move mouse and zoom smoothly into
interesting areas. By pressing middle button (or left+right) you may also move
image using "drag & drop" in case you missed some interesting place. UN-zooming
is also possible by right button, but it is much slower because optimizations
are not so effective as for zooming.
To make this animation XaoS calculated more than 25*6 frames of 320*200 pixels.
Every pixel needs aprox 60 iterations. So by normal algorithm you need:
25*6*620*200*60 = 576000000 iterations!
Suppose that every iteration on some computer with Mandelbrot coprocessor needs
one instruction. On 66MHz it needs 8 seconds to calculate it!
By pressing button here:
After six seconds of zooming:
In case you think that default speed is boring (it is quite slow to make XaoS
smooth on slow computer) you may change it by pressing arrow up/down. But understand
that faster zooming is more expensive so if speed is too high you should
see just funny colorfull blinking rectangles.
To make XaoS yet more impressive we did special autopilot that automatically
drives into interesting boundaries of set. So you should press 'A', play your
favorite music, drink coffee and relax. I never tried this but it should be
really relaxing! Many pictures in XaoS gallery
are discovered using autopilot.
Autopilot has also some additional features. It return back in case zoomed
picture is not interesting anymore. Also is able to detect, when zoomed into
really boring part or reached limit of floating point numbers and restart
Various fractal formulas
XaoS also supports other formulas than Mandelbrot set. You may change formula
using keys '1' - '0'.
On keys '1' - '5' are Mandelbrot sets with various power. The "normal" Mandelbrot
set is: z=z^2+c on key '1'. For example on key '3' is z=z^4+c.
On key '6' is fractal called octo. It is some fractal that Thomas discovered
in fractint. Looks nice in other planes..see bellow.
On key '7' is Newton. It is famous newton formula for finding roots.
On key '8' is Bernsley. It is another formula comming from real world..
I forgot what means.
On key '9' is Phoenix. It is very nice and quite famous fractal.
On key '0' is Magnet. This fractal has quite complex formula so it is bit slow.
To make fractal yet more interesting more coloring modes for points outside set
are provided. "Classical coloring mode" uses number of iterations that orbit
required to escape boundaries. After pressing 'C' following menu is displayed:
Please select outcoloring mode:
1 - iter
2 - iter+real
3 - iter+imag
4 - iter+real/imag
5 - iter+real+imag+real/imag
6 - binary decomposition
7 - biomorphs
Now you may choose mode by pressing key '1' - '7'
Those crtyptic names are mathematical formulas where iter means number of
iterations, Real real coordinate of last orbit, Imag imaginary coordinate of last orbit.
- this is classical coloring mode that takes number of iterations
- this mode takes number of iterations and adds real part of last position of orbit
- similar to previous one except takes imaginary part
- as previous but adds real part divided by imaginary part. There is no
mathematical reason for it. Just looks well..
- this is summary of all previous modes..
- binary decomposition
- takes number of iterations in case that imaginary part is greater than zero.
Otherwise takes maximal number of iterations minus number of iterations
- takes number of iterations in case that imaginary or real part is inside boundaries.
Otherwise takes maximal number of iterations minus number of iterations
Similiar to out coloring mode is in coloring. It is only way how to display
thinks inside set. Only one mode is provided. Takes color by magnitude of Z.
It can be enabled by pressing 'F'. Press of again to disable it.
All fractals displayed by XaoS are function with complex parameter.
It can be displayed in normal complex plane where x is real part of number
and y is imaginary. But may be also displayed in some other planes. After
pressing 'I' following menu is displayed:
Please select display plane:
1 - mu
2 - 1/mu
3 - 1/(mu+0.25)
4 - lambda
5 - 1/lambda
6 - 1/(lambda-1)
7 - 1/(mu-1.40115)
Another cryptic names. And, you guessed, another mathematical formulas.
Here mu means coordinates in normal complex plane.
In case you have coordinates in 1/mu plane and you need complex plane
(to calculate mandelbrot) you simply use coordinates as variable mu.
Lambda is another plane that can be converted to mu using similiar
Inversion-infinity is in 0 and 0 is in infinity.
Similar to inversion but moves center outside of Mandelbrot
so it looks parabolic
- lambda plane
- Inversion of lambda plane
- Inversion with moved center
- Very interesting mode for Mandelbrot set. Makes small thinks big.
So you can browse its details.
Octo and newton fractal looks well in other planes.
Most of fractals displayed by XaoS (currently all of them) have two forms:
Mandelbrot and Julia. Every point in Mandelbrot form has its own Julia set.
You may display it moving mouse to point you selected and pressing 'M'
. To return back press 'M' again. Some fractals (barnsley and phoenix) are
already in their Julia versions, because Mandelbrot ones are boring. But by
pressing 'M' in such fractal you should get to Mandelbrot version and by
choosing another point as base and pressing 'M' again you should get completely
different fractal. The most interesting points for Julia sets are at boundaries
of Mandelbrot set. Most of Julia inside or outside set are boring.
By pressing 'M' here:
You will get following Julia:
Fast julia preview mode
New to 2.2 releasi is Fast julia preview mode. It is sollution for question:
What point use as base for julia set. Just press 'J' and small
julia set will be displayed at top left corner. Then move mouse arround with
pressed button 1 and julia to corresponding point will be automatically
generated. Note that this function works just for Mandelbrot power 2-6, barnsley
and partially magnet fractal. Also output isn't perfect especially with magnet
fractal differs from real one.
Fast preview mode
In case you think that default XaoS colors are ugly or you are just bored
by them you may try to change it by pressing 'P'. XaoS will generate
automatically random palette. Many of them looks ugly so press 'P' again
to get different one.
UNIX/X11 specific note:
In 8bpp pseudo-color X11 colors can look very ugly, because palette is
shared with other programs and when XaoS can't allocate its palette it simply
uses simpler one. Also changing of colors takes long time. To avoid this use
true-color or hi-color displays, close some colorful applications like netscape,
or use -private switch. Using -private speeds up palette changing or rotation, because recalculation of mandelbrot after every change is not required.
This is very old trick that makes mandelbrot set more interesting. You may
enable/disable it using 'O'.
This trick is easy to implement on clasical
PC VGA cards. At other platforms this should be implemented by
other way than normal palette changing, pecause palette is shared with other
programs(X windows in pseudocolor) or truecolor display does not have palette
at all. XaoS emulates this feature at most such platforms but this emulation
should slow down a much. For example at truecolor or text displays this requires redrawing of whole screen
Some drivers does not support it at all.
And at X11 with 8bpp pseudocolor palette rotation
does not work in default shared palette mode. You need to use -private
switch to enable this feature.
When palette rotation is enabled, you may control its speed using key left and right. Normally this keys are used for changing number of iterations. See following part.
Changing number of iterations
To calculate fractals perfectly you need infinite number of iterations.
XaoS does just first few of them so after longer zooming you may get into place
that looks quite boring and boundaries of set are rounded w/o any interesting
details. This should be changed by changing number of iterations:
Press and hold arrow left and wait until iterations are high enough. This
may slow down calculation much..to reduce number of iterations press arrow
This boring area:
Should be funny again
with 1000 iterations:
Random dot stereograms
Fractal images are also good as base for random dot stereogram. In case
you don't know what this mean, please point your browser to altavista or
other searching engine and find some article about this images because
browsing such images is not easy. They makes possible to generate three
dimensional images at normal monitor without any additional hardware.
To enable this mode press 'E'. XaoS is also able to generate this images
in animation so you may use all normal XaoS functions except palette changing/rotation,
because this is unnecesary. To make animation yet more exciting XaoS emulates
"falling" into the set. So during zooming distance from set is getting lower
and lower. But never lets you fall down so when set reeaches level of your
monitor distance is changed again and you are far away.
To make this in real sizes xaos needs to know exact sizes of your monitor.
Because most platforms does not know this values you need to use command
line options to tune this. Otherwise you should have problems with seeing
anything in images generated by XaoS (in case your monitor is too big or
resolution low). Or
images are not as deep as normaly (in case your monitor small or resolution high).
By default xaos expect my 15" monitor (29.0cm x 21.5 cm). Another problem is
virtual screen supported by some windowed enviroments(like X11) that makes
program think that resolution is higher and you see just part of this screen.
This cause problem with recalculation screen size to pixel size.
The worst think you should do at all is to run fullscreen XaoS in some
graphical window(windows 95 or OS/2 ?) where XaoS don't know that real
size of his window is different.
Following command line options are provided for this.
This options are used by some other parts of XaoS too. So you should use
them even you don't want to see stereograms. You should write small starting
script that passes correct parameters.
- lets you specify size of your screen in centimeters. Note that you need
to specify size of image at you monitor. Not size with some borders or such.
- lets you specify exact size of one pixel in cases I described bellow.
Another problem should happend when window is smaller than 8cm. In this
case you will be unable to see anything.
So correct way to see XaoS stereogram is:
- start XaoS with options specifying corect size of screen or pixel
- Sit 60cm away from monitor
- Put your eyes to distance 8.5 cm from each other :)
- In case you use windowed enviroment resize XaoS window to make it
wider than, say, 15 cm.
- press 'E'
- concentrate far away from monitor(you should try to use your reflection..)
until random points will get into different distances and you will see
- Curefully use you mouse to zoom into interesting areas(it is easy to lose
concentration when you are not trained. Or use autopilot.
- Enjoy animation :)
Last problem should be that fractal is deformed This can be caused
by wrong geometry of your monitor. Eye is extremly ensible for distances
so should see very small changes in geometry that are normally unvisible.
Changing of resolution
XaoS usually starts in low resolution (320x200 or so) to make calculations
faster. In case you have fast computer or you need to save bigger .gif images
you may change resolution. This should be done by pressing '=' in
full screen drivers or simply by resizing XaoS window.
Changing of driver
XaoS usually have more than one driver available. You may change it on the fly
in case you want different one. For example XaoS started in X windows and you
want to use curses driver. This can be done by pressing 'V'. This
action is bit dangerous, because XaoS can crash during inicialisation in
case of some unexpected problem. Also colormap is set to default one.
XaoS used solid guessing. This mean that when it wants to calculate pixel
but all pixels around are blue it simply expects that this pixel is blue
too. This speeds up a much but also may cause inexact results. Especially after
zooming when error is propagated.
result of wrong sulig guessing:
Many fractals fans now asks why I don't use boundary detection. Please see
ahgorithm descriptions that explains why I decided
for solid guessing.
You may solve this problem by two ways:
After pressing 'G' folliwing menu is displayed:
- press 'R' to let XaoS recalculate image
- use 'G' to control solid guessing.
Plase select solid guessing mode
1 - solid guessing disabled
2 - guess maximally 2x2 rectangles
3 - guess maximally 3x3 rectangles
4 - guess maximally 4x4 rectangles
5 - guess maximally 5x5 rectangles
6 - guess maximally 6x6 rectangles
7 - guess maximally 7x7 rectangles
8 - guess maximally 8x8 rectangles
Now you may choose range. Default is 2x2. Larger range means faster calculation
and less exact results. By pressing '1' you may disable this feature.
Sometimes calculations takes so much time so framerate should fall very very low.
In this cases xaos automatically reduces details so animation is still quite
smooth. You may control This feature by pressing 'T'. Following menu is displayed:
Plase select drawing mode
1 - fast drawing disabled
2 - use only during animation
3 - use also for new images
This lets you choose when such resolution lowering is possible. By pressing
'1' you may disable it at all. '2' is the default mode.
'3' enables this also for new images. So when XaoS recalulates screen
nice pixelizing effect is performed. Only disadvantage is that it is slower
than normal calculation.
After pressing '?' you may invoke displaying of status information.
In this list you may find all informations about current image. Example status:
Screen size: 158:98
Iterations: 128 Palette size:248
- Image saving
By pressing 'S' you may save current image into interlaced gif image.
Fractal is recalculated before saving to get best possible output
- Interrupting of calculation
By pressing 'Z' you may interrupt current calculation in case it is too long and
you know that it is bad..
- Displaying of current status
By pressing space during calculation you may invoke displaying of current status.
It looks bit strange because some part are already calculated and some part
are from some old image. But you may guess how result will look like..
- Online help
By pressing 'H' hyperuglytext viewer with help text is displayed. Using keys '1' and '2' you may browse help.
This is really not necessary..but by 'Q' you may quit XaoS.
Curses driver bit differs from normal drivers because it allows you to display
real-time zooming on text terminals. It has many advantage over other drivers
so I will quickly describe them.
Online help briefly describing keys is also available by pressing 'H'.
Very significant part is at the end where is documentation specific to your driver.
It may contain some interesting informations not contaned in documentations
about XaoS at all.
Command line options
as every good program XaoS also have command line options. Run xaos -h for help,
or see xaos.1 or xaosman.txt for more documentation.
Interested in more informations?
You may subscribe to our discusion about XaoS at firstname.lastname@example.org
by sending message
you may also subscribe xaos-announce in case you want to be informed
about new releases or xaos-devel in case you want to become XaoS
developer (and you will be welcomed)
Send all comments, questions, suggestions, etc... to
Copyright © 1996 by Jan Hubicka. All rights
Last Modified: Fri Jul 26 14:09:01 CDT 1996