Main Software Gallery Blog
Visions of Chaos for Android

Visions of Chaos Logo

Visions of Chaos for Android is an Android app version of Visions of Chaos.

Visions of Chaos Screen Shot

Program modes supported within Visions of Chaos are;

Cellular Automata
     2D Cellular Automata
     2D Cyclic Cellular Automata

Fractals
     Buffalo Fractals
     Burning Ship Fractals
     Mandelbrot Set Fractals
     Root-Finding Fractals

OpenGL ES Shaders
     Over 1000 sample shaders included

See this gallery for some sample images I created while developing the app.


Download Visions of Chaos
This app is 100% free and ad free. System requirements are a device running Android Version 4 (KitKat API Level 15) or higher which covers approximately 98% of all Android devices. Support for GLES 2.0 or above is required (3.0 recommended) to run the included shaders.

Click here to download Visions of Chaos from the Google Play store.

Version 1.17 - 20th of July, 2016.


App Navigation
The area at the top of the screen is called the action bar.

The left side of the action bar displays the current Mode name in large text and status text under it in a smaller font. The following screenshot shows the stats when the app is first launched showing CPU cores available, GPU version supported and current device resolution. When the app is generating images or working you will see the status text update with progress stats and estimated time left.

Visions of Chaos Screen Shot

When you touch the left side of the action bar the navigation drawer opens. The navigation drawer allows you to switch between the various modes the app supports. When you select a mode the settings dialog for that mode will be displayed.

Visions of Chaos Screen Shot

The right side of the action bar has icons for the most common tasks of the selected mode. Touching the 3 dots on the far right of the action bar opens the menu.

Visions of Chaos Screen Shot


Buffalo Fractal Mode

Visions of Chaos Screen Shot

When you select Buffalo fractals from the left side navigation drawer it will automatically display the Buffalo Settings dialog.

Visions of Chaos Screen Shot

Maximum iterations

Changes how long the fractal formulas are repeated on each pixel. As you zoom in deeper you will need to increase this value.

Formula Power

Changes the power value in the fractal formula which changes the shape of the fractal generated.

Render quality

Changes the size of each individual image pixel. This allows you to quickly zoom into the fractals with low quality images and then increase the quality for a final output.

The default of 4x4 uses blocks of 16 device screen pixels for every single fractal pixel. This is usually enough detail to allow faster zooming, but you can adjust this at any time if you have a slower device or prefer to wait as higher resolution images are generated. For the best quality output use Ultra quality which averages 9 calculations per pixel for the highest detailed smooth image results.

Higher quality does take much more time to generate. For example Normal quality is 16 times slower than Lower quality. Ultra is 144 times slower than Lower quality. Try and find a middle ground between speed and quality for your device.

Load button

Loads a sample fractal parameter file. Also loads any parameter files you have saved while exploring.

Save button

Saves the current fractal paramters to a file so it can be loaded in the future.

OK button

Generates the fractal image.

Cancel button

Closes the dialog and does not generate a fractal image.


Burning Ship Fractal Mode

Visions of Chaos Screen Shot

When you select Burning Ship fractals from the left side navigation drawer it will automatically display the Burning Ship Settings dialog.

Visions of Chaos Screen Shot

Maximum iterations

Changes how long the fractal formulas are repeated on each pixel. As you zoom in deeper you will need to increase this value.

Formula Power

Changes the power value in the fractal formula which changes the shape of the fractal generated.

Render quality

Changes the size of each individual image pixel. This allows you to quickly zoom into the fractals with low quality images and then increase the quality for a final output.

The default of 4x4 uses blocks of 16 device screen pixels for every single fractal pixel. This is usually enough detail to allow faster zooming, but you can adjust this at any time if you have a slower device or prefer to wait as higher resolution images are generated. For the best quality output use Ultra quality which averages 9 calculations per pixel for the highest detailed smooth image results.

Higher quality does take much more time to generate. For example Normal quality is 16 times slower than Lower quality. Ultra is 144 times slower than Lower quality. Try and find a middle ground between speed and quality for your device.

Load button

Loads a sample fractal parameter file. Also loads any parameter files you have saved while exploring.

Save button

Saves the current fractal paramters to a file so it can be loaded in the future.

OK button

Generates the fractal image.

Cancel button

Closes the dialog and does not generate a fractal image.


Mandelbrot Fractal Mode

Visions of Chaos Screen Shot


When you select Mandelbrot fractals from the left side navigation drawer it will automatically display the Mandelbrot Settings dialog.

Visions of Chaos Screen Shot

Pixel color display style

