Table of Contents
buddha - a minimalist buddhabrot renderer
renders buddhabrot to a PNG image. Buddhabrot is an interesting mandelbrot
rendering technique discovered by Melinda Green in 1993. It involves tracing
the path of escaping points on the complex plane (i.e. points not in the
mandelbrot set), and coloring each point based on the number of paths that
land on it. The result is a unusual and often quite stunning image.
increment so than min evenly distributed columns are rendered
- Output the image to FILE. (default: out.png)
- -w NUM, --width=NUM
- Output the image with the NUM width. For an unstretched image, this should
be 3/2 of height. (default: 600)
- -h NUM, --height=NUM
- Output the image with
NUM height. For an unstretched image, this should be 2/3 of height. (default:
- -q NUM, --multiplier=NUM
- Uses NUM^2 subsamples for each pixel. Setting
NUM increases the quality of the image, but also exponentially increases
the time and memory used to render it. Somewhere around 10-15 and there in
no longer a visible difference. Note that this can also have an unpredictable
effect when doing some more exotic renders (e.g. only rendering very slow
escaping points). (default: 2)
- -z NUM, --zoom=NUM
- Zooms in or out by a factor
of NUM. This is safe, but currently not "fully" implemented. (default: 1.0)
- -x NUM
- Centers the image at x (real) coordinate of NUM. (default: -0.5)
- -y NUM
- Centers the image at the y (imaginary) coordinate of NUM. (default: 0.0)
- -l LOW-HIGH, --limit=LOW-HIGH
- Only renders points that escape in M iterations,
where LOW <= M <= HIGH. This is the equivalent of separately setting r, g,
and b to the same value. (default: 0-1000)
- -r LOW-HIGH, --red=LOW-HIGH
points that escape in the given range in red. (default: 0-1000)
- -g LOW-HIGH,
- Renders points that escape in the given range in green. (default:
- -b LOW-HIGH, --blue=LOW-HIGH
- Renders points that escape in the given
range in blue. (default: 0-1000)
- -RgP NUM
- Scale the red component by the given
factor. (default: 20.0)
- -GgP NUM
- Scale the green component by the given factor.
- -BgP NUM
- Scale the blue component by the given factor. (default:
- -i NUM, --intensity=NUM
- Scale the accumulators by a factor of NUM. the
equivalent of setting the individual component scalars to the same value.
- -a, --anti
- Generates an "anti-buddhabrot". Converging points,
rather than diverging points, are rendered, creating a different sort of
image. This generally takes longer to render than traditional buddhabrot.
- Uses an alternate coloring method in which accumulators are incremented
on every hop within the limit. Rather than the default: accumulating on
every hop only if it converges within the limit.
- -c FUNC, --incr=FUNC
points using the the function FUNC. Where FUNC is one of the following:
one -- increment by one on each iteration (the default)
min -- increment by the the min amount
rand -- increment by an random amount between min and max
row -- increment so that min evenly distributed rows are rendered
few pretty examples to get you started:
- Sets the minimum increment to NUM. What this actually means depends on the
increment function being used, which is specified with the --incr option.
By default, this changes nothing. (default: 1)
- Sets the maximum
increment to NUM. What this actually means depends on the increment function
being used, which is specified with the --incr option. By default, this changes
nothing. (default: 10)
- -M FILE, --meta=FILE
- Embeds the file named FILE in the
rendered PNG’s metadata. This is useful if you are hacking the source. Embedding
the source code ensures that any interesting images will be able rendered
again, even if you forgot how you did it.
- -H, --help
- Prints the basic usage
information. Essentially a less detailed form of this document.
buddha -q 10 -l 0-10000
The classic buddhabrot rendered with good detail.
buddha -q 1 -l 6500-35000
-w 600 -h 400 -i 50
Renders only slowly escaping points.
buddha -q 10 -l 0-25 -i 40
Renders only quickly escaping points.
buddha -q 100 -c row --min 50 -l 0-200 -i
A very interesting technique that results in a pattern a intersecting curves.
Zoom currently does not have support for fully rendering zoomed in
areas. Only points in the region being rendered are traced, resulting in
an incomplete render.
For zoomed out areas, only a certain radius from the
origin is rendered. Highly zoomed out renders may by "cut-off" as a result.
If you are interested in buddhabrot, a good place to start
is the website of its inventor:
Written by Daniel
Please report any issues or suggestions to: DanielCJones@gmail.com
Table of Contents