add basic README
This commit is contained in:
parent
4c1e939d6d
commit
73045155a1
58
README.md
Normal file
58
README.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
# Buddhabrot
|
||||
|
||||
This is a very simple binary to create images of the [Mandelbrot
|
||||
set](https://en.wikipedia.org/wiki/Mandelbrot_set) and [Buddhabrot
|
||||
set](https://en.wikipedia.org/wiki/Buddhabrot). The final goal is to use the
|
||||
[Metropolis-Hastings sampling
|
||||
algorithm](https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm)
|
||||
and [Simulated Annealing](https://en.wikipedia.org/wiki/Simulated_annealing).
|
||||
|
||||
## Building the project
|
||||
|
||||
You need [Meson](https://mesonbuild.com/) to build the project, and I recommend
|
||||
using [Ninja](https://ninja-build.org/) as a build system. Issue the following
|
||||
commands:
|
||||
|
||||
```sh
|
||||
42sh$ meson build
|
||||
42sh$ ninja -C build
|
||||
```
|
||||
|
||||
This compiles the `buddhabrot` binary at the root of the `build` directory.
|
||||
|
||||
## Using the binary
|
||||
|
||||
By default, the binary writes the output image to its standard output, in the
|
||||
[PPM file format](http://netpbm.sourceforge.net/doc/ppm.html).
|
||||
|
||||
You can choose which visualisation you want by using the `-r` options with
|
||||
either `buddhabrot` or `mandelbrot`. Use `-m` to choose the maximum number of
|
||||
iterated samples.
|
||||
|
||||
You can specify the height and width of the image by using `-h` and `-w`.
|
||||
|
||||
Sample usage:
|
||||
|
||||
```sh
|
||||
42sh$ ./buddhabrot -r buddhabrot -o out.ppm -m 1000 -h 1080 -w 1920
|
||||
```
|
||||
|
||||
## Creating images
|
||||
|
||||
The binary outputs a grayscale image of the buddhabrot for the given sampling
|
||||
rate.
|
||||
|
||||
The project's logo has been created by outputting three different buddhabrot
|
||||
sets for `100`, `1000`, and `10000` samples. Once done, use the following
|
||||
command to create the image (using
|
||||
[ImageMagick](https://imagemagick.org/index.php)).
|
||||
|
||||
```sh
|
||||
42sh$ convert \
|
||||
10000.ppm -channel R \
|
||||
1000.ppm -channel G \
|
||||
100.ppm -channel B \
|
||||
-combine -channel RGB \
|
||||
-alpha off -colorspace sRGB \
|
||||
out.png
|
||||
```
|
Loading…
Reference in a new issue