Mamex - Marek's Mandelbrot explorer
Mamex is a Mandelbrot set rendering library written in C# and supports arbitrary precision (provided by GMP) for infinite zoom. The explorer can visualize Mandelbrot and Julia sets and has many additional features such as interactive color gradient editor, projections support, and batch rendering. Custom anti-aliasing algorithm, sharpening, and color dithering algorithms yields beautiful results.
Summary
Unfortunately, I have never got time to write a detailed article about this project and the source code has some licensing issues with libraries, so it's not on GitHub (yet). I hope to return to this project in the future since it has lots of cool features.
Highlights of the project are:
- Fast Mandelbrot set rendering utilizing multi-threading written in fully-managed code.
- Ability to switch to arbitrary-precision mode implemented by GMP C++ library (bridged with C++/CLI).
- Interactive gradient editor that can apply new colors instantly (without expensive recomputation).
- Support for linear and non-linear projections.
- Ability to render very large images using tiling.
- Custom dithering for smoother gradients (explained in post Is 16.7 million colors enough?).
- XML-based saving of regions of interest, each loaded region has a preview for easier organization.
Basic interface, dockable windows, gradient editor on the bottom, saved areas an the right. Interface showing Mandelbrot set (left) that generates Julia set (middle) which is then projected using mercator-like projection (right). Perspective projection as an example of non-linear transformation. Linear transformations such as rotation, scale, or shear are supported as well. Rendering interface. Custom color picker with history and convenient ways how to select color.
This post is licensed under CC BY 4.0
by the author.