- CPU static image:
1. Go to cpu directory: `cd static_cpu`
2. Generate data: `g++ generate_set.cpp -o Generate`, and `./Generate`
3. Display data: `python3 display.py`
- GPU dynamic video:
1. Edit boundaries() function in ppm.cu
2. Compile and generate the video: `make`, and `./zoom`
3. Combine output frames: `ffmpeg -framerate 24 -i outfiles/tmp%03d.ppm -c:v libx264 -r 30 -pix_fmt yuv420p output_video.mp4`
GPU accelerated video creation tool developed using code adapted from cuda-video-project. Each thread calculates its complex coordinates given two boundary points + width and height of final image, then calculates the color of the pixel using an optimized mandelbrot set-checking method from wikipedia. Boundary points passed to the kernel are given by a function with input t (frame #), which in turn determines the level of zoom achieved with each frame.