Leshy Fractal Explorer - Documentation

Copyright (c) 2013, 2014 Leshy Labs LLC
All Rights Reserved
This software may not be reproduced or modified
in any form without permission from Leshy Labs LLC.


1. Introduction

Leshy Fractal Explorer is an HTML5 fractal browser. It is has many features for fractal browsing, zooming, and audio generation. This program is designed to be usable quickly by beginners, but it also has many advanced features and has a lot of customizable settings.

This document provides details on each parameter and control as well as information on how the program works. If you are looking for a general introduction that is more usage oriented, then you may prefer the blog post "Introduction to Leshy Fractal Explorer."

NOTE: This document is currently incomplete. It contains details on each of the controls and options. Eventually it will contain more details on other areas. Until then, please reference the "Introduction to Leshy Fractal Explorer." There is also a (very outdated) video introduction to the program that may be helpful.

2. Controls

Mouse Controls
Scroll Wheel Zoom in or out, depending on the direction of the scroll wheel movement. The speed of the zoom is controlled by the "Scroll Speed" parameter in the advanced tab.
Dragged rectangle (Left-mouse-drag) Change the window position to the upper left corner of the rectangle, and set the zoom based on the size of the rectangle.
Middle Mouse Button When held down this plays the note at the current mouse cursor position when the mouse moves. This will not work in all browsers, but the space bar can always be used instead. For more information see SPACE BAR below.
Right Mouse Button Scroll the viewport by holding down the right mouse button and dragging the mouse.
Viewport
Arrow Keys Move the viewport in the direction of the arrow. How far to move it is determined by the "Move Speed" parameter in the advanced tab.
+
   or
,
Zoom the viewport inward towards the center. The amount of zoom is determined by the "Zoom Speed" parameter in the advanced tab.
-
   or
.
Zoom the viewport outwards away from the center.The amount of zoom is determined by the "Zoom Speed" parameter in the advanced tab.
ALT + ENTER
   or
CTRL + ENTER
   or
CTRL + ALT + ENTER
Resize the canvas to the full screen. (Actually, the full window.) Making the canvas bigger will slow down the drawing. To truly make it fullscreen, use this and then your browsers full screen mode (accessed in many browsers via F11.) When in full-screen/window mode the canvas will automatically resize to the window. Larger windows have more pixels, and so it may be notably slower to draw them. When in full screen mode, resizing the browser will automatically resize the viewport. To exit full-screen mode, press this key combination again, or press ESCAPE.

In Internet Explorer this will not work. The browser captures ALT+ENTER and uses it to enter full-screen mode for the web browser. To resize to the full-window size, Internet Explorer users must press the "Full Screen" button on the button-bar beneath the viewport.
ESCAPE When in full screen mode, ESCAPE exits full screen mode.
Fractal and Coloring Modes
F Cycle to the next fractal. If SHIFT is also pressed, then cycle in reverse.
C Cycle to the next coloring mode. If SHIFT is also pressed, then cycle in reverse.
D Cycle to the next detail level. If SHIFT is also pressed, then cycle in reverse.
Z Cycle to the next Z color modifier. If SHIFT is also pressed, then cycle in reverse.
X Cycle to the next zoom color mode. If SHIFT is also pressed, then cycle in reverse.
I Invert the number of iterations for each pixel. This may greatly impact the coloring mode and the music modes.
V Toggle stripe average mode. EXPERIMENTAL. Stripe average coloring mode presents an alternate (and much slower) way of drawing the fractals based.
G Toggle the grayscale filter.
R Reset all mode options to the default. This will not change the current fractal, but it will reset the view and most parameters to their default values. When the R key is pressed with the SHIFT key down everything will reset, except for the position and zoom.
Automation
A Toggle auto-zooming the fractal. Every step this will zoom the fractal towards the mouse cursor. Pressing the SHIFT key along with the A key will cause it to zoom out instead, and the zoom will move away from the mouse cursor. Auto-zooming is done at the quality specified by the "Low Quality Scale" setting found in the advanced tab.
M Toggle auto-iterating iterations. Starting at 25 increase the rate of iterations and redraw the fractal. This will automatically stop when 10,000 iterations is reached. Due to performance limitations when auto-iterate is enabled low-quality drawing will be used. Pressing the SHIFT key while enabling will cause it to iterate downwards (stopping at 25) instead of upwards. Auto-iterating is done at the quality specified by the "Low Quality Scale" setting found in the advanced tab.
Q Enable Color Cycling. EXPERIMENTAL. This will dynamically alter the colors of each pixel. Color Cycling takes place in low quality mode, and when exited, all colors return to normal. Pressing SHIFT while enabling will cause colors to cycle in reverse.
Audio
P Toggle playing audio from the current fractal. This plays audio by scanning the fractal. The cursor is shown with a red box drawn over the fractal.
SPACE BAR Play the note triggered by the current audio settings at the current mouse cursor position. When the mouse moves, play audio for each new position. This allows for the fractal to be played like an instrument.
Other
H Toggle displaying of the information / settings window containing the help and settings.
S Save the current view to fractal-screenshot.png. In browsers that support it, the PRINT SCREEN button may also be used to take a screenshot. Saving is only allowed when a fractal is done being rendered. It must have completed the high-quality draw and anti-aliased pass, otherwise a warning message will be displayed.