Changes the look of the generated fractal image. Here are four sample images from the same Mandelbrot location to show the differences.

Iteration bands

Visions of Chaos Screen Shot

Smoothed colors

Visions of Chaos Screen Shot

Triangle inequality average

Visions of Chaos Screen Shot

Last z angle

Visions of Chaos Screen Shot

Maximum iterations

Changes how long the fractal formulas are repeated on each pixel. As you zoom in deeper you will need to increase this value.

For example, the following Mandelbrot has smoothed edges to the middle black area. This is caused by the iterations value being too low.

Visions of Chaos Screen Shot

Once you regenerate the image with a higher iteration count the full details of the fractal are revealed.

Visions of Chaos Screen Shot

So when you notice the inside edges of a fractal losing details or getting smoother increase the iterations to show all the details.

Formula Power

Changes the power value in the fractal formula which changes the shape of the fractal generated.

Render quality

Changes the size of each individual image pixel. This allows you to quickly zoom into the fractals with low quality images and then increase the quality for a final output.

The default of 4x4 uses blocks of 16 device screen pixels for every single fractal pixel. This is usually enough detail to allow faster zooming, but you can adjust this at any time if you have a slower device or prefer to wait as higher resolution images are generated. For the best quality output use Ultra quality which averages 9 calculations per pixel for the highest detailed smooth image results.

Higher quality does take much more time to generate. For example Normal quality is 16 times slower than Lower quality. Ultra is 144 times slower than Lower quality. Try and find a middle ground between speed and quality for your device.

Load button

Loads a sample fractal parameter file. Also loads any parameter files you have saved while exploring.

Save button

Saves the current fractal paramters to a file so it can be loaded in the future.

OK button

Generates the fractal image.

Cancel button

Closes the dialog and does not generate a fractal image.


Root-Finding Fractal Mode

Visions of Chaos Screen Shot

When you select Root-finding fractals from the left side navigation drawer it will automatically display the Root-Finding Fractal Settings dialog.

Visions of Chaos Screen Shot

Formula and Root finding Method

Both of these result in unique fractal types being generated. Exoperiment with combinations of both of them for different fractal images.

Palette step amount

If you use a smooth and less busy color palette it can hide some of the details in the fractal image. Increasing the palette step brings the distance between the color palette entries closer together and can bring out more details in a fractal image. Here are three sample images to show the difference Palette Step can make.

Palette step 3.

Visions of Chaos Screen Shot

Palette step 6.

Visions of Chaos Screen Shot

Palette step 9.

Visions of Chaos Screen Shot

Pixel color display style

Changes the look of the generated fractal image. Here are three sample images to show the difference.

Single color per root

Visions of Chaos Screen Shot

Smooth color.

Visions of Chaos Screen Shot

Render quality

See the Mandelbrot render quality explanation. Root-Finding fractals are slower to generate than Mandelbrot and Burning Ship, so a lower quality should be used until your final high res render.

Load button

Loads a sample fractal parameter file. Also loads any parameter files you have saved while exploring.

Save button

Saves the current fractal paramters to a file so it can be loaded in the future.

OK button

Generates the fractal image.

Cancel button

Closes the dialog and does not generate a fractal image.


2D Cellular Automata mode

Visions of Chaos Screen Shot

When you select 2D cellular automata from the left side navigation drawer it will automatically display the 2D CA Settings dialog.

Visions of Chaos Screen Shot

Preset 2D cellular automata rules

A set of sample CA rules. Includes a bunch of the most famous rules and a few I found myself over the years.

Number of states each cell can have

The maximum number of states any cell can have.

Cell neighbours required for survival and birth

When checked the number of surrounding neighbour cells that cause an existing cell to survice, die or be born.

Cell size

Size of each individual cell. For devices with a high resolution display this can be increased to shoe the individual cells more clearly.

Color scheme

Some built in color schemes to shade the cell values.


2D Cyclic Cellular Automata mode

Visions of Chaos Screen Shot

When you select 2D cyclic cellular automata from the left side navigation drawer it will automatically display the 2D CCA Settings dialog.

Visions of Chaos Screen Shot

Preset 2D cellular automata rules

A set of sample interesting CCA rules.

Range, Threshold, States and Neighbourhood

Change the way the CA runs and updates are applied.


OpenGL ES mode

Visions of Chaos Screen Shot

When you select OpenGL ES Shaders from the left side navigation drawer it will automatically display the shader editor dialog.

Visions of Chaos Screen Shot

Shaders are small programs that run on your device's GPU (graphics processor) rather than CPU. You can edit the shader code directly and see what changes it makes.

Pixel Size spinner

