You are on page 1of 21

Manual

This manual will introduce the basic principles of rendering fractals with Chaotica, as well as
document the various user interface components and program features.
Finally, some frequently asked questions (FAQ) are addressed.
If you have any comments or suggestions for this manual, please email us at
support@glaretechnologies.com.

Introduction
Getting Started
Tutorials
User Interface
Fractal Editing
Rendering
Rendering FAQ
General FAQ

Introduction

Introduction
Fractal art
Chaotica is an environment for creating and rendering fractal art. The most fundamental
trait of a fractal image is geometric recursion, and the resulting "self-similar" structure
where a certain pattern or design can be seen on many different scales.
This is often seen in nature, as for example in plants and geographic features:

An Iterated Function System (IFS) is a particularly powerful mathematical model for making
fractal images, with an extremely (inconceivably!) large design space, i.e. it can create a
enormous variety of unique and interesting images.
In the following sections, the IFS model in Chaotica is introduced, and the role of imaging
settings in making great fractal art explained.

IFS and iterators


The IFS process can be simply described by the following diagram of a feedback system:

The output of some system (usually referred to as a "black box", to deliberately abstract its
complicated inner workings) is fed back into its input, forming a feedback loop (or system).
Feedback loops are also commonly found in nature, and if you've ever heard the effect of
placing a microphone near an amplified speaker or seen the effect of pointing a video
camera at its output display, you have already experienced two common behaviours of
feedback systems:

Explosion / unbounded growth


This is when the system undergoes a net gain in energy with each cycle, causing the process
to spiral out of control and produce an aesthetically displeasing result.
Bounded / chaotic convergence
This is when the system undergoes a net energy loss, and remains stable (but chaotic) in a
bounded range. This is what we would like to achieve for our bounded images.

In Chaotica the IFS is comprised of one or more iterators, which are themselves comprised
of three parts:

(Geometric) Transform
Returns a new position given an input position, according to some function or program.

In the commonly used flam3 IFS model, the transform corresponds to a sequence of
transforms termed "variations", which can either replace the previous output point
or add a weighted amount of its output to the result.

Shader
Determines the output colour from an iteration.

For the flam3 IFS, the shader corresponds to a blending process where the used
palette location is moved towards or away from a specified location; the more often
that iterator is selected (by the selectors in the IFS), the more often its shader will

move the palette location towards its preferred location (effectively giving local
structure in the fractal that colour).

Selector
Determines which iterator to use next in the iteration chain.

For the flam3 IFS, this is a table of probabilities for each iterator in the IFS.

Imaging settings
Imaging settings are the settings which control the final colour reproduction from the raw
IFS output. It is essential to control the overall brightness and contrast for a high quality
result, and this requires some artistry in finding the right combinations of colours in the
gradient, and shaping the result with the colour response curves.

Getting Started
The first step to creating and rendering amazing fractals with Chaotica is to choose a
distribution to install. This will primarily depend on your Operating System (OS), and there
are versions for Windows, Mac OS and Linux.
If you plan to use Apophysis plugin DLLs, make sure the bitness of the plugin matches the
bitness of the Chaotica .exe you are trying to use. Most plugins are 32bit, though some have
been recompiled in 64bit.
Chaotica is available in both 32-bit and 64-bit versions for all platforms. Click here to go to
the downloads page.

System Requirements
Licence Activation
Basic Usage Tutorial
Importing Files from Apophysis
Using Apophysis Plugin DLLs

System Requirements
Chaotica will run on most modern computers (generally Pentium 4 or newer).

Minimum system specifications:


Windows:

CPU with SSE2 Intel Pentium 4 or better, AMD Opteron and Athlon 64 or better
4

1GB of RAM
100MB of hard drive space
Windows XP or newer

Mac:

Intel Macintosh PowerPC-based macs (G4 / G5) are not supported


1GB of RAM
100MB of hard drive space
OS X 10.7 or newer