The save file is done at the resolution of the viewport. Images of any dimensions can be generated using fullscreen mode. A browser's scaling / zooming features may also be used to alter the dimensions in full-screen mode, but don't forget to restore them to the default to maintain good performance.
CTRL + M Open the "Link to Fractal" dialog used to create shareable links to a particular fractal view with its associated settings.
1 Randomize SAM settings. EXPERIMENTAL. Enable stripe average mode and randomize all settings.
2 Randomize SAM settings. EXPERIMENTAL. Enable stripe average mode and randomize all settings. This allows for a wider range of values than the '1' key.
3 Randomize SAM colors. EXPERIMENTAL. Enable stripe average mode and randomize the SAM color weights used.
9 Randomize color cycling settings. EXPERIMENTAL. There currently is no UI to set color cycling settings. The 9 key will random alter the cycling speed and amount settings. These settings are not yet saved when linking or sharing fractals.

3. Settings and Parameters

General
Current Fractal The fractal to generate. The general types of Fractals used are:

Mandelbrot
The Mandelbrot fractals are escape-time Mandelbrot fractals generated using z[n+1] = z[n]^2 + c.

Julia
These fractals are escape-time fractals generated for f[c](z) = z^2 + c. The complex parameter C is set to the number shown in parenthesis in the mode name.

Newton
These fractals are generated using Newton's iteration (z[n+1] = z[n] - a * (f(z[n]) / f'(z[n]))). The function f() used is shown in parenthesis in the mode name.

