Skip to content

Using CUDA to accelerate a Mandelbrot zoom visualizer

Notifications You must be signed in to change notification settings

smjim/Mandelbrot_visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mandelbrot set 'rite of passage'

a cuda-accelerated mandelbrot zoom video creation tool + cpu implementation of static visualizer

mandelbrot set visualization

Creating an output

- 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`

Design and implementation

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.

About

Using CUDA to accelerate a Mandelbrot zoom visualizer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published