Benoit is a Rust-written programme for visualising complex functions, e.g. the Mandelbrot Set and similar fractals.
The project consists of the core benoit
crate, from which the front-ends benoit-cli
and (in the future) benoit-gui
derive.
The core library used multi-threading for rendering the provided scenes. Internally, the Rayon crate is used for threadpooling and such, where each pixel on the canvas is a job in and of itself.
The benoit-cli
front-end supports exporting to PNG. These images are saved with transparency and with sixteen bits per channel.
The benoit-cli
executable can render and animate using TOML files right from the commandline.
The main use of benoit-cli
is to render still images or animations of fractals, e.g. zoom-ins. An example configuration could look like the following:
# benoit.toml
[render]
count = 24
width = 1024
height = 1024
fractal = "mandelbrot"
inverse = false
julia = false
[render.start]
frame = 0
max_iter_count = 0x100
centre = "0.0+1.0i"
seed = "0.0+0.0i"
zoom = "1.0"
colour_range = 64.0
[render.stop]
frame = 23
max_iter_count = 0x100
centre = "0.0+1.0i"
seed = "0.0+0.0i"
zoom = "1.0"
colour_range = 64.0
[final]
palette = "fire"
[output]
directory = "render/"
Just provide the path to the desired configuration:
$ benoit-cli "benoit.toml"
The benoit-gui
executable, on the other hand, allows viewing fractals in realtime. Do note, however, that this front-end is currently unimplemented.
Until this front-end is implemented, please use version 2.7.1
of Benoit instead.
Documentation is written in source. Documentation for the main library is hosted on docs.rs
.