1. Introduction

Idea and purpose of this program is the calculation of three-dimensional fractals. The calculated objects are twisted, freely in space floating (and - of course - fractal) "lumps" which look like made of dough - in contrast to what is normally called "three-dimensional" fractals (namely a simple reinterpretation of the two-dimensional data).

The objects can be colored by linking space coordinates (or other parameters) to colors using a mathematical formula. The palette of colors can consist of up to 50 colors or color ranges.

Additionally it is possible to define intersection planes. With this feature the internal construction of the fractals can be displayed. Of course, especially interesting is an intersection with the complex plane: you get the usual two-dimensional fractal as intersection object how it could also be calculated by "Fractint" for example. Moreover it can be seen how different regions of the two-dimensional fractal are connected together in three-dimensional space.

Screenshot of Quat 1.2 (under Linux):

Screenshot of Quat 1.2

Normally, the the picture is calculated and saved in 24bit true color, but it can be displayed in 256 color during calculation (however in poorer quality).

The fractals calculated with Quat correspond exactly to the usual, two- dimensional "julia sets", which almost every fractal program can calculate. (Available iteration formulas are "Classical Julia" xn+1 = xn2 - c and "Lambda Julia" xn+1=cxn(1-xn) ; x0 represents the pixel being calculated.)
To achieve the third dimension, Quat uses the so-called "Hamiltonian quaternions" instead of the complex numbers with two components (real and imaginary part). The "quaternions" are a generalization of the complex numbers and consist of 4 components (1 real part, 3 imaginary parts). If you set the 2 additional components to zero, you get the usual complex numbers. Using quaternions (by the way, the name "Quat" is derived from "quaternions") it would be possible to calculate even four-dimensional fractals, nevertheless, only three-dimensional ones are really calculated. (If somebody invents a four-dimensional monitor, I will agree to change my program accordingly... :-) )

Generation of a really three dimensional view is possible (3d stereo). The fractal can be seen three dimensional without any utilities like 3d glasses.

The output format is the PNG format. It is the successor of GIF and offers - like GIF - compression of image data without loss of quality (JPEG compresses better, but the quality gets worse). More information on PNG: http://www.libpng.org/pub/png/. Because of the fact that PNG allows the storage of data specific to the application, Quat saves all data neccessary for the generation of the image within the PNG picture.

Quat uses a library named "ZLIB" to write the PNG-files. This library is a compression library and has nothing to do with fractal calculation. It was written by Jean-loup Gailly and Mark Adler. More information on ZLIB: http://www.zlib.org/

The user interface was implemented using the portable "Fast Light Toolkit" (FLTK). The hompepage of this project is located at

Quat is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Special thanks to Max Schwoerer for the clarification of some of the juridical questions, and to Oliver Siemoneit for his help on the English translation.
Many thanks to Larry Berlin (lberlin@sonic.net) for his advice in stereo view related topics, his many ideas for how to improve the program (especially the user interface), his testing of pre-release versions of Quat 0.92.
Larry Berlin maintains a great 3D-ezine (http://3dzine.simplenet.com/3dzine.html). He plans to show a gallery of images he derived from objects generated by Quat. I had the chance to see some examples. Really worth visiting!
Thanks to Eva-Maria von Garrel for testing.

1.1 What's new?

Version 1.20:

New features: Bugfixes:

Version 1.11: (Jul/12/2001)

No new features

Version 1.10: (Dec/14/2000)

New features: Bugfixes:

Version 1.01: (Aug/16/2000)

Bugfix release:

Version 1.00: (Aug/7/2000)

Version 0.92: (Dec/7/1998 ; 0.92b: Oct/5/1999)

Version 0.91: (8/2/1998)

Version 0.90b: (14/9/97)

Version 0.90: (29/7/97)

Initial version.

1.2 System requirements

Theoretically none, if you are able to compile ANSI-C/C++-Code with your system... :-)

The requirements for the pre-compiled (binary) versions of Quat are:

The source code of Quat is available, so it is possible to create a text only version (without graphical display, but with minimal memory usage) on any system that can compile ANSI-C. This makes sense for UNIX systems for example, which often have a GNU-C compiler installed along with the operating system. (But it should also be possible to use the system's native compiler.) C++ is only needed for the user interface.

1.3 Bugs and adresses, Mailing list

If you have some proposals for improving this program or if you want to report a bug, please send me an email (dirk.meyer@studserv.uni-stuttgart.de). I appreciate any feedback. If you like to (and are able to) program, you can send me your source code. I'll build it into future versions. (Of course I'll mention you as the author!) I have the model of "Fractint" in mind, maybe there are also some enthusiasts in this case!
My postal adress is:
Dirk Meyer
Marbacher Weg 29
D-71334 Waiblingen
New versions (and the source-code) of Quat are available at http://www.physcip.uni-stuttgart.de/phy11733/index_e.html
There's also a Mailing List available, which is used to discuss artistical aspects as also technical and mathematical topics. You can look at an archive of old messages at
To subscribe to the list and automatically receive all new messages, just send an e-mail to quat-subscribe@yahoogroups.com