An educational C++ fractal rendering application featuring 240+ fractal types, deep-zoom technology with perturbation theory, BLA acceleration, and arbitrary-precision arithmetic. This self-contained fork includes all dependencies and requires no configuration.
Classic Mandelbrot set with smooth coloring
Deep zoom using perturbation theory and BLA acceleration
2D Hailstone sequence with cycle detection
No installation or Visual Studio required. Extract and run on Windows 10/11 (64-bit).
git clone https://github.com/markhassellsmith/manpwin.git
cd manpwin
# Open ManpWIN64.sln in Visual Studio 2022 and build (F5)All dependencies are included. The project builds without additional configuration.
Requirements:
- Windows 10 or 11 (x64)
- Visual Studio 2022 (Community Edition supported)
- Git (for cloning)
This project serves as a comprehensive platform for studying fractals, numerical methods, and computational mathematics across multiple disciplines.
Complex Dynamics & Numerical Analysis:
- 240+ fractal types: Mandelbrot, Julia sets, Newton fractals, exotic variants
- Perturbation theory for studying chaotic systems
- Deep zoom with magnifications exceeding 10^100
- Arbitrary-precision arithmetic (MPFR, QD, DD libraries)
- Numerical stability demonstrations
Advanced Algorithms:
- BLA (Bilinear Approximation) series approximation
- Perturbation algorithm with reference orbits
- Newton-Raphson root finding
- Analytical derivative calculations
Software Architecture:
- Large-scale C++ project (156 source files, 6 CMake subprojects)
- Template metaprogramming with generic numeric types
- Object-oriented design patterns
- Custom formula parser with VM execution
Performance Engineering:
- Multithreaded rendering engine
- Cache optimization techniques
- Memory management with smart pointers
- Vectorization-ready code structure
Applications Across Disciplines:
- Electrical: Chua's circuit, fractal antennas, chaos-based encryption
- Mechanical: Turbulent flow, nonlinear oscillators, fracture mechanics
- General: Strange attractors (Lorenz, Rössler, Hénon), bifurcation analysis, orbit traps
- Perturbation theory for efficient extreme magnification
- BLA series expansion to skip iterations
- Arbitrary precision (MPFR) up to thousands of decimal places
- FloatExp extended exponent range
- Automatic precision scaling
- Escape-time, slope/derivative shading, distance estimation
- Potential field, orbit trap, biomorph modes
- 24-bit true color with smooth gradients
- Bump mapping and animated color cycling
- Fractint .map palette support
- Multithreaded engine (all CPU cores)
- Solid guessing and boundary tracing
- Progressive rendering
- Dynamic task distribution
- Memory-mapped file support
- Custom scripting language
- Virtual machine bytecode execution
- 100+ built-in mathematical functions
- Fractint formula compatibility
Classic Fractals (20+): Mandelbrot variants, Julia sets, Burning Ship, Newton fractals, Magnet fractals
Advanced Variants (40+): MandelDerivatives, Mandelbar/Tricorn, Spider, Thorn, Tetration, Power Towers
Scientific Systems (30+): Strange attractors (Lorenz, Rössler, Hénon, Pickover, Chua), bifurcation diagrams, Lyapunov fractals
Hailstone Sequences: 2D integer lattice dynamics with cycle detection, 5 transformation presets
Geometric & IFS (20+): Sierpinski, Apollonius, Pascal triangle, L-Systems, Barnsley fern
Artistic Fractals (25+): BuddhaBrot, Popcorn, Hopalong, Plasma, DLA, Langton's ant
Tierazon Set (30+): Phoenix, Hypercomplex, Froth, Icon/Icon3D, function compositions
Research Fractals (15+): Perturbation-optimized, polynomial, rational maps, Kleinian groups
Custom: User-defined formulas via scripting language
manpwin/
├── ManpWIN64/ # Main application (156 C++ files)
│ ├── Perturbation.cpp # Perturbation algorithm
│ ├── Approximation.cpp # BLA acceleration
│ ├── Slope.cpp # Derivative shading
│ ├── BigComplex.cpp # Arbitrary-precision complex
│ ├── Pixel.cpp # Standard iteration
│ └── ...
├── parser/ # Formula parser & VM (21 files)
├── qdlib/ # Quad-double arithmetic
├── pnglib/ # PNG export
├── ZLib/ # Compression
├── external/ # MPFR, GMP libraries
├── CMakeLists.txt # Build configuration
└── ManpWIN64.sln # Visual Studio solution
Core Rendering: Pixel.cpp, BigPixel.cpp, Perturbation.cpp, PertEngine.cpp
Precision Types: Complex.cpp, BigComplex.cpp, DDComplex.cpp, QDComplex.cpp, ExpComplex.cpp
Algorithms: Approximation.cpp, Slope.cpp, FwdDiff.cpp, MandelDerivatives.cpp
Fractals: FractintFunctions.cpp, TierazonFunctions.cpp, Miscfrac.cpp, Bif.cpp
Color: Colour.cpp, Colour1.cpp, ColourMethod.cpp, TrueCol.cpp
- Add custom color palettes
- Implement parameter presets
- Create keyboard shortcuts
- Implement simple fractal variants
- Histogram-based coloring
- Progressive rendering preview
- Parameter animation system
- Undo/redo navigation
- New escape-time fractals
- Distance estimation rendering
- Statistical analysis tools
- 3D lighting and shadows
- GPU acceleration (CUDA/OpenCL)
- Distributed rendering
- SIMD optimization (AVX2/AVX-512)
- Adaptive precision management
- Automatic differentiation
- Fractal dimension calculator
- Plugin architecture
- Cross-platform port (Linux/Mac)
- Novel series approximation methods
- Machine learning for exploration
- Perturbation theory for complex formulas
- Real-time deep zoom interaction
- Install Visual Studio 2022 with "Desktop development with C++" workload
- Clone repository:
git clone https://github.com/markhassellsmith/manpwin.git - Open
ManpWIN64.sln - Build (F5)
git clone https://github.com/markhassellsmith/manpwin.git
cd manpwin
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
build\Release\ManpWIN64.exeBuild Issues:
- Ensure all files from
external/lib/x64/are present - Clean and rebuild if linker errors occur
- Verify "Desktop development with C++" workload is installed
Runtime Issues:
- Use Release build for production (Debug is significantly slower)
- Blank window: Clean and rebuild to recompile resources
- Crashes: Ensure Debug/Release configuration matches
Performance:
- Enable BLA for deep zooms (automatic in most cases)
- Reduce max iterations for initial exploration
- Use multithreading (automatic)
Core: C++17, Win32 API, CMake 3.23+, Visual Studio 2022
Mathematical Libraries: MPFR 4.2.2, GMP 6.3.0, QD Library, DD Arithmetic
Supporting: libpng, ZLib, MPEG
Books:
- Mandelbrot, The Fractal Geometry of Nature
- Peitgen et al., Chaos and Fractals
- Pickover, Computers, Pattern, Chaos and Beauty
Online:
Papers:
- Hart, "Distance Estimation for Fractals"
- Claude Heiland-Allen, perturbation theory articles
- Lorenz (1963), "Deterministic Nonperiodic Flow"
Contributions are welcome from students, educators, and researchers.
Guidelines:
- Test Debug and Release builds
- Keep dependencies in
external/directory - Follow existing code style
- Document significant changes
- Maintain backward compatibility
Development Workflow:
- Fork repository
- Create feature branch
- Make changes and test
- Submit pull request with description
Priority Areas:
- GPU acceleration, additional fractals, performance optimizations
- Documentation, tutorials, unit tests
- Novel algorithms, research contributions
Original Author: Paul de Leeuw (Paul the LionHeart)
Educational Fork: Mark Hassell Smith (2024) - CMake modernization, dependency vendoring, documentation
Libraries: MPFR/GMP teams, QD library authors, libpng, zlib
Research Community: Fractal Forums, Kalles Fraktaler, Claude Heiland-Allen, fractal algorithm researchers
Original code: Copyright Paul de Leeuw
Educational modifications: Copyright Mark Hassell Smith (2026)
Libraries: MPFR/GMP (LGPL v3), QD (BSD), libpng (PNG license), zlib (zlib license)
For educational and research use. Retain copyright notices and acknowledge sources in academic work.
Issues: GitHub Issues
Discussions: GitHub Discussions, FractalForums.org
"Clouds are not spheres, mountains are not cones, coastlines are not circles, and bark is not smooth, nor does lightning travel in a straight line." — Benoit Mandelbrot
Last Updated: 2026 | Version: Educational Fork 1.0 | Status: Active Development
