gruff

fractal explorer GUI using the ruff library

Latest on Hackage:0.4

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

GPL-2.0-only licensed by Claude Heiland-Allen
Maintained by [email protected]

Mandelbrot Set fractal explorer using the ruff library.

Requires GTK, OpenGL, and GLSL fragment shader support; lots of RAM and multiple CPU cores recommended.

If you want to explore very deep zooms, you'll need hmpfr which currently requires GHC to be compiled with integer-simple instead of the default integer-gmp. To install with MPFR support, use cabal install gruff -fmpfr. Note that the default setting for this flag has changed since gruff-0.2.

gruff-0.4 updates for ghc-8.0.

gruff-0.3.4 updates dependencies for ghc-7.8. Colouring is improved.

gruff-0.3.3 relaxes dependencies for ghc-7.6.

gruff-0.3.1 is a bugfix release, fixing a performance problem wherein offscreen tiles were needlessly calculated. The performance gain is much less (and in many cases is in fact a performance loss) when using integer-simple.

gruff-0.3 includes a small library to allow external programs to create diagrams and animations with gruff. See the gruff-examples package. The interface has been remodelled to simplify it and add informative feature overlays.

gruff-0.2.1 was a bugfix release. Changes since gruff-0.2:

  • Supersampling bugs are fixed (no more undocumented quantization leading to inconsistent appearance at different zoom levels).

  • Race condition bugs in cache management are fixed (no more incompletely rendered images).

  • Internal changes/refactoring to make future additions easier.

Features in this version include:

  • Interactive fractal browser display with mouse controls:

  • Left click to zoom in (press shift for bigger jumps).

  • Right click to zoom out (press shift for bigger jumps).

  • Middle click to center.

  • Shift middle click to auto-focus.

  • Control left click to label with period.

  • Control right click to label with angled internal address (slow!).

  • Session persistance (stored in ~/.gruff/state.gruff - states can also be loaded from and saved to other files, including labels and rays). Note that the file format is incompatible with previous releases of gruff.

  • Tile cache (by default in ~/.gruff/cache - symlink it somewhere with a few GB of space if you plan on exploring a lot).

  • Can use MPFR if desired for higher precision, allowing deeper zooms and locating high period nucleii.

  • Limited amount of customizable colouring (colours for interior, border, and exterior points, as well as labels and rays).

  • Supersampling for more detailed images (useful range is 1 to 16).

  • Rudimentary scripting support (see the gruff-examples package).

Future versions will focus on enhancing the scripting support.