gruff: fractal explorer GUI using the ruff library

[ gpl, graphics, library, program ] [ Propose Tags ]

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.




Automatic Flags

use MPFR for higher precision floating point


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS] 0.1, 0.1.1, 0.2, 0.2.1, 0.3, 0.3.1, 0.3.3, 0.3.4, 0.4
Dependencies base (>=4 && <5), bytestring, containers (<1), directory (>=1 && <2), filepath (>=1 && <2), FTGL (==2.0), gruff (==0.4), gtk (>=0.14 && <0.15), gtkglext (>=0.13 && <0.14), hmpfr (>=0.3.2 && <0.4), mtl, old-locale (>=1 && <2), OpenGL (>=3.0 && <3.1), OpenGLRaw (>=3.2 && <3.3), parallel (>=3.1 && <3.3), qd (>=1 && <2), qd-vec (>=1 && <2), ruff (>=0.4 && <0.5), time (>=1 && <2), Vec (>=0.9 && <2) [details]
License GPL-2.0-only
Author Claude Heiland-Allen
Category Graphics
Source repo head: git clone
this: git clone v0.4)
Uploaded by ClaudeHeilandAllen at 2016-11-07T15:52:22Z
Distributions NixOS:0.4
Executables gruff
Downloads 7016 total (25 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-11-17 [all 1 reports]