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 uses 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.