Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Fractals/emndl

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Programs emndl it is the program by Claude Heiland-Allen: exponential strip visualisation of the Mandelbrot set Output options include: tall thin images zoom videos made from the image strips by inverting the coordinate transformation emndl_autotune attempts to find interesting points in the Mandelbrot Set that might look nice is implemented in Haskell currently requires a GHC built with integer-simple (not the default integer-gmp) so that the MPFR bindings work correctly git repo fractalforums article fractalforums.org : emndl-vs-nanomb-mandelbrot-set-zooms instal prerequisites for building most programs gcc g++ libqd-dev - Double-double and quad double types in C++ and F90 for building emndl_autotune ghc cabal for running bash getopt (GNU) bc imagemagick -- for image output for dvd output y4mscaler is a video scaler which operates on YUV4MPEG2 streams, as used by the tools in the MJPEGtools project. mpeg2enc - encodes raw video into an MPEG-1/2 elementary stream using the mjpegtools library. ffmpeg -- for mkv outpout ffmpeg2theora -- for ogv output ecasound, puredata -- for video soundtracks For emndl: git clone https://code.mathr.co.uk/emndl.git cd emndl make For emndl_autotune cabal update cabal install --lib Vec cabal install --lib hmpfr make emndl_autotune ghc -O3 -Wall -threaded -rtsopts -fspec-constr-count=50 -package Vec -package hmpfr -package parallel -package reflection -package random -package ad --make emndl_autotune.hs help ./emndl.sh --help usage options: --help -h -? show this message and exit --version show version and exit input options: --auto bits find an interesting point with precision 'bits' --re real choose coordinates --im imag --period p --maxiters n --size sz render options: --quality q horizontal size, (5 - 12) image options: --png generate full size PNG --jpeg generate thumbnail JPEG video options: --aspect w:h output aspect (4:3, 16:9) --speed s zoom speed (default 1) --dvd generate PAL DVD (SD) --mkv generate Matroska (HD) --ogv generate Theora (LD) other options: --quiet less output --verbose more output coordinate Coordinate coordinate for emndl_2018-08-03T11-23-16.mkv REALCOORD=-1.2502259692930972582217787794367516384674267311920345554701091121819451616288474903375439125840028505381241666e+00 IMAGCOORD=-3.42180858457804363065272789355461346156675050268516641110743928004962993736897391706380916640147746335618768713e-01 PERIOD=396 MAXITERS=100100 SIZE=7.5089502353440369e-38 coordinates for emndl_vs_nanomb_2018-08-03 (on archive.org): REALCOORD=2.32881715984171619523670105543682540038728554391151374122585121905032044832510538073674973239588027974526386357263542756141209509076915793136483409366732770101220857708891025180202484778852216373074628804662000573668390738172817193728347860445256777791916983537169476478249277392675920481935444775336796e-02 IMAGCOORD=8.15519594089994179859195278340598576447528880907449779065614659131971532215140192176068680822666750642391111578468988890742131839375371458052054010234250333939153906090539688498799065846221616933966400388040076657090140783996781080255541492455790725921287002240432954348425982356238830635005863927114069e-01 PERIOD=26079 MAXSUPERITERS=1000 SIZE=1.9302144566912991e-298 run first example ./emndl.sh --quality 7 --png --jpeg --re -1.241733127596417466318604 --im -0.1698965841028383922879327 Result AUTO=0 AUTOBITS=128 REAL=1 REALCOORD=-1.241733127596417466318604 IMAG=1 IMAGCOORD=-0.1698965841028383922879327 PER=0 PERIOD=1 MAXITERS=1000 SZ=0 SIZE=1 QUALITY=7 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=0 MKV=0 OGV=0 VERBOSE=1 WIDE=1 WIDTH=128 VWIDTH=128 VHEIGHT=72 E=/home/a/emndl OUT=emndl_2022-11-20T19:47:29+01:00 calculating.. Atom domain: period: 1 zmag: 1.2533 HC centre: (1.24173,0.169897) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 7 ----------------------------------------------- __(-1.24173,-0.169897) i: 0 j: 0 val: (-1.24173,-0.169897) i: 0 j: 1 val: (1,0) i: 0 j: 2 val: (0,0) i: 0 j: 3 val: (0,0) i: 0 j: 4 val: (0,0) i: 0 j: 5 val: (0,0) i: 0 j: 6 val: (0,0) i: 0 j: 7 val: (0,0) i: 0 j: 8 val: (0,0) ----------------------- ... ----------------------- i: 16 j: 0 val: (0,0) i: 16 j: 1 val: (0,0) i: 16 j: 2 val: (0,0) i: 16 j: 3 val: (0,0) i: 16 j: 4 val: (0,0) i: 16 j: 5 val: (0,0) i: 16 j: 6 val: (0,0) i: 16 j: 7 val: (0,0) i: 16 j: 8 val: (0,0) ----------------------- R == 1e+30 NOTICE: precision is sufficient: 7 <= 64 finalizing..e scanline 326 / 326 equalizing.. computing depth.. DEPTH=2 downscaling.. colourizing.. making images.. making videos.. making soundtrack.. 2022-11-20T19:47:29+01:00 begin 2022-11-20T19:47:30+01:00 end second ./emndl.sh --quality 10 --png --jpeg --dvd --ogv --re -0.5988529658460445113700557999169873572638106766467118517477 --im -0.6627873418981974683919856287279365042423603984338094007074 AUTO=0 AUTOBITS=128 REAL=1 REALCOORD=-0.5988529658460445113700557999169873572638106766467118517477 IMAG=1 IMAGCOORD=-0.6627873418981974683919856287279365042423603984338094007074 PER=0 PERIOD=1 MAXITERS=1000 SZ=0 SIZE=1 QUALITY=10 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=1 MKV=0 OGV=1 VERBOSE=1 WIDE=1 WIDTH=1024 VWIDTH=960 VHEIGHT=540 E=/home/a/emndl OUT=emndl_2022-11-20T19:54:31+01:00 calculating.. Atom domain: period: 1 zmag: 0.893259 HC centre: (0.598853,0.662787) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 9 ----------------------------------------------- __(-0.598853,-0.662787) i: 0 j: 0 val: (-0.598853,-0.662787) i: 0 j: 1 val: (1,0) i: 0 j: 2 val: (0,0) i: 0 j: 3 val: (0,0) i: 0 j: 4 val: (0,0) i: 0 j: 5 val: (0,0) i: 0 j: 6 val: (0,0) i: 0 j: 7 val: (0,0) i: 0 j: 8 val: (0,0) ----------------------- ... ----------------------- i: 16 j: 0 val: (0,0) i: 16 j: 1 val: (0,0) i: 16 j: 2 val: (0,0) i: 16 j: 3 val: (0,0) i: 16 j: 4 val: (0,0) i: 16 j: 5 val: (0,0) i: 16 j: 6 val: (0,0) i: 16 j: 7 val: (0,0) i: 16 j: 8 val: (0,0) ----------------------- R == 1e+30 NOTICE: precision is sufficient: 9 <= 64 finalizing..e scanline 2608 / 2608 equalizing.. computing depth.. DEPTH=2 downscaling.. colourizing.. making images.. making videos.. ./emndl.sh: linia 260: y4mscaler: nie znaleziono polecenia ./emndl.sh: linia 261: mpeg2enc: nie znaleziono polecenia making soundtrack.. ./emndl.sh: linia 279: ecasound: nie znaleziono polecenia ./emndl.sh: linia 282: pd: nie znaleziono polecenia ./emndl.sh: linia 292: twolame: nie znaleziono polecenia ./emndl.sh: linia 306: oggenc: nie znaleziono polecenia ./emndl.sh: linia 293: mplex: nie znaleziono polecenia ./emndl.sh: linia 307: oggz-merge: nie znaleziono polecenia 2022-11-20T19:54:31+01:00 begin 2022-11-20T19:54:48+01:00 end third export LD_LIBRARY_PATH=${HOME}/opt/lib export PATH=${HOME}/opt/bin:${PATH} ./emndl.sh --auto 96 --png --jpeg 12 1 0.0000e+00 0.0000e+00 7.50000000e-01 20 5 -4.4212341e-02 9.8658085e-01 2.54836585e-03 36 21 -4.08647509785e-02 9.82536914715e-01 4.88178316e-08 62 115 -4.0864860818013505432e-02 9.8253687241578015568e-01 7.76448686e-16 98 596 -4.086486081801155519398814148626e-02 9.825368724157807120516621196188e-01 1.02641550e-26 AUTO=1 AUTOBITS=96 REAL=0 REALCOORD=-4.086486081801155519398814148626e-02 IMAG=0 IMAGCOORD=9.825368724157807120516621196188e-01 PER=0 PERIOD=596 MAXITERS=1000 SZ=0 SIZE=1.3685540417099322e-26 QUALITY=8 PNG=1 JPEG=1 ASPECT=16:9 SPEED=1 DVD=0 MKV=0 OGV=0 VERBOSE=1 WIDE=1 WIDTH=256 VWIDTH=256 VHEIGHT=144 E=/home/a/emndl OUT=emndl_2022-11-23T18:42:44+01:00 calculating.. Atom domain: period: 1 zmag: 0.983386 HC centre: (0.0408649,-0.982537) (relative to location) Esc R(new):1e+29 Esc R(old):1e+30 Precision: 7 ----------------------------------------------- Atom domain: period: 5 zmag: 0.0821434 HC centre: (-0.0033475,0.0040441) (relative to location) Esc R(new):0.0129093 Esc R(old):0.129093 Precision: 15 ----------------------------------------------- Atom domain: period: 21 zmag: 0.000401242 HC centre: (1.0984e-07,4.23041e-08) (relative to location) Esc R(new):5.29777e-05 Esc R(old):0.000529777 Precision: 15 ----------------------------------------------- Atom domain: period: 115 zmag: 4.75912e-08 HC centre: (-1.95024e-15,-5.56367e-16) (relative to location) Esc R(new):7.04258e-10 Esc R(old):7.04258e-09 Precision: 16 ----------------------------------------------- Atom domain: period: 596 zmag: 5.78401e-18 HC centre: (-9.69691e-32,-9.40874e-31) (relative to location) Esc R(new):1.34034e-17 Esc R(old):1.34034e-16 Precision: 16 ----------------------------------------------- __(3.43351e-18,4.65465e-18) i: 0 j: 0 val: (3.43351e-18,4.65465e-18) i: 0 j: 1 val: (5.26731e+12,-3.10641e+12) i: 0 j: 2 val: (2.27498e+28,-3.95469e+28) i: 0 j: 3 val: (8.00832e+41,-2.21767e+44) i: 0 j: 4 val: (-3.90043e+59,-6.85294e+59) i: 0 j: 5 val: (-1.88333e+75,-1.10284e+75) i: 0 j: 6 val: (-4.88467e+90,-2.09717e+88) i: 0 j: 7 val: (-7.86231e+105,4.50434e+105) i: 0 j: 8 val: (-7.22294e+120,1.21745e+121) ----------------------- i: 1 j: 0 val: (0,0) i: 1 j: 1 val: (0,0) i: 1 j: 2 val: (0,0) i: 1 j: 3 val: (0,0) i: 1 j: 4 val: (0,0) i: 1 j: 5 val: (0,0) i: 1 j: 6 val: (0,0) i: 1 j: 7 val: (0,0) i: 1 j: 8 val: (0,0) ----------------------- i: 2 j: 0 val: (1.16559e+13,-2.63086e+12) i: 2 j: 1 val: (1.32558e+29,-1.18897e+29) i: 2 j: 2 val: (4.17497e+44,-1.22718e+45) i: 2 j: 3 val: (-1.13749e+60,-6.02728e+60) i: 2 j: 4 val: (-1.36998e+76,-1.61469e+76) i: 2 j: 5 val: (-5.33318e+91,-1.93651e+91) i: 2 j: 6 val: (-1.20729e+107,2.06746e+106) i: 2 j: 7 val: (-1.69961e+122,1.36808e+122) i: 2 j: 8 val: (-1.33031e+137,2.97704e+137) ----------------------- i: 3 j: 0 val: (0,0) i: 3 j: 1 val: (0,0) i: 3 j: 2 val: (0,0) i: 3 j: 3 val: (0,0) i: 3 j: 4 val: (0,0) i: 3 j: 5 val: (0,0) i: 3 j: 6 val: (0,0) i: 3 j: 7 val: (0,0) i: 3 j: 8 val: (0,0) ----------------------- i: 4 j: 0 val: (1.58875e+29,-7.00615e+28) i: 4 j: 1 val: (1.52864e+45,-2.0086e+45) i: 4 j: 2 val: (2.54531e+60,-1.7701e+61) i: 4 j: 3 val: (-2.95186e+76,-7.66605e+76) i: 4 j: 4 val: (-2.11528e+92,-1.74947e+92) i: 4 j: 5 val: (-6.9792e+107,-1.2693e+107) i: 4 j: 6 val: (-1.3956e+123,4.64333e+122) i: 4 j: 7 val: (-1.77273e+138,1.77606e+138) i: 4 j: 8 val: (-1.5096e+153,3.32683e+153) ----------------------- i: 5 j: 0 val: (0,0) i: 5 j: 1 val: (0,0) i: 5 j: 2 val: (0,0) i: 5 j: 3 val: (0,0) i: 5 j: 4 val: (0,0) i: 5 j: 5 val: (0,0) i: 5 j: 6 val: (0,0) i: 5 j: 7 val: (0,0) i: 5 j: 8 val: (0,0) ----------------------- i: 6 j: 0 val: (1.3519e+45,-9.23641e+44) i: 6 j: 1 val: (1.05008e+61,-2.06423e+61) i: 6 j: 2 val: (-5.24778e+75,-1.59172e+77) i: 6 j: 3 val: (-3.62984e+92,-6.07839e+92) i: 6 j: 4 val: (-1.97052e+108,-1.14993e+108) i: 6 j: 5 val: (-5.66073e+123,-1.94389e+122) i: 6 j: 6 val: (-1.02695e+139,4.62395e+138) i: 6 j: 7 val: (-1.34514e+154,1.31384e+154) i: 6 j: 8 val: (-1.9291e+169,2.43431e+169) ----------------------- i: 7 j: 0 val: (0,0) i: 7 j: 1 val: (0,0) i: 7 j: 2 val: (0,0) i: 7 j: 3 val: (0,0) i: 7 j: 4 val: (0,0) i: 7 j: 5 val: (0,0) i: 7 j: 6 val: (0,0) i: 7 j: 7 val: (0,0) i: 7 j: 8 val: (0,0) ----------------------- i: 8 j: 0 val: (8.03788e+60,-7.85714e+60) i: 8 j: 1 val: (4.56251e+76,-1.47389e+77) i: 8 j: 2 val: (-2.02153e+92,-1.0065e+93) i: 8 j: 3 val: (-2.81953e+108,-3.37907e+108) i: 8 j: 4 val: (-1.26107e+124,-5.16602e+123) i: 8 j: 5 val: (-3.24269e+139,1.97294e+138) i: 8 j: 6 val: (-5.84003e+154,2.49333e+154) i: 8 j: 7 val: (-1.04573e+170,6.14084e+169) i: 8 j: 8 val: (-2.51583e+185,1.6916e+185) ----------------------- i: 9 j: 0 val: (0,0) i: 9 j: 1 val: (0,0) i: 9 j: 2 val: (0,0) i: 9 j: 3 val: (0,0) i: 9 j: 4 val: (0,0) i: 9 j: 5 val: (0,0) i: 9 j: 6 val: (0,0) i: 9 j: 7 val: (0,0) i: 9 j: 8 val: (0,0) ----------------------- i: 10 j: 0 val: (3.52949e+76,-4.82147e+76) i: 10 j: 1 val: (1.11202e+92,-7.85671e+92) i: 10 j: 2 val: (-1.74272e+108,-4.78352e+108) i: 10 j: 3 val: (-1.54592e+124,-1.41788e+124) i: 10 j: 4 val: (-5.96547e+139,-1.84904e+139) i: 10 j: 5 val: (-1.46932e+155,5.06642e+153) i: 10 j: 6 val: (-3.26863e+170,5.36225e+169) i: 10 j: 7 val: (-9.21875e+185,2.22567e+185) i: 10 j: 8 val: (-2.62545e+201,1.53132e+201) ----------------------- i: 11 j: 0 val: (0,0) i: 11 j: 1 val: (0,0) i: 11 j: 2 val: (0,0) i: 11 j: 3 val: (0,0) i: 11 j: 4 val: (0,0) i: 11 j: 5 val: (0,0) i: 11 j: 6 val: (0,0) i: 11 j: 7 val: (0,0) i: 11 j: 8 val: (0,0) ----------------------- i: 12 j: 0 val: (1.17508e+92,-2.26762e+92) i: 12 j: 1 val: (-1.48869e+106,-3.27023e+108) i: 12 j: 2 val: (-9.24682e+123,-1.79275e+124) i: 12 j: 3 val: (-6.31679e+139,-4.91195e+139) i: 12 j: 4 val: (-2.23303e+155,-7.73627e+154) i: 12 j: 5 val: (-6.32356e+170,-1.31143e+170) i: 12 j: 6 val: (-2.14638e+186,-2.53377e+185) i: 12 j: 7 val: (-7.73712e+201,1.39915e+201) i: 12 j: 8 val: (-2.09628e+217,1.50196e+217) ----------------------- i: 13 j: 0 val: (0,0) i: 13 j: 1 val: (0,0) i: 13 j: 2 val: (0,0) i: 13 j: 3 val: (0,0) i: 13 j: 4 val: (0,0) i: 13 j: 5 val: (0,0) i: 13 j: 6 val: (0,0) i: 13 j: 7 val: (0,0) i: 13 j: 8 val: (0,0) ----------------------- i: 14 j: 0 val: (2.99288e+107,-8.48534e+107) i: 14 j: 1 val: (-1.37995e+123,-1.09929e+124) i: 14 j: 2 val: (-3.4462e+139,-5.61505e+139) i: 14 j: 3 val: (-1.99107e+155,-1.67848e+155) i: 14 j: 4 val: (-7.56544e+170,-4.85276e+170) i: 14 j: 5 val: (-3.22153e+186,-1.64147e+186) i: 14 j: 6 val: (-1.50281e+202,-2.57623e+201) i: 14 j: 7 val: (-5.47944e+217,1.52875e+217) i: 14 j: 8 val: (-1.31202e+233,1.2574e+233) ----------------------- i: 15 j: 0 val: (0,0) i: 15 j: 1 val: (0,0) i: 15 j: 2 val: (0,0) i: 15 j: 3 val: (0,0) i: 15 j: 4 val: (0,0) i: 15 j: 5 val: (0,0) i: 15 j: 6 val: (0,0) i: 15 j: 7 val: (0,0) i: 15 j: 8 val: (0,0) ----------------------- i: 16 j: 0 val: (5.9467e+122,-2.59355e+123) i: 16 j: 1 val: (-6.03661e+138,-3.10484e+139) i: 16 j: 2 val: (-9.10047e+154,-1.64806e+155) i: 16 j: 3 val: (-5.1965e+170,-7.04042e+170) i: 16 j: 4 val: (-2.99237e+186,-3.23487e+186) i: 16 j: 5 val: (-1.9257e+202,-1.09749e+202) i: 16 j: 6 val: (-9.57639e+217,-7.39729e+216) i: 16 j: 7 val: (-3.20512e+233,1.40031e+233) i: 16 j: 8 val: (-6.68272e+248,8.50103e+248) ----------------------- R == 1.34034e-16 NOTICE: precision is sufficient: 16 <= 64 finalizing..e scanline 3078 / 3078 equalizing.. computing depth.. DEPTH=12 downscaling.. colourizing.. making images.. making videos.. making soundtrack.. 2022-11-23T18:42:44+01:00 begin 2022-11-23T18:43:07+01:00 end autotune emndl_autotune +RTS -N -RTS 80 P 1 R 0.0 I 0.0 @ 1 ▄ ▄ ███ ▄███▄ ▄ ███████████▄█▀ ███████████████▄ ▄▄▄ ▄█████████████████ ▄█████▄ █████████████████ ▄▄▄▄▄▄▄▄▄▄▄█▄███████▄████████████████▀ ▀ ███████ █████████████████ ███▀▀ █████████████████▄ ████████████████▀ ▀▀█████████████ ▀▀▀▀█████▀█ ▀▀ ███ ▀█▀ ▄ P 4 R -0.1565201668337550617989867 I -1.032247108922831801671601 @ 8.2966360777899879795193e-3 ▄▄▄ █▄ ████▄███████▄█ ▀█████████████ ███████████████ ▄▄███████████████▄▄ ██████████████████▄ ▀███████████████████▀ ███████████████████▄ ▄▄ ██████████████████▀ ▄▄████████████████████▀▀ ████████ ▀███████████▄▄ ▄██████▀ ▀▀▀█▀▀ ▀██ ▀▀▀▀▀█ P 31 R -0.1534817415674078270901370 I -1.030177111803473792344760 @ 2.261921892899238897e-7 -0.1534817415674078270901370 -1.030177111803473792344760 5 exponential map c = c0 + cexp(x + i y) x + i y = clog(c - c0) with scaling by 2pi/width Here are the relevant parts of the code: // emndl_calculate.cc N progress = 0; 907 #pragma omp parallel for schedule(dynamic) 908 for (N y = 0; y < height; ++y) 909 { 910 for (N x = 0; x < width; ++x) 911 { 912 R_lo t0 = (x + jitter(x, y, 0)) / width * 2 * pi; 913 R_lo c0 = cosl(t0); 914 R_lo s0 = sinl(t0); 915 R_lo t1 = (x + jitter(x, y, 0) + 1) / width * 2 * pi; 916 R_lo c1 = cosl(t1); 917 R_lo s1 = sinl(t1); 918 R_lo l0 = (y + jitter(x, y, 1)) / width * 2 * pi; 919 R_lo r0 = expl(8 - l0); 920 C_lo dc(r0 * c0, r0 * s0); 921 C_lo dc1(r0 * c1, r0 * s1); 922 R_lo pixel_spacing = sqrtl(norm(dc1 - dc)); 923 N si(0); 924 int iters = 0; 925 float trans = 0.0f; 926 //we need to send the nucleus position wrt the center of the picture. 927 R_lo v = iteratePtDE1( dc, SSAs, ref, maxsi, maxiters, si, iters, trans);// 928 //R_lo v = iteratePtDE( dc, fp, ref, period, maxiters, Bout, si, iters, trans); 929 930 float dwell = v <= 0 ? -1 : 16 + iters + trans; 931 float distance = fabsl(v / pixel_spacing); 932 float angle = 0; 933 float isperiod = 0; 934 float isnewton = 0; 935 float *result = buffer + size_t(y) * width * CHANNELS + x * CHANNELS; 936 result[0] = dwell; 937 result[1] = distance; 938 result[2] = angle; 939 result[3] = isperiod; 940 result[4] = isnewton; 941 942 } 943 #pragma omp critical 944 cerr << "\timage scanline " << ++progress << " / " << height << "\r"; 945 } 946 } // emndl_unwarp.c float h = 1.0 / sqrt(ow * ow + oh * oh); 141 float k = img->width / 8.0; 142 float dy = speed * k / 25.0; 143 for (float y0 = 0; y0 < img->height - img->width; y0 += dy) { 144 { 145 int j; 146 int i; float p, q, d, x, y, l; int c; 147 #pragma omp parallel for private(i, p, q, d, x, y, l, c) 148 // schedule(static, 1) 149 for (j = 0; j < oh; ++j) { 150 for (i = 0; i < ow; ++i) { 151 p = (i - (ow >> 1) + 0.5f) * h; 152 q = ((oh >> 1) - j - 0.5f) * h; 153 d = (logf(sqrtf(p * p + q * q)) * 0.15915494309189535f) * img->width; 154 x = (atan2f(-q, -p) * 0.15915494309189535f + 0.5f) * img->width; 155 y = y0 - d; 156 l = - log2f(sqrtf(p * p + q * q)) - 2; 157 for (c = 0; c < 3; ++c) { 158 out[(j * ow + i) * 3 + c] = clamp(pixel2(img, l, y, x, c) * 255, 0, 255); 159 } 160 } 161 } 162 } 163 if (1 != fwrite(header, strlen(header), 1, stdout)) exit(2); 164 if (1 != fwrite(out, ow * oh * 3, 1, stdout)) exit(3); 165 { 166 float l = -log2(img->width / 960.0); 167 for (int s = 0; s < 1920; ++s) { 168 for (int c = 0; c < 2; ++c) { 169 float x = fmod(s / 960.0 + 0.5 * c, 1) * img->width; 170 float y = y0 + dy * (s / 1920.0); 171 float a = pixel2(img, l, y, x, 0) + pixel2(img, l, y, x, 1) + pixel2(img, l, y, x, 2); 172 au[2 * s + c] = a / 3.0 - 0.5; 173 } 174 } 175 } 176 if (1 != fwrite(au, 1920 * 2 * sizeof(float), 1, stderr)) exit(6); 177 } 178 return 0; 179 } video falling into Mandelbrot (360 test) by Claude A fractal zoom with a twist. Projecting from inside the Riemann sphere, the image expands from below and scrolls past to contract overhead. This is a first test, there are some imperfections like bad mipmap level curves. Render time 6 hours. Coordinates: Cx = -1.76915100313963348631585617219113282419006284180146489000041 cyu = +0.00558166050979690182753149300394271544944337923388479000001i @ 1e-21 ( zoom) Misaligned Butterdonut (Dinkydau) by Claude and original page Misaligned Butterdonut by DinkydauSet video: 360 Mandelbrot fractal zoom to the mini-Mandelbrot-set at the center of Dinkydau's "Misaligned Butterdonut" location. Rendered with 'emndl' using algorithms from knighty's 'nanomb2'. References