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

edit


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
./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

edit

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

edit
  • 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

edit

files

edit


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"

location.real = "-1.941564847210618381782745533146630687852577330811479185328717110626315465313888984406570091271861776378826092790143826203994152325590923147877133022224438450505595392332442169268786604880239682848013406897983579432062702292199644932564206420775763033730026410960393034024379448558313295127784426381592278080925192198166506414945985414913745366605657655610477078243223433128650561902149109766955341541448889252090006440504495875324697439205551007663522598546938799920069758806395662880415099380114727803945598174113344976815709788824810872243858870025811047073266393172169520770249454031205263249410283959479169565468406337528155043698920579273678870784676542455819793013621475835287373620100519033551698084870044144096525907756214603649878765768441725598786715107648812695912688272348358202539017931213566557756771117546689787437119363273090858225103068635520748447418748363430805526175228812153552404870337873296242637654897774106552491179507233830264867055720154027738114532472834129907542036414627198070205428671288600626717940810743065719692081657257083298414914079629307719877169697203460540630000679002070296933515367765096894637520233387261677527116574909499106836689943282145414983901962836972429294354792030773990246030933771660915959463839410311609001092258001208772024174367234004812961533343197123692106177497640839672883719696626288402363726247440183295029163880397919214040826126900073973638637566578208702814548391703168474392383593212772787731464838088077224699638406743366046222299920539039887163949934166963836811009496709145476491269052150307331295997696598642224921758611196703647774310100824454754453378692238473281876068395860361747421509077890568367923248938440919450666764746563667104471327430234809386514744994479578918258139825168762910680781831023955275492781814592422214938019500942282403152718152583429320091988757597326162896044423940280436579379250758238150181677659582319810124929896915790686630777656868121991116553823614967588334809071895616642606935606074858069732264297184172026997781642831813555710815432177033080251973441185057582367440091110843860622138414561875643370900646057697961216473136674094515585359492045093031169458552950861210067868990069649613018250078461502572888267902093886429413235954091998533512387698508224032840007461108905888878936712481329924920758423963101423671524810383755418536530931147569126085854905997546750284390836145218644767026524860219389612672917184135093515351440137017875343267106105093234535923345453588257553484550210988965614138849027483452997361327494579395325872160214974105239331592524594369150188797359380002999428260744648273685801485062771062283341261252665204132897101670705129030433332038916860978021784527372660253641186001797960631162225700735543442809212529421959800859631684925688086957903450031876903213378895363984669656174378394848828662491287275427562355094329881843892371905891363815917013435735261628338481776645199230206051992093463701679670012828167982422504379893524492879191497084894922576575660921357705998236585956378644035589226542323286665436731208546815423007982122742733894034678760552296794329535587849467738317885329863463242761164667692358223018142882123247539116527159532753920850365440722610461795764889919310185260171054544985137369235154554304940059632171722414684286138383501773415057939488043213172235441555106648355044355391233758480556732598344113015309927936212966784974691525847156004581824315522927394900768552759061458508079647172411453020446899544906575567336056418575049261413172131851152494947470184383652557573651992514409529812895846029166547850176356488097864860289314225499677990887360532931687650438535765399000166232522594559391892684925740039704185368242880536277639758993317174680558415652951942514607673069357919857260486354"
location.imag = "2.348911956401652748611382363072520535146733491918842206389055226478822558334356028474458306453568269131543696797365302213154106976514279082244760267169482925324526783567612979671556935057632055950984996909780142673870494806718441563468971222881465156907737846885411815804623686136775248121351602452938196791632141551203544924477065181043689768585002934501366247348894440025575034790977798556673982209118819387316634056673728437905475480824207093789985152660660796470895526541440245169605192293780704054201356420547490025338952432606049964709328857846861417513600552731799643681595245395686988951646887256885954913669780792964184025852007185490455600079530313065015412120431544281411000883436175700100755643502134003127400266634841554627987192002123927402658620084127543742083778598017547508760673625017745837047226871893523527022399890081945911197605364730161342705278848485124574682491279788530067609533079049478398986047847983972001764819156565755354326002905542507480820059290426742712804028817087523369562937215212612904336088048132302802862775437161150812264724605689069081436863515240452173801300714588231927754167001145055783695030502517679091867645972152131281950436820800642430650719709799248997373662802383522383728708100167105045934741758120563240619508429409263325664232101394865918891717788286392682273910844038755619719694482789478765835921982258456504697071599084602547626988072659073902294817850999295146301151819189581096894966914306782148725101047973857971183966368556392489984001268762215576350231765055323286514244799060484573201272893610318786886204290069662111659708122739712189774743739800965469849720836828331398655933538341163498137309170029696829049759241035466935137380840598501596696433658234571517949705876880775966141832184491036484520614953456138004895628751874368118806676048052933590152010351393305876747506539949321504627614276077826614282883826502801546997144217149427591454981918422414700754950892289586365073462657884225261119072856209897972217681362290126057381673109065004859492884983392588329325943196101413715919534526662966518996029715522705281433766162245585921066836784151039282692733266581776821803392615463278063762569154398096421583781961425272467224400238786777787057691570645817689820989087807507202607204424924302873613904218059784818247676395238645472434259554102514159552240730691322340413842241268213834149709528706514553724664567801903402240125384283406177463810865382078416066041162205457202040097571654039068900436565607579688861751386273437147633837175759423123782121059992340843638976542491619616721240707699182762901902457881956252753755542525046656795781387399414211410058657062996651489499230059912393101353702379101252993636688212173092017002441988691600905387288953613012271760014041471507305899461467237026040155865673294436686288489064573310042362571214740808656550235500893082338024464752705630639598923599812755067568406644418410908656796336604324227361637640201957166044187263630622072489236137199511921096807717330636805940632361331614384427249172810219683522407075518367730649165243792872682230339286009707120948066977912801945301971489666691152738504000234264492829861082007755878186353657391575969037890793507812419299941828403592000286654117164037545076892235511998963155488596897447316433466284271702397024720026567764282966538060228938320243333174656442494289469553689264266824656421054000462281567678086050788756644012025683226050038399480067529754327429973435343599699135593109676352382173193844221842544770748622726551353163716194488271418173093929303360824571352118582549565180371595453272352097817496528144543662534792783260636316303412950338514389922496456633319004613765453940022755497086172440543892771156330673123788549821094421341129110235193999814306839803150313852972941e-4"
location.zoom = "4e2804"
reference.period = 1137764
bailout.iterations = 10100100
transform.rotate = 31.274666258278437