/Fractals

c++ console app to create fractal images

Primary LanguageC++MIT LicenseMIT

Mandelbrot and Julia fractal image generator

mandelbrot_image_rgb julia_image_rgb mandelbrot_bnw_image julia_symmetry_6_image

Description

Fractals is a console application to create fractal images. It uses the .bmp format as output. Compiles every time the program has to output an image. Supports both Mandelbrot and Julia sets.

Install

Pre-compiled executable

If you do not want to compile windows binaries, you can use the release executable.

Dependencies

There is no dependency. BMP format can only be read on Windows, or either on VsCode or Atom editor with macOS / linux. This format has also the inconvenient to produce very heavy files on the disk (to enhance).

CMake installation

Make sure you have CMake installed and inside the clone repo, type:

mkdir build
cd build
cmake ..
cmake --build .

or use CMake GUI and create your project with your favourite IDE. or use the build-in scripts present in the scripts folder.

Usage

Simply launch the executable from the command line and some help will appear to guide you through the steps of creating julia or mandelbrot fractals.

help

Settings

The number of iterations controlls the detail of the fractal, see assets/iteration_effect. It has an exponential cost on RAM and CPU usage and require mutliple gagabytes of memory to run a high resolution file with iterations per complex number. In addition the output file can also reach multiple gigabytes.

Known bugs

  • ...

Improvements

Future versions will add:

  • Add a smoothing option for the contour of the fractal
  • Add a color options such as black and white, RGB and define color palets
  • Parallelisation / concurrency to get faster computation speeds
  • Optimize vectors by allocating them directly their definitive size
  • Image compression
  • Other, more common output formats
  • Maybe a GUI, using ImGui ?

Performances

  • Bencharking is available in the main.cpp file