Skip to content

Latest commit

 

History

History
36 lines (23 loc) · 1.76 KB

README.md

File metadata and controls

36 lines (23 loc) · 1.76 KB

Fractal Generation App

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.

Examples

Example output:

An example rendering using the Mandelbrot fractal

Screenshot

An example of the program UI

Compiling

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

Running

cargo run --release

TODO:

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