分形/軟體
外觀
< 分形
- Mandelbrot 由 Adrian Rabenseifner,網頁應用
- almondbread 由 Eamonn O'Brien-Strain
- AlmondBread 用於 DOS 2002
- fractint
- Spider 由 Yuval Fisher
- Mandelbrot Set Explorer 由 David Eck
- David Eck 的 MANDELZOOM 在 Muency (Robert Munafo 新增和修復錯誤)連續細化版本
- Mandelbrot Set Explorer 由 David Eck(帶有 Robert Munafo 的更改 - 20230505 行式版本)
- MandelRust David Eck 程式的 Rust 版本(瀏覽器中的計算在 Rust 中實現,並透過 WebAssembly 部署到瀏覽器。對於高精度計算,這比 Javascript 版本快約 5-7 倍。後端伺服器完全使用 Rust 實現,使用 Actix-web。它可以比原始 Javascript 版本快 15 倍。)
- Fragmentarium - GLSL
- Kalles Fraktaler
- Mandelbulber (m3p 檔案僅包含引數,而 .m3i 檔案還包含原始影像)
- Mandel - 由 Wolf Jung 用於實數和複數動力學的軟體
- Mandel Machine
- gnofract
- 由 Claude Heiland-Allen 編寫的程式
- fraktaler-3 - 快速深度逃逸時間分形
- mandelbrot-book 和 mandelbrot-book-images
- mandelbrot-perturbator
- mightymandel - GLSL
- mandelbrot 在 emscripten 中
- JS]
- gmandel - 使用 GTK/OpenGL/libqd 在 Haskell 中實現的 Mandelbrot 集探索器,git 庫
- emndl - 指數 Mandelbrot 集的視覺化帶
- zoomasm:
- 用於製作影片的程式。縮放影片是 2D 分形動畫的一種型別。最終影片的渲染可以透過在縮放中心周圍計算指數間隔的環,然後重新投影到一系列平面圖像來加速。一些分形軟體支援以指數對映形式渲染 EXR 關鍵幀,zoomasm 可以將它們組裝成縮放影片。zoomasm 從 EXR 工作,包括原始迭代資料,著色演算法可以用 OpenGL 著色器原始碼片段編寫。
- Zoomasm 是一個縮放影片組裝器,用於將指數對映 EXR 關鍵幀序列轉換為電影。它有一個時間線系統,您可以在其中設定特定時間點的縮放深度,例如與音軌同步。
- zoomasm 預期將一系列指數對映條帶關鍵幀作為輸入,而不是平面幀
- 一些分形軟體支援以指數對映形式渲染 EXR 關鍵幀,zoomasm 可以將它們組裝成縮放影片。zoomasm 從 EXR 工作,包括原始迭代資料,著色演算法可以用 OpenGL 著色器原始碼片段編寫。
- 由 Claude Heiland-Allen 編寫的庫
- exrtact 用於操作 EXR 影像的各種工具 與 OpenExr 比較
- kf-extras 用於操作 Kalles Fraktaler 2 輸出的程式
- mandelbrot-symbolics - 與 Mandelbrot 集相關的符號演算法
- mandelbrot-numerics - 與 Mandelbrot 集相關的數值演算法
- mandelbrot-graphics - Mandelbrot 集的基於 CPU 的視覺化
- mandelbrot-text - 與 Mandelbrot 集相關的解析和漂亮列印
- ruff = 相對有用的分形函式(在 Haskell 中)
- UltraFractal
- M Sargent 程式
- Xaos
- Shadertoy - GLSL
- 動力學 - 程式 由 Helena E. Nusse 和 James Yorke
- 計算機語言基準遊戲 : mandelbrot
- lt = 一個適用於複雜動力系統研究人員的 Mac OS X 應用程式。
- Curtis McMullen 編寫的程式
- Gert Buschmann 編寫的程式
- Fractalzoomer - 由 Chris Kalonakis 編寫的 Java 程式(帶有原始碼)
- Dmitry Khmelev 編寫的程式
- DsTool 是一個用於互動式研究動力系統的計算機程式
- matcont - 是一個 Matlab 軟體專案,用於對連續和離散引數化動力系統進行數值延拓和分岔研究
- Linas 的藝術畫廊
- kandid “是一個基於 java 的遺傳藝術程式,它有幾個演算法,包括迭代函式系統仿射變換;Voronoi 圖;元胞自動機等等。我個人最喜歡的是灰度模式下的 iIFS 仿射變換。它可以在顏色模式下執行,但結果總是很糟糕。” Tim Hodkinson:Kandid 在 Apophysis、Chaotica 和 JWildfire 上獲得了勝利,它們揹負著數百萬種顏色!
- Dr. Don Spickler - 分形生成器
- 沃爾夫朗語言指南:迭代對映和分形
- James Gleick 的 CHAOS:軟體,由 Rudy Rucker 編寫的版本 用 C 語言編寫,並附帶程式碼
- fractalstream-1.0 和 主頁
- 由 Mark McClure 編寫的帶有公式解析器的多項式 Julia 集線上視覺化
- 由 Geoffroy Billotey 編寫的 Fractalshades
- fractalnow - 基於 Pthread、GMP、MPFR、MPC 和 Qt 庫的快速、先進、跨平臺分形生成器
- 由 flutomax 編寫的 nanobrot
- github 庫
- mandelbrot-reference-compression
- Imagina 在 FF 中
- wine ./Imagina.exe
- unzip ./Imagina.zip
- .im 是一個二進位制檔案格式,可以包含壓縮的參考
- fractalforums.org:renderdisplay-method-circle-from-center-out-how-does-it-work:Imagina 使用 連續細化 技術。它在每個連續的細化步驟中使用這種圓形渲染。在 Imagina 中,影像會不斷更新。它在 PixelManager.h/.cpp 中的 StandardPixelManager 類中實現,主要是在三個函式中:Init、GetCoordinate 和 WriteResults。
- Imagina 試圖將近似步驟與微分形週期同步,因為大多數時候,每次可以向前移動一個微分形週期。
精度
- 帶有單精度浮點數的 floatexp
- 帶有雙精度浮點數的 FloatExp
- 滑鼠左鍵
- 拖動 - 平移檢視
- 雙擊 - 查詢附近的特徵並開啟特徵查詢對話方塊
- 滑鼠滾輪 - 縮放
- A - 增加顏色密度
- S - 減少顏色密度
- D - 增加迭代限制
- F - 減少迭代限制
- E - 顏色向前迴圈
- R - 顏色向後迴圈
Extra range is needed on a few specific iterations, if zooming past e300 and doing flybys past minibrots below e300.
Nanoscope stores a similar array to KF, 3x double with re, im, and a mag value used for glitch detection. It also stores a pointer that is either null or points to a wide-exponent copy of those three values. If the double precision values underflow (denorm or zero) these get set for that iteration during reference orbit computation. Otherwise the pointer is null. During iteration, if the pointer is not null the next iteration is done using 52-bit mantissa wide-exponent calculations (significantly slower, but for only one iteration).
The circumstances that trigger this are instances like this. Say there's a period-73174 mini at about e380. If the zoom goes very close to that mini, then for images near and deeper than that mini, every 73174th reference orbit iteration is within 1e-380 of zero or so, so it underflows in a double. So wide exponent calculations must be done on those iterations, and those reference orbit entries must be stored with a wide exponent.
For every other iteration below e300, Nanoscope does the calculations with rescaled values that don't need a wide exponent. The rescaling is changed every 500 or so iterations -- this works because until a point is on the verge of escape, its orbit dynamics are dominated by the effects of repelling points in the Julia set nearby, and that typically means its magnitude doubles each iteration. The exponent width of doubles is 11 bits, so from about -1000 to about 1000, representing powers of 2 (not 10), so easily accommodates 500 doublings with plenty of margin for error. Re-rescaling is also done after every iteration that needed a wide-exponent reference point, because the orbit has jumped much closer to 0 again on such iterations.
On "final approach" an escape-bound critical orbit moves faster, with the magnitude squaring each iteration, but by the time this happens the unscaled magnitude is above the e-300 threshold and Nanoscope has switched to bog-standard perturbation calculations without any rescaling or other sneaky tricks. And escape is usually within the next 500 iterations anyway.[1]
- 由 knightly 編寫的 NanoMB 程式
- nanomb64_generic.exe
- nanomb64_i7.exe
- knighty 的超級系列近似擾動演算法
time ./nanomb64_i7.exe --kfr ./test_x1.kfr --maxiters 250000 --period 2489 --width 500 --height 500 --orderM 4 --orderN 4 --output_ppm s.ppm --output_kfb s.kfb --force_type 'floatexp'
週期為 2489
nanomb.exe --kfr test_x1.kfr --period 2449 --width 500 --height 500 --orderM 4 --orderN 4 --output_ppm s.ppm --force_type floatexp
- SuperMB
- superMB 實際上並不是超級的。它只是對 Claude 在 superfractalthing 主題中釋出的程式碼進行的修改。我用它來進行實驗。它現在有一個基本的 GUI。我已經在下面附加了原始碼 + 依賴項
Knighty's SMB which I think is still a bit faster than KF though being more of a testbed than a usable renderer puts the glitches in distinct sets (G1,.., Gn) with same iteration number where glitch was detected. Next references will then be 1 random pixel from each of the G1,..,Gn and is used only to recalculate the pixels in each set G. Secondary glitches simply generate another set G and you just put then in some queue or stack and keep going at it till no more G sets left. When dealing with glitched pixels you can use the same series expansion as a starting point. ( Gerrit)[2]
- https://github.com/wpwoodjr/MandelRust
- https://github.com/rodrigosetti/sdl-mandelbrot
- https://github.com/rust-fractal/rust-fractal-core/tree/master
- https://github.com/bernds/GAPFixFractal
- https://github.com/JMaio/mandelbrot-maps
- https://github.com/Toxe/mandelbrot-sfml-imgui
- https://github.com/Toxe/mandelbrot-comparison
- https://github.com/josecelano/c-mandelbrot-arbitrary-precision
- https://github.com/angeluriot/2D_fractals_generator