Fractals/fraktaler-3

Fraktaler 3 is a
 * cross-platform (Linux, Windows, Android, Web)
 * fractal program by Claude Heiland-Allen
 * for fast deep zooming of hybrid escape-time 2D fractals.

It has a graphical explorer using SDL2, OpenGLES and Dear ImGUI, and a batch mode for high resolution images and zoom sequences, with optional export of raw data in EXR format compatible with Kalles Fraktaler 2 + and zoomasm.

=dependencies=
 * SDL2
 * OpenGLES
 * Dear ImGUI
 * OpenCl

git clone https://github.com/ocornut/imgui.git git clone https://github.com/AirGuanZ/imgui-filebrowser.git git clone https://github.com/ToruNiina/toml11.git git clone https://code.mathr.co.uk/fraktaler-3.git

sudo apt install \ build-essential \ git \ libglm-dev \ libmpfr-dev \ libmpfrc++-dev \ libopenexr-dev \ libsdl2-dev \ ocl-icd-opencl-dev \ opencl-headers \ p7zip \ pkg-config \ pocl-opencl-icd \ xxd

=run= ./fraktaler-3.gcc

fraktaler-3-2 -P -b zoom-out-sequence.toml loaded wisdom /home/claude/.local/share/uk.co.mathr/fraktaler-3/wisdom.toml Frame[100%] Ref[100%] BLA[100%] Tile[100%] $ ls fraktaler-3.00000000.exr fraktaler-3.00000006.exr  fraktaler-3.00000012.exr fraktaler-3.00000001.exr fraktaler-3.00000007.exr  fraktaler-3.00000013.exr fraktaler-3.00000002.exr fraktaler-3.00000008.exr  fraktaler-3.00000014.exr fraktaler-3.00000003.exr fraktaler-3.00000009.exr  fraktaler-3.00000015.exr fraktaler-3.00000004.exr fraktaler-3.00000010.exr  zoom-out-sequence.toml fraktaler-3.00000005.exr fraktaler-3.00000011.exr $ exrheader fraktaler-3.00000000.exr ... dataWindow (type box2i): (0 0) - (12287 1359) ... $ display *.exr (images are all white, because they are 100% exterior due to starting at default zoom 1e0) $

help
Output of fraktaler-3 --help:

usage: fraktaler-3 [mode] [flags ...] [inputfile [inputfile ...]] modes of operation: -h, --help               print this message and exit -V, --version            print version information and exit -i, --interactive        interactive graphical user interface -b, --batch              command line batch processing -W, --generate-wisdom    generate initial hardware configuration -B, --benchmark-wisdom   benchmark hardware for optimal efficiency -S, --export-source      export this program's source code flags: -v, --verbose            increase verbosity -q, --quiet              decrease verbosity -p, --persistence file   path to persist state -P, --no-persistence     don't persist state -w, --wisdom file        path to wisdom input files are merged in command line order The help text will list the default locations for persistence and wisdom files on your system, as well as the file name for the --export-source option.

Multiple parameter files may be specified on the command line. After persistence is loaded, they are merged in order (later files override earlier files). This allows you to keep different aspects of parameters in different files.

=transformations=
 * The exponential map feature is not so useful in the graphical program, but can be used in the command line version for rendering a zoom out sequence for later assembly into a video using zoomasm

=Links= =files=
 * fraktaler - home page
 * live online version
 * git repo
 * parameter file text (suggested extension .f3.toml) - TOML format
 * images (EXR format, extension .exr) - OpenEXR

exrheader fraktaler-3.00000037.exr

file fraktaler-3.00000037.exr:

file format version: 2, flags 0x0 Fraktaler3 (type string): "program = "fraktaler-3" version = "0-414-g61fa84a" location.real = "-1.748764520194788535" location.imag = "3e-13" location.zoom = "1.0000000e15" bailout.iterations = 262144 bailout.maximum_reference_iterations = 262144 bailout.maximum_perturb_iterations = 4096 bailout.inscape_radius = 0.000976562 image.width = 601 image.height = 67 image.subframes = 64 transform.reflect = true transform.exponential_map = true render.zoom_out_sequence = true opencl.tile_width = 601 opencl.tile_height = 67 " channels (type chlist): B, 32-bit floating-point, sampling 1 1 G, 32-bit floating-point, sampling 1 1 R, 32-bit floating-point, sampling 1 1 compression (type compression): zip, multi-scanline blocks dataWindow (type box2i): (0 0) - (600 66) displayWindow (type box2i): (0 0) - (600 66) lineOrder (type lineOrder): increasing y pixelAspectRatio (type float): 1 screenWindowCenter (type v2f): (0 0) screenWindowWidth (type float): 1 type (type string): "scanlineimage"