分形/软件
外观
< 分形
- 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