Linux:

CPU with SSE2 Intel Pentium 4 or better, AMD Opteron and Athlon 64 or better
1GB of RAM
100MB of hard drive space

Recommended system specifications:

64bit CPU and Operating System (OS)


2GB+ of RAM

System Requirements
Chaotica will run on most modern computers (generally Pentium 4 or newer).

Minimum system specifications:


Windows:

CPU with SSE2 Intel Pentium 4 or better, AMD Opteron and Athlon 64 or better
1GB of RAM
100MB of hard drive space
Windows XP or newer

Mac:

Intel Macintosh PowerPC-based macs (G4 / G5) are not supported


1GB of RAM
100MB of hard drive space
OS X 10.7 or newer

Linux:

CPU with SSE2 Intel Pentium 4 or better, AMD Opteron and Athlon 64 or better
1GB of RAM
100MB of hard drive space
5

Recommended system specifications:

64bit CPU and Operating System (OS)


2GB+ of RAM

Basic Usage Tutorial


In this tutorial we will cover the basic steps required to render a fractal image.
Before starting, please ensure that you have installed the latest version of Chaotica, which is
available from the downloads page.
Opening and rendering an example
Chaotica comes with several example parameters, located in the "examples" folder. The
native file format is .chaos. To load a chaos file, choose Open World from the File menu, or
press ctrl+O.
From Chaotica 1.0.1 onwards, these are also built-in to the program, and can be accessed
from the File menu under "Browse examples."
Changing the resolution and brightness
You can select the resolution of your render using the spinboxes on the left side of the main
window. "Lock aspect ratio," which is checked by default, changes the height automatically
when you change the width (or vice versa). Since re-sizing the render also restarts it, "Lock
resolution" can be checked to disable accidentally changing the values in the spinboxes.

Imaging settings, including brightness, can be found on the right side of the main window.
Experiment with different brightness values until you find one you like. Altering the
brightness will not restart the render.

Saving an image
Once you are satisfied with the render, save the image via File > Save Image. For now,
Chaotica only saves in .png.

mporting Files from Apophysis


The best way to import .flame files to Chaotica is via the clipboard. First, copy the XML from
Apophysis using either ctrl+c or Edit > Copy. Then, paste to Chaotica using either ctrl+v or
Edit > Paste XML from clipboard. At this point, Chaotica will start rendering your fractal.
Troubleshooting Non-Matching Flames
Some Apophysis features are not supported by Chaotica, chiefly "3D hack" transforms and
settings (including 3D camera settings such as pitch and depth blur). Check to make sure
non-matching images do not use these features.
Missing or misbehaving plugins are the chief cause of incorrect renders. For more
information on plugins, see Using Apophysis Plugin .DLLs.
Occasionally a difference in renders is due to imaging. Chaotica's imaging is similar to that of
Apophysis/Flam3, but not identical. These differences are not severe render issues; they are
superficial and generally do not even require restarting the render. Most often, increasing
the brightness is an effective way to make the imaging match an Apophysis render.
Additionally, many artists make the final imaging itself part of the artistic process,
experimenting with curves and producing something wildly divergent from Apophysis's
render.

Using Apophysis Plugin DLLs


7

Do I need to use plugins?


Many plugins have been nativized in Chaotica, so just because you use a plugin when
working in Apophysis does not mean the plugin will be necessary in Chaotica. Click here for
the list of native transforms.
Installation
To install a plugin in Chaotica, simply copy the DLL and paste it into the "plugins" folder.
Most plugins are 32bit, but if you have 64bit plugins, Chaotica can use them. Make sure the
bitness of the plugin matches the bitness of the Chaotica .exe you are trying to use.
Troubleshooting
The diagnostics box on the left side of the main window will tell you if the parameters are
64-bit compatible, if they are using plugins, and whether those plugins are missing
("unrecognized attributes") or not.

Additionally, there are some restrictions as to what plugins can be used:

