Kalles Fraktaler 2

32-bit version: [fraktal_sft.zip - 177 kB]
64-bit version: [fraktal_sft64.zip - 220 kB]
Movie assembler: [KeyFramesMovie.zip - 31 kB]
Gallery with parameter files: [fr_gallery.zip - 50 kB]
Source files: [fractal_src 2.5.6.zip - 675 kB]
Source files: [KeyFramesMovie_src.zip - 53 kB]

Mandelbrot fractals are fascinating both for the esthetic beauty and also because they are truly infinite.

Recently a new method was developed to render Mandelbrot fractal images from a reference point rather than calculating the escape-speed for each pixel. Since lower precision then can be used, the time to render images decreases significantly.
Compared with the fastest programs using the old method, this program is more than 100 times faster on zoom levels around e100!
For details see sft_maths.pdf

My humble thanks to K.I.Martin for sharing his mathematical findings, which I think is as big discovery as the Mandelbrot formula itself.
Thanks also to Dikydau for the locations in the gallery and to those that have given feedback and suggestions.
Thanks also to Botond Kósa and knighty for the extensions on Series Approximation.
Thanks also to Pauldelbrot for the solid glitch solving method.
Thanks also to laser blaster for the Burning Ship perturbation formula.

For feedback and discussions, please visit the forum
Take a look at this tutorial if you want to make a zoom movie
Old versions of can be found here


Kalles Fraktaler
Update Version 2.6.2:Arbitrary number of Series approximation terms (only for standard power 2 Mandelbrot)
Update Version 2.6.1:Show Inflection + Bug fix
Update Version 2.5.8:Rotation, slimmed reference calculation
Update Version 2.5.6:Auto-saving when creating zoom sequence
Update Version 2.5.5:Buf fix - overflow in high power mandelbrots solved.
Update Version 2.5.4:A small adjustment in Series Approximation and Glitch correction
Update Version 2.5.3:One new fractal type: Burning Ship! Available from the Iterations dialog.
Automatic iteration control enabled for zoom out sequences, can be disabled by un-checking the menu "Use auto iterations".
Update Version 2.5.2:Bug fixes
Update Version 2.5.1:Arbitrary powers
Kalles Fraktaler 2
 
Key Frames Movie Maker
Update Version 1.25:Long wave colors
Update Version 1.22:Bug fix - color jumps on negative cycling and fractional color division
Update Version 1.21:Current version
Key Frames Movie Maker

Manual
Menu items:
File
  Open Opens the current location from a parameter file (*.kfr)
  Save Saves the current location in the current parameter file (*.kfr)
  Save as Saves the current location in a new parameter file (*.kfr)
  Save as Jpeg Saves the current location in a jpeg file (*.jpg)
  Store zoom-out images Zoom out automatically with the selected Zoom size and store jpeg image file and map file (*.kfb) for each zoom out. The zoom out stops when the depth is lower than 1. The resulting files can be used by the KeyFramMovie program to create a zoom-in animation.
  Save map Saves the current location in a map file (*.kfb). This file can be used by the KeyFramMovie program.
  Examine Zoom sequence Make sure you store the end location as a kfr file in the same directory as you store the zoom sequence frames. This function allows you to examine the frames one by one and add references to remove eventual visible glitch blobs, or choose another pixel as the main reference.
  Resume Zoom sequence Make sure you store the end location as a kfr file in the same directory as you store the zoom sequence frames. This function allows you to resume and continue the zoom out sequnce, if it got interrupted.
  Exit Exit this program
Action
  Zoom size Set the level of zoom, left mouse click to zoom in, right to zoom out
  Location... Displays the Location dialog where the coordinates for this location is displayed and can be edited.
  Iterations... Displays the Iterations dialog where the maximum iteration number for this location is displayed and can be edited.
