Quick and dirty Mandelbrot set Visualizer in modernish C++ built to pass time and apply knowledge.
- C++11/17/20 Features (Threads, Futures, Lambdas, ...)
- clang-format/tidy
- CMake
- GoogleTest
- Benchmark
- OpenMP
- imgui
- OpenGL
- GLFW
- Docker
- fmt
- pre-commit
Run GUI with xorg:
xhost +local:docker || true
docker compose run --rm mandelbrot_visualizer
<OR>
docker compose run --rm nvidia_mandelbrot_visualizer
- OpenGL
- CMake 3.11+
- C++20+
- OpenMP
All other dependencies are built from source through external submodules.
See docker container for example Ubuntu/Debian install steps
mkdir build -p
cd build
cmake ..
cmake --build .
export OMP_CANCELLATION=true # enable OpenMP cancellation for redrawing -> program tries to bootstrap it anyway
./mandelbrot_visualizer
pre-commit install
GitHub Action enabled which runs pre-commit on main merge request.