3D or DC plugins are not officially supported


While these may work to a limited degree (e.g. ignoring the Z co-ordinate or output colour
index), they are not officially supported.

Some broken or "hacky" plugins won't work


Due to the low-level nature of the plugin DLL system, some plugins fail to close properly
leading to a crash, while others don't work properly because they exploit undefined
behaviour in the plugin DLL system (designed for Apophysis). In these cases they are
normally blacklisted (see the next section).

Some "variations" (curl, epispiral, noise, etc) are inconsistent across different versions of
Apophysis
Chaotica aims to match the original versions of these transforms. If you are using Apophysis
7x, be advised that versions prior to 15C exhibit many fewer compatibility issues.

However, if a plugin DLL works, it will be available anywhere in Chaotica as a


transformation, i.e. it can be used just as well as a post-variation or pre-variation (in
Apophysis terminology), with different parameters for each instance.
Plugin blacklist
The plugin blacklist is a list of plugins, given by their file name, that should not be loaded
because they are expected to crash or otherwise fail. Most of these are extremely
infrequently used and/or have working alternatives.
The list is specified in the plugin_dll_blacklist.txt file in the 32-bit Chaotica directory.

Tutorials
Introductory tutorial by Tara Roys on her website: http://tararoys.com/intro-to-fractalsmaking-an-angels-wing-in-chaotica
Currently there are only a few tutorials linked below; more are currently under construction,
please check back soon.

Basic Gnarl
Chaotica 1.1 introduction video by Baka Arts
Chaotica Fractal Animation Tutorial
Creation of a Fractal Flower
Designing and Rendering Fractal Art

User Interface
This section is still in development, please check back later or email
support@glaretechnologies.com for assistance.

The File Menu


9

Render Settings
Status Bar
Imaging
Realtime Camera Controls
Randomisation Tools
State Files

The File Menu


Parameter files
Chaotica's native parameter format is .chaos. Saving and loading of Chaos files can be done
using File > Save World (ctrl+s) and File > Open World (ctrl+o).
Chaos files include imaging settings, so you can preserve things like curves. The .chaos
format is intended to hold much more information than .flame, so the conversion is oneway (you can not export from Chaotica back to Apophysis).
Images
For now, Chaotica only saves in .png. This can be accessed via File > Save Image.

Render Settings

Resolution: The dimensions of your image in pixels. "Lock aspect ratio" can be used
to easily re-size an image. "Lock resolution" prevents you from accidentally
restarting the render.

AA level: A higher AA (anti-aliasing) level results in finer details and better antialiasing, but requires more memory. Changing the AA level will restart the render.
Generally, AA level 2 makes great images, but you can use 3 and higher for
10

exceptionally detailed images, or ones with sharp bright edges. When rendering for
prints, AA level is not as important as reaching high DPI via image resolution, and AA
level 1 is often used in this case.

Save alpha channel: Used if you want your IFS to have a transparent background.
Does not restart your render.

Anti-aliasing mode: A selection of different filters used when anti-aliasing. Changing


these does not restart the render. If the AA factor is set to 1, the different modes will
have no effect.

At any time, you can press F5 to force-update the render preview, or Pause to pause the
render. Pause also resumes a previously paused render.

Status Bar
In addition to total time elapsed and time until next render, the status bar displays a lot of
useful information.

Sampling Level: A metric of how far along your render is. Each whole number step takes
more time than the last but results in equal visual improvement. In other words, it is
logarithmic, not linear. For more information on this, see Progressive Rendering Basics.

DE speed: Stands for density estimation speed. This is a basic measurement of how fast your
fractal is rendering. It depends both on your computer specs and your parameters.
Inefficient params or params with complicated plugins often render more slowly.