Burning Ship
This is a Mandelbrot modification where the absolute values of the real and imaginary portions are used (z[n + 1] = (|Re(z[n]| + i|Im(z[n])|)^2 + c;
Coloring Mode The coloring mode to be used. A coloring mode takes the number of iterations for each pixel and converts it into a color.
Z Color Modifier A coloring modifier that may be based on the final Z value. This defines a special modifier that often takes the final Z value for a pixel and uses it in some way to modify the number of iterations. These are experimental and can produce very interesting results. Some of them will work better with certain coloring modes or fractal types and certain values of the maximum number of iterations. While originally they all did use the Z value, a number of the newer modes just shift the iterations number in various ways to alter the section of the palette being used.
Iterations The maximum number of iterations to walk through for each pixel. The final iterations value is used to determine color, so changing the iterations value in many coloring modes will result in a change of coloring.
Instrument The current instrument to be used when playing fractal audio. This parameter is only used by music modes that use instruments.
Fractal
Current Fractal The fractal to generate. For more details, see here.
Invert Iterations Take the calculated number of iterations for each pixel and invert it from the defined maximum number of iterations. This will often result in different coloring styles and changes to audio generation.
Coloring Mode The coloring mode to be used. A coloring mode takes the number of iterations for each pixel and converts it into a color.
Z Color Modifier A coloring modifier that may involve the final Z value. For more details, see here.
Zoom Color Mode These options allow for coloring modifiers that modify the iterations based on the zoom level.
Iterations The maximum number of iterations to walk through for each pixel. For more details, see here.
Bailout For escape-time fractals (such as Mandelbrot and Julia,) this specifies the bailout value used. Altering this, usually towards the lower end, can greatly alter the appearance of the fractals in interesting ways.
Grayscale When enabled all pixels are converted to grayscale.
Novaify Switch between two attempts at implementing Nova fractals. They don't look right, so the math may be wrong, but they both can result in some interesting fractals. This will only effect newton fractals.
Newton Step Size How large of a step to take when calculating the newton fractals. Larger numbers may be more performant, but result in less accuracy.
Newton Accuracy The threshold for detecting a match while creating newton fractals. Larger numbers may be more performant, but result in less accuracy.
Newton Alpha (imaginary) The newton alpha used to alter the newton fractal. Generally changing the imaginary portion of the alpha between -1.0 and 1.0 works well at producing interesting variants of a newton fractal. The changes caused by altering the alpha values do not seem to line up with what is seen elsewhere, and so the math is probably wrong.
Newton Alpha (real) This is the real portion of the newton fractal. Altering it may result in some interesting variants to a newton fractal, but generally playing with the value of the imaginary portion yields better results.
Stripe Average Mode EXPERIMENTAL. Whether or not stripe average coloring is enabled.
Number of Stripes EXPERIMENTAL. The number of stripes to use with stripe average coloring.
Iteration Skip EXPERIMENTAL. How many iterations to throw away when using stripe average coloring.
Orbit Multiplier EXPERIMENTAL.
SAM Modifier EXPERIMENTAL.
SAM Color Mix EXPERIMENTAL. A weight that defines the alpha value of how much to mix the SAM drawn fractal with the below non-SAM fractal. Mixing allows for both fractals to be seen at once to the specified degree, which can highlight patterns in interesting ways. A value of 1 (which is 100%) indicates that only the SAM version should be displayed.
SAM Color R EXPERIMENTAL. The weight of the Red value when using stripe average mode.
SAM Color G EXPERIMENTAL. The weight of the Green value when using stripe average mode.
SAM Color B EXPERIMENTAL. The weight of the Blue value when using stripe average mode.
Audio
Instrument The current selected instrument for playing music. The instruments are a list of defined synth sounds that can greatly alter the feel of the generated music.
Min. Note Space The minimum amount of time between notes played. This can effect various music modes and fractal instrument behavior. Negative values are allowed and may cause overlap between notes.
Music Mode The current mode for generating audio. This will effect the fractal audio and fractal instrument behavior. Current options include:

Synth (Weighted): Each note is calculated based on the pixel's filtered iteration count. Recently played notes are weighted more heavily, and so are more likely to be played again.

Synth (Direct Note): Each note is calculated based on the pixel's filtered iteration count.

Noise Maker: Each note triggers a pre-defined sound and alters its attributes based on the filtered iteration count. This mode does not use the instrument setting.
Music Scale (Synth Mode) When using the synth music modes this limits the set of allowed notes. This is currently fairly limited and despite the name doesn't actually support proper scales at this time. The two modes supported are:

White: Play only the white keys.

Black: Play only the black keys.
Fixed Time When enabled the distance between notes is a fixed amount determined by the "Min. Note Space" value. When disabled the space is random with a minimum value determined by that parameter.
Advanced
WebWorkers The number of web workers (threads) to use. When the program initializes, if there is no saved settings for WebWorkers, a test is run to attempt to determine the optimal number of web workers. All high-quality fractal drawing is then divided over this many workers to greatly improve drawing performance. The optimal number of workers is not necessarily the same as the number of cores in the system and the accuracy of the test is often questionable, especially in certain browsers. It is best to experiment with different values here and save the optimal one for your system.
Low Quality Scale The scale to use when drawing in low quality mode. This determines the quality to be used for pre-drawing the fractal quickly before generating it accurately. The number represents the denominator of a fraction where the numerator is 1, so if the value is '8' then low quality is 1/8th the quality and so draws 1 out of every 8 pixels. Low quality drawing is also used for auto-zoom and auto-iterate modes. Setting this value to 1 would make those draw at full quality. Low quality drawing is done in the main thread, and so low values for this setting could have an effect on the responsiveness of the application.
Quick Draw Scale This is the multiplier of the low quality scale to use in first pass drawing. For example, If the low quality scale is 8, and this is 3, then the quick draw scale will be 24. This is used in places such as panning the viewport with the right mouse button, where lots of small draws occur and responsiveness is important. Setting this to 1 has the effect of making the quick draws occur at the same quality as the low quality draws.
Anti Aliasing The number of samples to take for the anti-aliased pass. Setting this to 0 disables the anti-alias drawing pass. Anti-aliasing is done with random sampling. Setting numbers too high will likely harm performance and past a certain point provide diminished gains. Since samples are randomly taken, very low values (such as 1 or 2) may end up doing more harm than good. Using anti-aliasing with random samples also means that every render of a fractal will be a little different.
Target FPS The number of Frames Per Second used by the update loop. This will effect the rate at which auto-zooming and auto-iterating are redrawn. Large numbers may hurt performance on slow machines.
Move Speed This is the size of the distance adjustment made when moving the viewport with the arrow keys.
Scroll Speed This size of the zoom adjustment made when using the mouse wheel.
Zoom Speed This is the amount to zoom per step when auto-zooming. The number is a multiplier against the current zoom, so for example, 1.2 would increase the current zoom level by 20% per step.
Audio Step When playing audio in a mode that scans the image, this is the number of pixels to step while scanning. While this is specified in pixels, the number is a float and will be converted the precise coordinates within the fractal.
Image Smoothing When enabled, allow the canvas to smooth pixels. This will effect low quality drawing mode. When disabled, the pixels will look more crisp. Keeping this disabled is faster.

4. Everything Else

Note: More documentation still needs to be written for a number of topics.

For more information, please reference the "Introduction to Leshy Fractal Explorer."