MRaster is a very simple C++ library for generating raster images – espeically things like fractals.
It is designed to be easy enough for beginners, but advanced enough for experts. It integrates well into existing code, uses pure C++20, requires no external dependencies, and is quite fast.
Some examples of what can be done with MRaster:
- Mandelbrot Mountains
- Newton Fractal
- Burning Ship
- Multibrot Fractals
- Mandelbrot Iteration Movie
- Tricorn Fractal
- Collatz Fractal
- Tippets Fractal
- Dancing Biomorphs
- Pickover Popcorn
- Mandelbrot Biomorph
- Inverted Mandelbrot
- Mandelbrot Wave
- Peter de Jong Fractal
- Symmetric Fractals
- Tinkerbell
- Hopalong Fractals
- Chaos Game
- Chaos Game Levy Curve
- Apollonian Gasket
- Attracting Torus
- Julia Sets
- Circle Art
- Some desktop backgrounds
For a bit more detail about MRaster: https://richmit.github.io/mraster/index.html
A quick start guide: https://richmit.github.io/mraster/QuickStart.html
Color schemes included in MRaster: https://richmit.github.io/mraster/ColorSchemes.html
API Documentation: https://www.mitchr.me/SS/mraster/doc-lib/autodocs/html/index.html
Example Documentation: https://www.mitchr.me/SS/mraster/doc-examples/autodocs/html/index.html
The code: https://github.com/richmit/mraster/
For more detail read the quick start guide!
To use this code, TWO repositories must be cloned – this one and a basic mathematical library. The mathematical library should then be configured. Finally you can build the examples in this repository. This all might be done on the command line on linux or MacOS (for windows, see the quick start guide) a sequence of commands like the following:
git clone 'https://github.com/richmit/MRMathCPP.git' # Download MRMathCPP
cd MRMathCPP # Change directory to the MRMathCPP git repo
mkdir build # Create a 'build' directory
cd build # Change directory to the build directory
cmake .. # Configure the build system with cmake
cmake --build . -t install # Install the package in the build directory
cd ../.. # Change directory back to where we started
git clone 'https://github.com/richmit/mraster.git' # Download MRaster
cd mraster # Change directory to the mraster git repo
mkdir build # Create a 'build' directory
cd build # Change directory to the build directory
cmake .. # Configure the build system with cmake
cmake --build . -t examples # Build all the examples
This library has defined “releases” intended to identify a stable snapshot of the code – they are tagged in git with a tag name starting with a “v”. If you are looking for stability, then get the latest one.
That said, I try to only commit complete, working code. So I think
it’s pretty safe for most people to just pull HEAD
– i.e. just do a
regular git clone.
The change log
has entries for each release as well as a section for what has changed
on HEAD
since the last release.