Efficiency: the nature of the IFS algorithm means that some samples fall outside the image
frame and do not contribute to the image. Efficiency is a measure of what percentage of the
calculations are contributing to the image. Zooming and transparent iterators both decrease
efficiency. A low efficiency contributes to a low DE speed. That said, low efficiency should
not be viewed as a defect; it is merely a property of your paramset! In general it's not
something that can be "fixed" without radically changing the fractal or camera settings.

But When is My Render DONE?


Chaotica is a progressive renderer, meaning it will render indefinitely if you let it. You can
save the render at any time, judging for yourself when the image quality is good enough for
a final product. As a rule of thumb, a sampling level of 13 is usually sufficient for most
fractals, though this can vary.

Imaging
11

Located on the right side of the main window, starting with brightness and ending with
background color. Changing imaging settings does not restart your render, so you can
experiment with them as your render progresses. These settings are saved with your
parameters in .chaos files.

Brightness: For the most part, higher numbers brighten your fractal. Sometimes, when a
dark IFS is on a light background, a higher brightness value seems to darken the fractal, but
this is because the IFS becomes more "solid" compared to the background.

1 / Gamma: Affects the contrast, with lower values generally inducing more contrast. Higher
values lessen (and can effectively negate) the effect of sample density/"strength" on the
final pixel color, thus returning "raw" colors from the palette. This can lead to a "flattened"
look, but can also be used artistically.

Highlight power: Changes the behavior of extremely bright and dense parts of the fractal. At
a higher highlight power, they will turn white more easily, as opposed to becoming a very
saturated version of the palette color.

Vibrancy: Something of a relic of the Flam3/Apophysis imaging. The vast majority of renders
are made with the default vibrancy of 1. Lower vibrancy will wash the fractal out toward
white and higher vibrancy will darken it toward black.

Gamma threshold: A cut-off for how dense a part of the IFS needs to be in order to be
displayed in the render. By using the gamma threshold to hide the thin parts of a fractal, you
can cut down on the grain that usually shows in areas with few samples.

Background color: Chaotica does not use the standard 0-255 for this. Rather, setting all
values to one will produce a white background. It is also possible to have negative values
and values greater than 1.

12

Response Curves

Chaotica has five response curves which can be used to drastically alter the colors of a
render. The overall curve essentially acts as a pre-gain, affecting all three color channels.
The single-channel curves are applied after this overall adjustment. Finally, the alpha
channel is independent of these, instead adjusting the transparency of the fractal against
the background.
On these curves, the x-axis represents the input and the y-axis represents the output, as is
standard in most image-editing software. Raising the right node will brighten the highlights
and lowering the left node will darken the lowlights, creating contrast. To zoom in or out on
a curve, hold alt, right click the curve area, and drag. New nodes can be added by clicking on
the curve and dragging.

Realtime Camera Controls


The crop of your render can be edited from the main window via the realtime camera
controls. Simply click directly on the image preview. Note that moving the camera around
will restart your render.

Pan: Alt + Left click and drag.

Scale: Alt + Right click and drag.

13

Rotate: Alt + Both mouse buttons and drag.

Randomisation Tools
The randomisation tools are located below the render settings on the right side of the main
window.

Using them opens the Parameter Browser, which displays a number of randomly-generated
thumbnails for you to choose from. This eliminates the need to re-randomise several times
before obtaining a result you like.
"New Random Worlds" makes completely new paramsets, the number of which is
determined by a spinbox. The palette, transforms, shaders, and selectors buttons will
randomise just the indicated part of your currently loaded paramset.
Keyboard shortcuts are shown in the tooltip when you hover over the buttons.

State Files
State files (having .lyc file extension) are used for saving the progress of a render when you
need to close Chaotica and wish to resume rendering at a later point. They are saved via
Tools > Save State.
Parameters (including imaging settings) are not contained within state files, so you must
additionally save your parameters in .chaos format alongside the state file. You will need to
have these parameters already loaded, with the resolution and supersampling settings
matching those with which the state file was saved, before you attempt to load the state
file.
State files can be very large if they are stored at high resolution, and especially with
supersampling values greater than 2.
14