Controls the pixel size. Smaller size means higher detail but slower speed. After you run a few of the samples you should get a feel for which size is best for your device.

Load button

Loads one of the 1000 included sample shaders. Most of the samples have been copied from http://glslsandbox.com/ and https://www.shadertoy.com/ and modifiedto run on mobile devices. The original author credits have been included where possible.

Save button

Saves the current shader code.

Run button

Compiles and executes the current shader code.

Settings button

Opens the OpenGL ES Settings dialog.

Visions of Chaos Screen Shot

High precision shader code

If your device supports higher precision GLES calculations then this should be enabled. If your device does not support higher precision then you may as well ignore the GL ES mode as the output will not be correct for the majority of the included samples. When you first launch the app you want to see "GLES v2" or higher in the stats area. If GLES version supported is detected to be less than 2 the GLES mode will be disabled.

Color syntax highlighting

Uses color to distinguish between reserved words, operators, etc in the shader code. This can slow down the display on larger shaders and/or slower devices so it can be disabled if you find it impacts performance too greatly.

Color theme

Selects one of the built in color syntax themes.

Size of editor font

Sets the size of the GLES editor font. This can be adjusted to suit your device and ease of reading.

When in the OpenGL ES mode the actionbar has three new icons. The die button will randomly load one of the included shaders. The arrow buttons will go to the previous and next shaders in alphabetical order.

Visions of Chaos Screen Shot

Note that GL ES support is not across all devices and different devices have different compilers that will crash when others will be OK. If a compile error is encountered it will be displayed and the offending shader line of code will be highlighted.

Sometimes bad shader code can crash the app. In one case my test tablet spontaneously rebooted when I was testing some new shader code. Code that ran fine on Windows may not work on mobile devices. Many of the included sample shaders needed tweaks to get them compiling and running under Android. If one of the samples runs too slowly or crashes the app on your device try the next sample.

Before a shader runs the compiling and linking can take up to 10 seconds or more for more complex shaders. So have patience and watch the status text for info on what is happening.


Touch response
The app will react in different ways to touch depending on the mode selected.

For 2D Fractals single finger touch will scroll the fractal position. Two finger pinching will zoom into the fractal.

For Cellular Automata modes new random cells will be inserted under the touch/drag location. So if you have a CA run that is dying out a quick "click and drag" will get it working again.

For OpenGL ES mode touch will cause changes to shaders using the mouse uniform variable.


Zooming Into Fractals
You can zoom into see further details of the Mandelbrot, Burning Ship and Root-Finding fractals.

Once a fractal image is completed touch the area you want to zoom into. Note that you can stop a generating fractal by clicking the action bar stop icon. This allows you to zoom into an area of a fractal you find interesting without having to wait for the rest of the fractal image to generate.

Fractals do have infinite detail but the floating point accuracy means you can only zoom in to a magnification of roughly 100,000,000,000,000x. Beyond that the pixels start to get blocky and no further detail is possible. You will get a warning message when you are zoomed to that depth.

When you want to zoom fully out and get back to the starting point of the fractal click the Reset icon on the action bar.


Color Palettes
Visions of Chaos comes with over 2,200 color palettes built in. To change the current fractal color scheme click the palette icon on the action bar and you will see a dialog of the avilable palettes.

Visions of Chaos Screen Shot

The current palette is highlighted with a yellow border.

Scroll through the dialog and click the palette you want to use.


Image Levels
Select Image Levels from the right side menu to see a set of sliders that you can adjust the current image in realtime.

Visions of Chaos Screen Shot


Sharing Images
Select Share image from the right side menu to share the current image with whatever share methods your current device supports.


Gallery
Visions of Chaos creates a sub gallery under your device main gallery for saving images to.

Select Save image to gallery from the right side menu to save the current image to your gallery. The file is automatically named for you based on the current date and time.

Select View gallery from the right side menu to see the existing images in the gallery.


Global Settings
To see the global settings, select Settings from the menu. The settings are explained bellow.

Visions of Chaos Screen Shot

Smooth filter output
Applies a blur filter when larger pixel sizes are used. For example here is a fract image using huge 8x8 sized pixels without and with blur.

Visions of Chaos Screen Shot

Visions of Chaos Screen Shot

Touch to stop generating

Stops the current image being generated when the screen is touched. By default this is off as it is realitively simple to accidentally bump the screen and stop an image being generated that you do not want to stop.

Auto hide actionbar when generating

Hides the top action bar when generating an image. A single click of the device back button will make the action bar appear again.


Anything else?
I think that covers all the various modes and features.

If I missed something or something does not make sense, contact me.