Visualization of Mandelbrot set on NVIDIA CUDA.
Features:
- Multi-threaded rendering
- Native NVIDIA GPU support
- Coloring a fractal with a given gradient
- Zooming a fractal to a certain point by 10^15 times
- Anti-aliasing
Known Limitations:
- Images can only be generated with an aspect ratio of 1:1
- Scaling is limited by float64 accuracy
Build the project. Make sure you have CUDA installed.
$ cargo build --releaseRun program:
$ ./target/release/mandelbrot_set \
--resolution 1024 \
--colors "#00A3BC, #8B00BD, #81BD00, #BD5400" \
--x -0.6582034218739634 \
--y 0.44967917993930356 \
--iters 5000 \
--max-scale 1000000000000000 \
--fps 24 \
--seconds 180 \
--n-samples 8 \
--output ./outputArguments:
--resolution- resolution of the image--colors- gradient colors in hex format--x- x-coordinate for the zoom--y- y-coordinate for the zoom--iters- number of iterations--max-scale- maximum scale of the fractal--fps- frames per second--seconds- duration of the video--n-samples- number of samples for anti-aliasing--output- output directory for the frames
Merge the frames into one video via ffmpeg:
$ ffmpeg -framerate 24 -i output/frame_%09d.png -c:v libx264 -pix_fmt yuv420p -crf 18 -y video.mp4 