Fractal Editing
This section is still in development, please check back later or email
support@glaretechnologies.com for assistance.

Palette Editor
World Editor

Palette Editor

The palette editor is used to design and edit the colours of the your fractal. It consists of
three curves (hue, saturation, and value) which can be manipulated independently. To zoom
in or out on a curve, hold the Alt key, right click the curve area, and drag. To add another
node, click directly on the curve.

15

Since Chaotica supports negative colours, a small red bar underneath the displayed gradient
indicates any places where the value is negative. Likewise, "brighter than white" colours are
indicated by a small white bar just above the displayed gradient.
Small arrowheads beneath the X axes of the curves indicate the palette indices of the
iterators in the fractal, although this does not necessarily mean that particular colour will
appear in your render.

Palette Editor

The palette editor is used to design and edit the colours of the your fractal. It consists of
three curves (hue, saturation, and value) which can be manipulated independently. To zoom
in or out on a curve, hold the Alt key, right click the curve area, and drag. To add another
node, click directly on the curve.
Since Chaotica supports negative colours, a small red bar underneath the displayed gradient
indicates any places where the value is negative. Likewise, "brighter than white" colours are
indicated by a small white bar just above the displayed gradient.

16

Small arrowheads beneath the X axes of the curves indicate the palette indices of the
iterators in the fractal, although this does not necessarily mean that particular colour will
appear in your render.

Iterators
Iterators
An interator contains the following nodes:

Transforms: pre affine, pre transforms, transforms, post transforms and post affine
Shader
Weights

Transforms handle the geometrical part, while shader handles the coloring and weights
(selectors) handle the selection of the next iterator.

To expand and existing iterator or one of its elements, click the + on the left of its name in
the tree view (World nodes).
To add a new iterator, click the New iterator button on the Toolbar.

17

Rendering

Progressive Rendering Basics


Batch Rendering and Animation

Progressive Rendering Basics


Introduction to progressive rendering and Sampling Level (SL)
Progressive rendering is an alternative to the normal fixed-length rendering, where you
specify ahead of time the amount of computational effort that should go into the rendered
image. Fixed-length rendering is important for animation use, however for still images a
substantially better paradigm is progressive rendering, where the image is progressively
improved over time, and rendering can be stopped at any point you think looks good
enough (you can press F5 at any time to update the image).
This is especially useful for print rendering, where an early finish can save hours of wasted
rendering.
The Sampling Level metric
A useful indicator of image quality is the Sampling Level metric, which is defined as the
(base 2) logarithm of the number of contributions per pixel in the rendered image. Let's
break apart this definition to better understand why it's useful.

Contributions per pixel


The IFS algorithm is performed for a certain number of iterations, however not all of these
iterations produce contributions to the image (particularly if the viewing rectangle is very
small / zoomed in).

The ratio of contributions to iterations is called the efficiency, and it is better to


measure the image quality in terms of the number of actual contributions to the
image.

18

Logarithmic vs linear contributions per pixel


The logarithm captures the exponentially growing work required for equal perceptual
difference steps in the image:

If you've been rendering for 10 seconds, then 1 extra second won't make a big
difference, but 20 seconds in total will be noticeably different; after that, an extra
second is just a drop in the pond compared to the amount of work already
expended, and it's not until 40 seconds rendering that it becomes worth doing
another image update. This process continues exponentially, and it's useful to
quantify which "level" we're on, and how far through it we are - this is precisely what
the logarithm function does.
Since a fractal's overall "smoothness" depends strongly on its parameters, there is no fixed
Sampling Level that suffices for all images; however, a range of 10-15 normally suffices to
produce a high quality final image.

Batch Rendering and Animation


Stopping SL, found on the left side of the main window with the render settings, makes
Chaotica stop rendering at the desired sampling level when checked (instead of the normal
rendering mode which never ends).
When combined with batch mode, this is useful for rendering large numbers of paramsets at
once, such as when making an animation. Once stopping SL and batch mode are both
checked, use the "..." button to select the directory in which to save completed renders.
Chaotica will then render every paramset currently listed in the world editor.

