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.04 is a stability and architecture update focused on multithreaded rendering reliability, numerical correctness, 3D rendering, Tierazon compatibility, and pixel rendering lifecycle management.
- Fixed unsafe partial thread startup handling when worker creation or memory allocation fails
- Replaced obsolete worker-completion flags with direct thread-handle completion checking
- Simplified completion handling across pixel, perturbation, and slope rendering
- Fixed 3D rendering in both pixel and perturbation modes by correcting the effective number of rendering threads
- Improved CPixel worker ownership, symmetry handling, worklist processing, and render lifecycle management
- Fixed double-double and quad-double trigonometric function issues affecting some Tierazon fractals
- Improved arithmetic consistency across DD and QD rendering paths
- Fixed Tierazon filter initialisation ordering that could produce visible seams between multithreaded rendering strips
- Corrected Tierazon filtering in perturbation rendering so filtering begins at the correct orbit iteration
- Improved Tierazon filter coordinate initialisation in perturbation mode
- Audited and simplified CPixel initialisation and arithmetic setup
- Removed obsolete thread-completion state and redundant waiting logic
- General internal cleanup and stability 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)
- Fixed perturbation initialisation issue when reference generation occurs outside the perturbation engine
- Improved rendering stability after toggling and recomputation
- Stabilised trigonometric functions across multiple arithmetic types
- Improved error handling in double-double (DD) and quad-double (QD) modes
- Introduced template-based framework to support future extensibility of fractal calculations
- Unified parser semantic architecture using templates
- Reduced arithmetic-specific duplication across parser and trig systems
- Introduced unified dispatch framework for DD/QD/MPFR arithmetic
- Modernised hypercomplex trig implementation
- 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
- 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 |




