Kalles Fraktaler 2 +

future | quick start | limits | videos | download | source | benchmarks | gallery | manual


As the orginal upstream author Karl Runmo says:

Want to create DEEP Mandelbrot fractals 100 times faster than the commercial programs, for FREE? One hour or one minute? Three months or one day? Try Kalles Fraktaler!

It works by using perturbation techniques and series approximation, to allow faster lower precision number types to be used for pixel iterations, based on a high precision reference.

I (Claude Heiland-Allen) forked the code and swapped out the custom arbitrary precision floating point code for highly optimized libraries, making it even faster. Cross-compiled to Windows from Linux MINGW64. Now with many other enhancements.

Future

Kalles Fraktaler 2 + development is mostly stopped from my side, though there may be occasional bug fix releases. In particular this means that the bilinear approximation (BLA) acceleration method, which is much better than series approximation (SA) (including NanoMB1 and NanoMB2) is unlikely to be implemented in KF any time soon. The work required to implement BLA in KF, with over 100 formulas, is simply too great compared to my available time for the project.

On the plus side, there are some other fractal renderers supporting deep zooms with BLA (timings for 16 thread AMD Ryzen 7 2700X CPU running Debian Bullseye):

Imagina
Imagina is a fast fractal renderer & explorer.
fractalshades
Fractalshades is a Python package for creating static and interactive visualisations of 2d fractals. It targets Windows and Unix operating systems and implements efficient algorithms for very-deep exploration of the Mandelbrot and the Burning_Ship sets (1.e-2000 scale and beyond).

As an example, it renders a Mandelbrot set minibrot at 5e-433 in just over 2 minutes, where the same location takes about 20 minutes in the latest KF using NanoMB1. It also has much more flexible colouring options, including stripe colouring and lighting effects, but it does not yet support as many formulas as KF.

Fractal Zoomer
An application that lets you render some of the most known fractal functions. It comes with alot of options to further enhance your fractal experience! Its easy to use and does not require installation. A java version higher than 1.8 is required to be installed.

As an example, it renders the example minibrot at 5e-433 in just 30 seconds, once configured to use perturbation / BLA and with boundary tracing optimization enabled (without boundary tracing enabled it takes just over 2 minutes).

FractalShark
A Mandelbrot Set renderer optimized for use with NVIDIA GPUs.
fraktaler-3
fraktaler-3 is a cross-platform program (Linux, Windows, Android, Web) for fast deep zooming of hybrid escape-time 2D fractals. It has a graphical explorer using SDL2, OpenGL and Dear ImGUI, and a command line version for high resolution images and zoom sequences, with export of raw data in EXR format compatible with KF and zoomasm.

As an example, it also renders the example minibrot at 5e-433 in just over 2 minutes. It also has an OpenCL mode which allows using a GPU for acceleration, as well as being more efficient even when a CPU is used. Built in colouring options are very limited, and its hybrid formula editor (the only way to define formulas) is less flexible than KF's.

m-perturbator-gtk
A Mandelbrot set explorer using GTK, with many features for annotating with (pre)periods, rays, regions, etc.
...

If you know of any others (whether closed or open source, payware or gratis), please let me know so I can add them to this list!

There is also an experimental cross-platform fork of KF, maybe it will add BLA in the future.

Quick Start

Limits

Videos

Tutorials

Zoom Videos

Download

Legal note: these binaries are released under AGPLv3+ license. If you redistribute the binaries (or provide access to the binaries as a service) you must also be prepared to distribute the source corresponding to those binaries to anyone you distribute the binary to. To make this easier for you, the more recent zips include the source too (though you'll also need to get the library sources - check the about dialog ("?" menu) for details). And of course insert here the usual legal disclaimers about no warranty of any kind.

Latest binary downloads for Windows (64bit recommended, includes 32bit too) which also work in Wine on Linux (you need 7-zip to unpack recent releases):

Older versions (for example for bisecting bugs) can be downloaded by browsing mathr.co.uk/kf. Check the change log for details of what changed in each version.

Source code

The source code is available from my git repository:

git clone https://code.mathr.co.uk/kalles-fraktaler-2.git
cd kalles-fraktaler-2
git checkout master       # for Karl's original upstream
git checkout kf-2.12      # for oldest stable branch
git checkout kf-2.13      # for older stable branch
git checkout kf-2.14      # for old stable branch
git checkout kf-2.15      # for current development
git tag -l                # list available release tags

Build instructions are in the README.md that accompanies the source code, and available online in the manual for Linux and Windows.

Benchmarks

I benchmarked with 6 Mandelbrot power 2 locations at various depths, testing each of double, scaled double, long double. Still looking for locations to benchmark scaled long double (deeper than 1e4900 or so) and floatexp (deeper than 1e9800 or so), and formulae other than power 2 Mandelbrot. Please send me locations that you are happy for me to put into the repository for benchmarking.

These results are with a smaller version of the benchmark suite found in my git repository: I only tested 'fast' settings (with both settings for the Derivatives field for kf-2.13 branch, see D0 and D1 tags), and only with an image size of '512x512'. I tested on two machines, one laptop 'latte' (Intel Core 2 Duo P7550) and one desktop 'eiskaffee' (AMD Ryzen 7 2700X).

If you want to contribute results for your machine, let me know and I can guide you through the process.

WINE Benchmarks

I don't have Windows, so these benchmarks were run in WINE (the performance of kf-2.11.1 is abysmal in WINE because of a single threaded wineserver or something along those lines). These are all with the 64bit versions. The timings are real/user/sys, which means the elapsed wall-clock time, the total CPU time for all threads, and then kernel time for the process.

versionmachine
latteeiskaffee
2.11.136m46 / 24m47 / 11m03(not tested yet)
2.12.13.1 6m42 /  9m52 /  0m491m35 /  5m44 / 0m04
2.13.4 D0 6m55 / 10m17 /  0m471m38 /  6m30 / 0m05
2.13.4 D110m25 / 19m22 /  0m151m09 / 12m51 / 0m01

Windows Benchmarks

TODO. As I don't have Windows, you sending me benchmark results would be especially appreciated. Also if anyone is using WINE on Mac OS X, if that is a thing.

Here are images of some of the formulas available:


(back to top)