Rendering FAQ

What resolution should I use?


For animations:
Here are some standard resolutions for video/animations:
o
o
o

Full HD or 1080p: 1920 x 1080


HD or 720p: 1280 x 720
Lower res for eg YouTube: 960 x 540, 640 x 360

If your animation isnt naturally 16:9 aspect ratio like the resolutions above, use one
of the standard widths and a height that is a multiple of 8 (or ideally 16) pixels.

19

For wallpapers and digital portfolios:


Don't render excessively large images: since it will be viewed on a computer screen,
the resolution should be kept close to screen resolutions. For example, rendering a
desktop wallpaper at 19200 x 12000 resolution is not a good idea: it would have to
be resized to be viewed at once, and this resizing almost always degrades Chaotica's
high quality anti-aliasing. Futhermore, rendering at that high resolution will take
much longer.
For prints:
Prints require high resolution images because of the high DPI ("dots" per inch).
Here's a list of some commonly used print sizes and corresponding image resolutions
for a 300 DPI image:
o
o
o

A0 - 841 1189 mm or 33.1 46.8 inches - image resolution: 9930 x 14040


A1 - 594 841 mm or 23.4 33.1 inches - image resolution: 7020 x 9930
A2 - 420 594 mm or 16.5 23.4 inches - image resolution: 4950 x 7020

To find out the required image resolution for a different print size, you multiply the
number of inches along a side with the dots per inch, to get the number of "dots" or
pixels: (inches) x (DPI) = (dots). For example, for a A3 print at 200 DPI, we have 11.7 x
200 = 2340 and 16.5 x 200 = 3300, so the render resolution will be 2340 x 3300.

What AA factor should I use?


For animations:
AA factor 2 and Smooth AA mode are usually optimal for animations. If you use a
higher AA level or use a different AA mode, the rendering time is greatly increased,
which becomes problematic if you need to render thousands of frames for a
medium-length animation.
For wallpapers and digital portfolios:
AA factor 3 makes exceptionally high quality images, but you can even use AA 4 for
rendering extremely detailed fractals, or images with high contrast edges.
For prints:
When rendering for prints, AA level is not as important as reaching high DPI via
image resolution. AA factor 1 is often used in this case, and still delivers a reasonably
high quality result.

When should I use ultra quality?


Ultra quality is used when you want the absolute highest image quality and are
willing to take a substantial performance hit for it. It also uses much less memory
than the normal rendering mode for comparable image quality, usually about half as
much.
If you are looking to make exceptionally high quality desktop wallpapers, or are
making large print images with anti-aliasing and are running into memory
20

limitations, ultra quality mode is a powerful tool to trade more rendering time for
higher quality images using less memory.

General FAQ

Why is my computer running hot / at 100% usage?


Fractal rendering is a processor-intensive task, and Chaotica is optimised to make the
most of your computer's available resources. This means full use of all processor
cores.
If your computer is older and perhaps dusty, this continuous strain can generate
excessive heat compared to short, simple tasks such as loading a web page.

Does Chaotica support GPU acceleration?


Chaotica currently uses a (highly optimised) CPU-based rendering engine; however,
OpenCL support is planned for the future, so that all GPUs can be used to accelerate
rendering.

Why does the 32bit Windows version of Chaotica run out of memory when I have
plenty available?
32bit Windows programs are limited to at most 3GB of memory, even when specially
compiled to be "Large Address Aware" as Chaotica is on this platform. In practice less
memory is available, according to some sources as little as 2.2GB. However, this is
still much better than the ~1GB allocation limit without this option.
We strongly recommend rendering with the 64bit version of Chaotica if you are
looking to make large images.

Reference:
http://chaoticafractals.com/manual

21

You might also like