ManpWIN is a Windows fractal exploration and rendering application featuring advanced Mandelbrot and related fractal techniques including perturbation theory, optional Bilinear Approximation (BLA) acceleration, high-precision arithmetic, slope rendering, and a multithreaded formula parser.
The project combines decades of fractal development with a modern CMake-based build system, providing a powerful platform for both visual exploration and mathematical research into deep-zoom fractals and experimental formulae.
This repository contains a fully reproducible CMake-based build system supporting consistent Debug and Release builds with Visual Studio 2022.
ManpWIN 4.05 is a major perturbation, slope-rendering, and parameter architecture update focused on improving rendering consistency, fractal interoperability, colouring behaviour, and long-term maintainability.
- Unified ordinary filtering behaviour across pixel, perturbation, and derivative slope rendering
- Added filter and biomorph support to derivative slope rendering while retaining slope lighting
- Fixed several forward-difference slope rendering issues, including subtype 13 calculations, special-colour indexing, and pixel-state handling
- Corrected palette start, offset, and shift handling, and added configurable pre-palette colouring for iterations below the selected Start Palette value
- Expanded and reorganised perturbation and slope parameter handling, including updated dialogue boxes, parameter animation, and parameter-file save/load support
- Improved conversion between equivalent pixel and perturbation fractals, including Polynomial fractals
- Extended Perturbation Polynomial support to eighth-order polynomials
- Fixed a long-standing perturbation power distortion caused by reference orbits being generated before the correct fractal degree was established
- General rendering, stability, and internal architecture improvements
- Mandelbrot and related fractals
- Extreme deep-zoom rendering using perturbation theory, with optional Bilinear Approximation (BLA) acceleration for improved performance
- Multithreaded rendering engine
- Multithreaded formula parser
- Slope derivative rendering modes
- Fractint palette support
- PNG export
- Advanced plotting modes
- Hypercomplex fractal support
- High-precision arithmetic (MPFR, double-double, quad-double)
- Template-based parser and arithmetic framework supporting unified fractal semantics
- Preservation of legacy algorithms with modern execution architecture
- True colour rendering
- Support for many fractal types including Mandelbrot, Julia, Burning Ship, and more
ManpWIN is designed for both visual exploration and mathematical experimentation:
- Deep zoom Mandelbrot and fractal structure analysis
- Perturbation-based extreme scale rendering
- Investigation of orbit behaviour and numerical stability
- Custom formula experimentation via VM-based parser
- Educational demonstrations of fractal dynamics
๐ Download animation file (WEBM, ~5 MB)
ManpWIN has reached a stable and reproducible build state with a fully functional multithreaded rendering pipeline.
- โ Deterministic rendering across Mandelbrot, perturbation, and formula modes
- โ Stable multithreaded execution (worklist + parser)
- โ Verified Debug and Release builds via CMake + Visual Studio 2022
- โ Verified extreme deep zoom rendering using perturbation theory and high-precision arithmetic
- โ Ongoing collaboration and interest from the mathematical community
- โ Improved numerical stability across multiple arithmetic types (MPFR, DD, QD)
- Windows 10/11
- Visual Studio 2022 (with C++ tools)
- CMake โฅ 3.23
- vcpkg installed at:
C:\vcpkg
git clone https://github.com/PaulTheLionHeart/manpwin.git cd manpwin
cmake -B build -S . ^ -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ^ -DVCPKG_TARGET_TRIPLET=x64-windows-static
The x64-windows-static triplet is recommended because it produces a self-contained executable without requiring MPFR or other third-party runtime DLLs.
Release: cmake --build build --config Release
Debug: cmake --build build --config Debug
Release: build\Release\ManpWIN64.exe
Debug: build\Debug\ManpWIN64.exe
build_release.bat build_debug.bat
ManpWIN/
โโ ManpWIN64/ # Main application sources
โโ parser/ # Formula parser engine
โโ pnglib/ # PNG implementation
โโ ZLib/ # Compression support
โโ qdlib/ # Quad-double arithmetic
โโ MPEG/ # MPEG support
โโ CMakeLists.txt # Root build configuration
- MPFR
- GMP
- libpng
- zlib
Missing pnglib.lib: Reconfigure CMake and ensure pnglib builds as STATIC.
MPFR / GMP errors: Ensure vcpkg is installed and toolchain is set.
Blank screen: Ensure .rc files are included.
Debug vs Release mismatch: Check runtime library consistency.
A chronological record of major battles during the ManpWIN modernisation.
- ๐ฒ Repository archaeology โ removed legacy and duplicate source files
- โ๏ธ CMake resurrection โ rebuilt modular build architecture
- ๐งฑ pnglib integration โ fixed missing target + linker language issues
- ๐ MPFR linking battle โ resolved dependency integration via vcpkg
- ๐ช Resource restoration โ fixed blank screen by restoring
.rccompilation - ๐ง Parser evolution โ multithreaded formula parser stabilised
- ๐ฏ Plotting expansion โ new slope rendering + plotting modes added
- ๐ Debug infinite loop hunt โ tracked worklist spin behaviour
- ๐จ Palette parser fix โ vector migration introduced subtle indexing bug
- ๐งฉ Solid guessing initialization bug โ uninitialised variable causing lock
- โ๏ธ CRT conflict resolution โ
/NODEFAULTLIB:LIBCMTDinvestigation - ๐ฐ First stable reproducible CMake build โ Debug + Release verified
- ๐ท Milestone tagged โ historic stabilisation snapshot captured
- ๐งญ Stability phase reached โ deterministic behaviour restored
- ๐ฌ Research interest โ project now attracting mathematical exploration
- ๐ Perturbation dragon โ fixed uninitialised power causing incorrect rendering after toggling
- ๐งฎ Arithmetic stabilisation โ improved trig behaviour across DD/QD/MPFR
- ๐งฑ Template foundation โ introduced templated framework for future fractal expansion
- ๐ง Semantic unification โ parser/trig arithmetic consolidated via templates
- ๐ Layer discipline restored โ VM, dispatch, and semantic layers separated cleanly
- ๐ฎ Transcendental perturbation groundwork โ infrastructure prepared for future symbolic perturbation research
- ๐ Status Information modernisation โ improved progress reporting and diagnostics
- ๐งต Thread progress overhaul โ status reporting now reflects the slowest active worker thread
- ๐ Documentation refresh โ Status Information help page and keyboard documentation updated
- ๐งญ Deep zoom expedition โ tracked and eliminated long-standing perturbation teleporting
- ๐ฐ Reference orbit refinement โ improved perturbation reference generation and rebasing
- ๐งฉ Hidden missing
elseโ restored correct rebasing when BLA is disabled - ๐ KFR smoothing restored โ preserved smoothing values when reading and writing
.KFRfiles - ๐ Metadata consistency โ parameter dialogues now correctly rebuild fractal metadata across all new fractal families
- ๐งฎ DD/QD trig repair โ fixed transcendental arithmetic issues affecting Tierazon fractals
- ๐ง 3D rendering restored โ corrected effective thread handling in pixel and perturbation modes
- ๐งต Thread lifecycle cleanup โ removed completion races and simplified worker startup/shutdown handling
- ๐ CPixel audit โ verified strip ownership, symmetry, worklists, arithmetic initialisation, and rendering lifecycle
- ๐จ Filter unification โ shared ordinary filter behaviour across pixel, perturbation, and derivative slope rendering
- ๐ก Slope lighting preserved โ filters and biomorphs now work with derivative slope without replacing slope illumination
- ๐จ Palette cleanup โ corrected palette start, offset, and shift handling and added configurable pre-palette colouring
- ๐ Fractal interoperability โ improved conversion between equivalent pixel and perturbation fractals
- ๐งฎ Polynomial expansion โ Perturbation Polynomial extended to eighth order
- ๐ Power distortion slain โ fixed long-standing reference-orbit distortion caused by fractal degree being established too late
- ๐งฉ Parameter architecture โ expanded perturbation and slope parameters, updated dialogue and animation handling, and simplified parameter-file persistence
- Never commit build directory
- Tag stable milestones
- Keep Debug and Release working
- Prefer incremental commits
First stable reproducible CMake build achieved.
A key goal of the modernisation effort is reproducibility:
- Clean CMake-based builds
- Controlled dependency handling via vcpkg
- Verified Debug and Release parity
- Deterministic rendering across runs (within current numerical limits)
|
Paul the LionHeart ![]() Author |
ChatGPT ![]() Workshop Assistant |