The smooth color transition method is also set here, and the power on the Mandelbrot function.
This dialog also displays
- Min: The minimum iteration count for a pixel in this location
- Max: The maximum iteration count for a pixel in this location
- Appr: The number of iterations given by Series approximation
- Calculations: The number of calculations performed and also the number of calculations per second is shown if this dialog is displayed while the image is rendered
  Set colors... Displays the Number of colors dialog where the colors can be edited.
  Reset Set the location to the start point
  Center cursor Center the cursor to image's pattern center
  Find Minibrot Starts an automatic zoom-in in the image's pattern center, until a Minibrot is found or if it fails to find the center.
  Set window size Set the size of the display window.
  Set image size Set the size of the internal image size. If this is larger than the window size, an anti-alias effect is achieved
  Refresh Render the current location
  Cancel rendering Cancel the current rendering
  Rotate Activate rotation, drag to rotate the image
  Reset rotation Clear any rotation
  Show Inflection Activate or deactivate display of Inflection
  Special
    Add reference (Color) Add a reference and re-calculates the pixels with the same iteration count as the reference. This is useful if the Auto solve glitches function fails to find and solve glitches in the image
    Set main reference Let you click the image and select the main reference for the whole image. This can be useful when glitches appears on top of minibrots when the reference is outside this minibrot. The glitch pattern disappears from the minibrot if the main reference is selected inside the minibrot.
    Reuse reference Do not re-calculate the reference for further zooming. This can be useful when during automatic zoom-out and to test different reference points, but must not be used together with the Auto solve glitches function active
    Find center of glitch (Color) Centers the mouse pointer over the glitch blob found, if any
    Auto solve glitches Turns the Auto solve glitches function on or off
    Solve glitch with near pixel method Instead of re-render all pixels with the same iteration count value(color) only the connected pixels are re-rendered. On some locations other areas in the same view have the exact same iteration count values. These pixels may be correctly rendered and may be incorrect if re-rendered with another reference
    Find highest iteration Centers the mouse pointer over the pixel with the highest iteration
    Show iterations Displays the image black-and-white with the pixels with the highest iteration as white and the pixels with the lowest iteration as black
    No approximation Turns the Series approximation function on or off.
    Non exact find Minibrot Makes the Find Minibrot function fail every 20 zoom-in, in order to gain depth automatically without ending up in a Minibrot
    Special Mirror - mirrors the image around the x-axis. Can be used on the deeper half of a zoom sequence to a minibrot - but not too close to the minibrot and too close to the half...
    Show smooth transition colors Displays the image black-and-white representing the smoothing coefficient
    Use long double always Use always the 80-bit long double hardware data type. This can solve some type of glitches
    Use floatexp always Use always the double mantissa/integer exponent data type. This probably only make the render slower
    Use auto iterations Turns automatic iteration control on or off. This is on per default.

Number of colors dialog
Number of key colors Set the number of key colors between 1 and 1024.
Divide iteration Divide each iteration number with this value, for dense images this value can be greater than 1
Color offset Offset the colors in the palette
Random Fill the palette with random colors made from the Seed value. The Seed button select a seed value randomly.
Save palette Save the current palette in file
Open palette Load palette from file
Expand double Double the number of key colors without changing the palette. This allows finer control of individual colors without changing the palette for other colors
Expand all Increase the number of key color to maximum 1024 without changing the palette
Double Double the key colors by repeating them
Merge Colors Allows a selected color to be merged to every specied key color
Show index Capture the mouse, hover the mouse over the fractal image and the corresponding color in the list will be highlighted. Click and the color selection dialog will be displayed for the active color
Smooth color transition Makes the transitions of colors smooth
Inverse smooth color transition Inverse the smooth color transition which makes edges more visible
Unnamed dropdown box Specifies handling of the iteration count values prior to coloring
Palette waves The palette can be filled from sine waves applied on Red, Green, Blue and Black-and-white. Each input box specifies the number of periods applied on the number of key colors in the palette. If the input box is left empty, no wave of this color is applied. At right of each input box the "P"-button makes the number you entered prime, since different prime numbers probably give more variation. The last input box specifies the waves offset.
The button "Generate" applies the waves on the palette, the "Seed" button fills the fields with random values
Infinite waves Waves can be applied on Hue, Saturation and Brightness rather than RGB values. The Period value specifies the length of the period (not the number of periods as for the Palette waves). Periods with prime numbers should be able to produce an infinite number unique colors

Key Frame Movie Maker
Directory Use the right small button to select the directory where you have stored the zoom-out images. By doing so values will be set automatically in this dialog
Speed control The number of frames in the movie can set for each key frame. The zoom movie will start from the last, most zoom out, image, which will have number zero. The Frame num button can be used to get help in selecting the key frame.
The speed values are applied per key frame
Rotate control The change of the degree for each movie frame in the movie can be set for each key frame. This is set with a float value, which can be negative. If the list is left empty no rotation will be performed. If set the movie resolution will be half
Color cycle control The change of the color index for each movie frame in the movie can be set for each key frame. This is set with a float value, which can be negative. If the list is left empty no cycling will be performed.
Color division control The value of the color division can be set for each key frame. This can be set with a float value. If the list is left empty the division value from the zoom sequence is used. The iteration division value is changed smoothly in a logarithmic way. Note that very small changes can cause chaotic changes in the movie.
Number of colors control The number of colors can be set for each key frame. Decreasing the number of key colors can reveal dense patterns in a more smooth way than changing the color division.
Wave coloring This is the same function as "Infinite waves". The infinite waves are not read from the KFB frames, so it must entered again in this program. The ability to quickly test the parameters is enabled with the "Test" button.
Long waves Sine waves of any color can be applied on the frames, mainly to emphasize the final minibrot. The color is only applied every second of the sine period.
Start frame The start frame of the movie can be specified. This is applied when creating the movie, when testing with the check box "Test only" is set, or to test single frames with the "Test" button.
Show zoom text Turns the zoom text on or off. My recommendation is to have it turned on. The font can be selected with the Font button
Smooth color transitions Makes the transitions of colors smooth
Zoom out level This value must be the same as the Zoom size selected when the zoom out images were created
Frames per movie Several avi files will be created, since some codec get corrupted if they get too large. An automatic value is set based on the Movie size field
FPS Frames per second. 30 is the optimize value if the movie is to be published on youtube
Test only Only displays the movie in the preview window and do not create avi files
Movie size The size of the resulting movies