| Visions of Chaos for Android |
|---|
![]() Visions of Chaos for Android is an Android app version of Visions of Chaos. ![]() 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 2000 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.3 (KitKat - API Level 18) or higher which covers approximately 95% of all Android devices. Support for GLES 2.0 or above is required (3.0 recommended) to run the included shaders. Note: A higher end device is highly recommended for smooth operation. Older devices will run the app but can be very slow. Click here to download Visions of Chaos from the Google Play store. Version 1.20 - 20th of April, 2018. |
| 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. ![]() 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. ![]() 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. ![]() |
| Buffalo Fractal Mode |
|---|
![]() When you select Buffalo fractals from the left side navigation drawer it will automatically display the Buffalo Settings dialog. ![]() 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 |
|---|
![]() When you select Burning Ship fractals from the left side navigation drawer it will automatically display the Burning Ship Settings dialog. ![]() 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 |
|---|
![]() When you select Mandelbrot fractals from the left side navigation drawer it will automatically display the Mandelbrot Settings dialog. ![]() 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 ![]() Smoothed colors ![]() Triangle inequality average ![]() Last z angle ![]() 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. ![]() Once you regenerate the image with a higher iteration count the full details of the fractal are revealed. ![]() 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 |
|---|
![]() When you select Root-finding fractals from the left side navigation drawer it will automatically display the Root-Finding Fractal Settings dialog. ![]() Formula and Root finding Method Both of these result in unique fractal types being generated. Experiment 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. ![]() Palette step 6. ![]() Palette step 9. ![]() 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 ![]() Smooth color. ![]() 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 |
|---|
![]() When you select 2D cellular automata from the left side navigation drawer it will automatically display the 2D CA Settings dialog. ![]() 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 |
|---|
![]() When you select 2D cyclic cellular automata from the left side navigation drawer it will automatically display the 2D CCA Settings dialog. ![]() 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 |
|---|
![]() When you select OpenGL ES Shaders from the left side navigation drawer it will automatically display the shader editor dialog. ![]() 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. By default this starts at 4 which means each shader pixel uses 4x4 screen pixels. If you find the majority of the shaders run smoothly you can decrease this to 2 or lower. 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. ![]() 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. ![]() 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 two finger pinching zooms in. 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 2,356 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.![]() 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.![]() |
| 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.![]() 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. ![]() ![]() 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. |