Kf2
A fork of Kalle's Fractaler
Install / Use
/learn @smurfix/Kf2README
title: Kalles Fraktaler 2 + Manual author:
- Claude Heiland-Allen
- Karl Runmo keywords: [escape time, fractal, deep zoom] abstract: | Fast deep zooming Free Software for fractal graphics (Mandelbrot, Burning Ship, etc). date: 2021-12-05 ...
Kalles Fraktaler 2 +
As the orginal 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.
Original version:
This version:
Feedback:
- https://fractalforums.org/kalles-fraktaler/15 current forum
- http://www.fractalforums.com/kalles-fraktaler/ legacy forum (read only)
- mailto:claude@mathr.co.uk?subject=Kalles%20Fraktaler%202 personal mail
Quick Start
-
Download the latest archive from the website: https://mathr.co.uk/kf/kf.html#download
-
Unzip it wherever you want, no installation required. You need
7-zipto unzip.7zarchives, available from https://www.7-zip.org/. -
Launch
kf.x86_64.exefor 64-bit (recommended),kf.i686.exefor 32-bit. -
Start exploring!
-
Use the mouse scroll wheel to zoom.
-
Choose different fractal formulas in the formula dialog (Ctrl-F).
-
Choose different bailout conditions in the bailout dialog (Ctrl-B).
-
Choose different colours in the colouring dialog (Ctrl-C).
-
Zoom deeper more quickly with Newton-Raphson zooming (Ctrl-D).
-
Design your own hybrid fractal formula (Ctrl-H).
-
Design your own colouring algorithm using GLSL (Ctrl-G).
-
Limits
-
Windows limits bitmap images to 2 giga-bytes (~715 M-pixel)
-
Windows limits longest bitmap dimension to 64 kilo-pixels
-
KF limits iteration count to 9 exa-iterations
-
KF limits periods to 2 giga-iterations
-
MPFR limits precision to 2 giga-bits (~646 million base-10 digits)
-
KF needs up to ~50 bytes per pixel (typically half that for common uses)
-
KF needs up to ~40 bytes per reference iteration (depending on number type)
-
KF cannot currently make use of more than 64 CPU threads
Known Bugs
- The "Mirror" option doesn't do anything
- Windows Defender sometimes reports that KF contains malware (false positive, I hope - I check with virustotal.com and all seems fine) (possibly due to screenshots for crosshair window, some code also moves the mouse cursor)
- out of memory conditions cause crashes (for example, if bitmap creation fails - also need to check huge sizes) (reported by gerrit)
- setting window size too big (eg width 12800) makes it disappear while KF is still running (in Wine on Linux/XFCE)
- increasing window size when window is near the top can make the title bar go off screen. workaround for Windows 10: Alt+Space+M, or Shift+RightMouse on program icon in the task bar and select Move; then use cursor keys to move the window; press RightMouse to finish. workaround for Linux/XFCE: hold Alt and drag the window with LeftMouse button (from any point inside it). workaround for Gnome: hold the Windows key. (reported by saka)
- resizing window during examine zoom sequence auto solve glitches leads to corruption of the zoom sequence data
- "stop autosolve" during examine zoom sequence fails and corrupts zoom sequence
- minimizing window during zoom sequence rendering corrupts image (saves blank image or repeated frame) (reported by gerrit and CFJH)
- on special locations kf renders endless references and comes to no end (reported by CFJH) (happens also sometimes in exponential map rendering) (untested workaround may be to adjust glitch center method to random)
- with glitch center found by argmin|z|, endless references with little progress (reported by gerrit, only some locations)
- analytic DE broken with some power 3 Mandelbrot locations (reported by gerrit) (workaround is to disable series approximation)
- fractal type out of range (e.g. parameter from newer KF) is silently reset to Mandelbrot
- "resume zoom sequence" re-uses last set zoom count limit
- "resume zoom sequence" sometimes uses wrong image size (depending on
settings and whether there are
last.kfb,recovery.kfb,*_*.kfb) (workaround: set image size before resuming sequence, for example by loading the last saved image file with both Open Settings and Open) - "examine zoom sequence" doesn't save corrected PNG images during glitch solve
- black regions when rendering zoom out sequence (maximum iterations are reduced too much before spirals appear in next frame) (reported by gerrit) workaround is to disable auto-iterations
- there is still a race conditions in guessing (doesn't wait for previous progressive interlacing pass to be 100% done before the next one starts)
- newton-raphson zoom preset depths are bad for formulas with power other than 2
- burning ship series approximation stops at first fold (typically 1 period of a central miniship), could potentially subdivide the region (and shift the series, for the folded part) and carry on?
- burning ship series approximation probe points might miss some folds near the edges of the image (need to increase probe point density?)
- bad combinations of skew, distance estimation, and series approximation
- auto skew (escape) button doesn't work well with some formulas (eg SimonBrot)
- navigation with scroll wheel and -/+ keys is hardcoded to factor of 2 instead of using the zoom size set in the View menu (may depend on "Animate Zoom" setting, reported by shapeweaver)
- NR zoom doesn't work well in skewed locations
- nanomb1/2 OrderM, OrderN can only be changed by hand-editing .kfs Settings files
- nanomb2 RadiusScale can only be changed by hand-editing .kfs Settings files
- nanomb1/2 number type fixed to floatexp (long double or double would be faster)
- nanomb1/2 number type is not rescaled (only matters for long double / double)
- nanomb2 currently disables glitch detection and correction
- nanomb1/2 reference calculations are not multithreaded (single core only)
- nanomb1/2 reference calculations are using slow Boost C++ wrapper for MPFR
- crosshair window contents is misaligned if OS window scaling is
changed
- workaround for Windows 10: "You can quickly open the Magnifier by using the keyboard shortcut Windows key with the plus sign (+) to zoom in and Windows key with minus sign (-) to zoom out. Use Windows key and Esc to exit the magnifier."
- workaround for Linux/XFCE: hold Alt and use the mouse scroll wheel to zoom the whole desktop.
- workaround for Linux/Wine: third-party magnifiers include
kmag,magnus,vmg,xmag,xzoom; I had best results withkmag.
- help button in file browser does nothing
- may be difficult to build the source at the moment (dependency on 'et')
- seams/bands with mixed power hybrids and numerical DE/slope (workaround: use analytic DE/slope with derivatives)
- guessing with OpenCL on GPU does not give full speedup (e.g. 1.5x faster instead of 4x faster with lots of very high iteration interior)
- guessing with OpenCL requires both image dimensions to be a multiple of 2
- if hybrid formula is invalid, Ok button does the same as Cancel
- sometimes files are overwritten without confirmation, when the filename is entered without extension (eg "test" vs "test.jpg") (reported by CFJH).
- flash of untransformed image when opening Transformation dialog
- spinner of newly opened Transformation dialog widget resets to 0 ("pressing Rotate several times resets to 0" reported by Microfractal)
- Burning Ship power 5 (non-Hybrid) perturbation formula is buggy (reported by FractalAlex)
- Rescaled Double is slow in some locations (reported by gerrit) (workaround: disable it in the Number Type dialog)
- Rescaled Series is slow in some locations (reported by gerrit) (workaround: disable it in the Perturbation Tuning dialog)
- the dependencies recorded in the Makefile are incomplete. You may have to use "make clean" after changing members of a class/struct. You may have to run "make" twice.
Differences From Original 2.15.5
Bugs
- Improve max-iter calculation (ignoring the center bits, useful when zooming into e.g. a minibrot, didn't work right)
Embedding
-
There is a (rudimentary, requires improvements) way to build a
libkf2-embed.solibrary natively (Linux). -
File operations have been changed to std::[io]fstream for Linux compatibility.
-
Threads have been changed to std::thread for Linux compatibility.
Differences From Original 2.11.1
Incompatible Changes
-
In versions
2.15.5and above, there are many new formulas which are not available in earlier versions -
In versions
2.15.4and above, there are three new formulas which are not available in earlier versions; imaginary axis reflection option is new -
In versions
2.15.2and above, OpenGL-based colouring is new. -
In versions
2.15.1and above, slope colouring is different; output is different with smooth method log (iteration count is offset by-log(log(BailoutRadius))/log(Power)); Buffalo power 2 is different; rotation and skew are different; hybrid formulas are new; exponential map is new. -
**In vers
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
