Skip to content

A fractal generation app written in Rust, using the Druid UI library

Notifications You must be signed in to change notification settings

KiranWells/mandel-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A fractal generation app written in Rust, using the Druid UI library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages