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

26 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

tmp0

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 center, MAX_R, MIN_R, and length 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.

tmp1 tmp001 tmp2 tmp0 tmp008 tmp042 tmp054 tmp075 tmp117 tmp134 tmp187 tmp215

About

Using CUDA to accelerate a Mandelbrot zoom visualizer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published