Skip to content

VincentGuinaudeau/buddhabrot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

buddhabrot

a program to generate buddhabrot images and some more

install (linux only for now)

clone the repository somewhere on your computer.

On a terminal, cd in the repository, then build the program :

$ make

You may need to install packages depending of your distribution.

Also, you can configure witch compiler to use by opening the Makefile and setting the CC variable to the name of compiler (clang by default).

To clean all the intermediate files, use make clean; To clean all files generated by the build, use make fclean; To rebuild entierly, use make re.

Generating a buddhabrot image

$ ./buddhabrot [OPTION]

This will generate a file named out.pgm on the current active directory.

Options

  • -w Width : the width of the image (default 1000)
  • -h Height : the height of the image (default 1000)
  • -s Sample size : the number of point to find (default 200000)
  • -m Minimum : the minimum number of steps a point need to qualify (default 10)
  • -M Maximum : the maximum number of steps a point need to qualify (default 20)
  • -t Thread : number of thread. 0 for auto (default)
  • -a Algorithm : scan, random or tree.
  • -r Renderer : binary, layered or buddhabrot
  • -x X offset : the horizontal offset of the image in the complex plan.
  • -y Y offset : the vertical offset of the image in the complex plan.
  • -z Zoom : the interval of values coverded by the image. Lower to "zoom in". Default is 2.
  • -g Gamma correction : set the gamma correction to apply when writting the image. Inferior to 1 is brighter, higher than 1 is darker. Set to auto to let the program anylase the image and come up with it own value. Default is off.

Example for a hight resolution image (width and height inverted to rotate the image afterward)

$ ./buddhabrot -w 4320 -h 7680 -s 2000000 -m 30 -M 100

Algorithm

The program launch one thread per actual thread available on the computer (on auto).

For now, the program look at random point until it find -s points that escape the circle of radius 2 between -m and -M steps.

I'm working on another approch bsed on a tree exploration. This is should accelerate the render (~ 10x from my initial tests). However, this need a good algorithm to select where to explore and where not to in order to have a good visual without filling the RAM with useless data.

Roadmap

  • more parameters
  • render of a specific part (already built-in, but no exposded)
  • fasters algorithms (ideas welcome)
  • multi-os support
  • save and load of intermediate steps (useful to make several render with the same points, or to put more work on a already computed step)
  • blending renders to generate those colorufull images (aka Nebulabrot).

About

a program to generate buddhabrot images and some more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published