Skip to content

Releases: hotbrightsunshine/mandelbrotpp

v1.1-alpha

31 Jul 17:54
Compare
Choose a tag to compare

Version 1.1 brings a big code rework: refactoring is the main purpose of this release. Classes were finally implemented, making the overall API more usable and readable. This step was necessary, in order to start implementing the features listed in the to-do list.

Like the last one, a precompiled Linux binary file is provided. Mac OS X and Windows users might want to compile the source code themselves.

v1-alpha

23 Jul 17:38
Compare
Choose a tag to compare

Mandelbrotpp v1-alpha is the first fully working release of this Mandelbrot visualizer. It isn't optimized yet, and lags when handling
really small floating point numbers.

Memory

Memory occupied by the program varies, based on the size of the window.
Generally, it can be approximated with: width * height * (2*8bytes + 4bytes). In fact, to each pixel, is associated a complex number made by two doubles, and an unsigned integer, which measures the number of iterations took for the number to reach the THRESHOLD value.

Resolution (pixel) Memory required (MB)
1000x1000 20
500X500 5
250x250 1.25

Movement in the real and imaginary axes

User can move in the complex plane hitting the following keys.

  • UP, DOWN, LEFT, RIGHT move the canvas respectively,
  • O and I zoom out and in the canvas.

To-do

  1. I plan to add a configuration file in which to store the constants needed to run the program. Those include:
    • the HEIGHT and the WIDTH of the SDL window,
    • the number of iterations and the value of the threshold and, ultimately,
    • the translation coefficient.;
  2. Support for rectangular windows is planned;
  3. Parallel computations are required and will be added as soon as possible;
  4. Optimization and GPU calculations are planned;
  5. Higher window dimensions render nearly invisible pixels: resolution could be scaled, in order to reduce calculations to perform.

Other features will be added in appropriate documentations

Execution

To execute the Mandelbrotpp, SDL2 is required. Libraries under /libs are statically linked, and don't require compilation. Read the official docs of SDL2 to learn more about how to install the requirements.

To manually compile the source code, use a C++23 compatible compiler, according to your operative system. Usually, Microsoft Windows users compile using mingw or visual-c, Max OS X and Linux users use respectively clang and g++.

Execute the executable file with the following

chmod +x mandelbrotpp-v1-alpha
./mandelbrotpp-v1-alpha

Preview

2023-07-23.19-53-49.mp4