This is a simple Rust application made with Druid which provides the tools to create complex fractal images. It uses a highly-performant multi-threaded and SIMD-enabled backend to compute fractals in near-real-time on the CPU.
Example output:
Screenshot
Currently, the backend works best when the target feature avx2
is available, as this enables SIMD operations.
# debug [non-release] builds are significantly slower, useful for development only
cargo build --release
cargo run --release
- Current implementation of progressive rendering doubles the amount of work. Pixels which are already calculated should not be re-rendered. This could be done by scaling only the height to allow SIMD execution to work normally on the width of the image.
- The render tab needs an aspect-ratio corrected render preview. This will require a controller for the size of a container around RenderView.
- The info text at the bottom of the settings pane should be more fully utilized. This is probably best implemented with a ExtEventSink.
- I would like to add support for the Newton Fractal, in addition to MandelBrot and Julia. Other fractals are possible as well.
- LONG TERM: Precision could be greatly increased by utilizing abitrary-precision floats and perturbation.