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

[ gpl, graphics, program ] [ Propose Tags ]

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.

Mandulia supports additional compile-time flags for speed, but by default these are disabled because they don't work on all systems. These flags are "-ffast" for miscellaneous optimizations, and "-ffast -fSSE4" to use SSE4 instructions too.

Changes from "mandulia-0.7": fixed for current state of Hackage.

Quick start: run "mandula main" and press the "a" key.


[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
fast

Enable optimizations that might break some compilers.

Disabled
sse4

Enable optimizations for SSE4 CPUs.

Disabled

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.4, 0.5, 0.6, 0.7, 0.8.0.1
Change log NEWS
Dependencies array, base (>=4.6 && <5), bytestring, containers (>=0.5), directory, filepath, GLUT (>=2.2), hslua (>=0.2 && <0.4), time [details]
License GPL-3.0-only
Copyright (C) 2010,2022 Claude Heiland-Allen <claude@mathr.co.uk>
Author Claude Heiland-Allen
Maintainer claude@mathr.co.uk
Category Graphics
Home page https://code.mathr.co.uk/mandulia
Source repo head: git clone https://code.mathr.co.uk/mandulia.git
this: git clone https://code.mathr.co.uk/mandulia.git(tag v0.8.0.1)
Uploaded by ClaudeHeilandAllen at 2022-09-22T15:35:12Z
Distributions NixOS:0.7
Executables mandulia
Downloads 3117 total (17 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2022-09-22 [all 1 reports]

Readme for mandulia-0.8.0.1

[back to package description]
Mandulia
========

Mandelbrot/Julia set explorer.


Invocation
----------

Multi-core CPU with lots of RAM recommended:

    mandulia configuration

Currently there is one preset configurations available:
'main' -- keyboard navigation with randomized attract mode.

To render videos (see below):

    mandulia configuration |
    ppmtoy4m -S444 -F25:1 |
    ffmpeg2theora -v 8 -f yuv4mpegpipe -o mandulia.ogv -


Controls
--------

'main' defines the following key bindings:

Escape   -- quit
F11      -- toggle full screen
a        -- enter attract mode immediately
r        -- record for 10 minutes (assuming 25fps)
s        -- record for 1 frame (aka screenshot)

Note that recording is via PPM images on 'stdout', so to avoid flooding
your terminal with binary data be sure to redirect it somewhere else.

As a side-effect, the following count as 'activity':

PageUp   -- zoom in
PageDown -- zoom out
cursors  -- move around
End      -- stop moving
Home     -- return to base
[ ]      -- change speed
#        -- reset speed
{ }      -- change weight
~        -- reset weight

Attract mode is entered after 1 minute (assuming 25fps) of inactivity,
and left on any activity.

Other configurations may differ, check their sources for details.


Scripting
---------

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 'main.lua' for an
example of keyboard navigation.  Note that some variables only take
effect on startup, and later modification will be ignored.