mandulia: A zooming visualisation of the Mandelbrot Set as many Julia Sets.

[ gpl, graphics, program ] [ Propose Tags ]
Versions 0.4, 0.5, 0.6, 0.7
Change log ChangeLog
Dependencies array, base (==4.*), bytestring, containers, directory, filepath, GLUT (>=2.2), hslua (>=0.2), time [details]
License GPL-3.0-only
Copyright (C) 2010 Claude Heiland-Allen <>
Author Claude Heiland-Allen
Category Graphics
Home page
Source repo head: git clone git://
this: git clone git:// v0.4)
Uploaded by ClaudeHeilandAllen at Mon Jul 12 19:38:34 UTC 2010
Distributions NixOS:0.7
Executables mandulia
Downloads 1491 total (13 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-29 [all 7 reports]
Hackage Matrix CI

Mandulia provides a zooming visualisation of the Mandelbrot Set as many Julia Sets. Featuring a profiled and optimized renderer, and a Lua configuration and scripting interface.

[Skip to Readme]



Enable optimizations for SSE4 CPUs.


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

Readme for mandulia-0.4

[back to package description]

Mandelbrot/Julia set explorer.


Multi-core CPU with lots of RAM recommended.  For two cores run:

mandulia +RTS -N2 -M2G -RTS configuration

Currently there are two preset configurations available:
'interactive' -- keyboard navigation
'random'      -- randomized navigation

Both of these configurations extend 'defaults'.


'interactive' defines the following key bindings:

Escape   -- quit
PageUp   -- zoom in
PageDown -- zoom out
cursors  -- move around
End      -- stop moving
Home     -- return to base
[ ]      -- change speed
#        -- reset speed

Other configurations may differ, check their sources for details.


Mandulia can be reconfigured without recompilation, using Lua scripts.
The first (non RTS) argument to 'mandulia' will be executed on startup.
First it will try to load it as a file, then via Lua's 'require()'.
See 'defaults.lua' to see the available interface, and 'interactive.lua'
for an example of keyboard navigation.  Note that some variables only
take effect on startup, and later modification will be ignored.


If you installed an executable with profiling, try (for example):

mandulia +RTS -s -P -V0.001 -H512M -M2G -RTS