Rima, the Realtime Interactive Mandelbrot
Animator
About
Rima is an open-source Mandelbrot set
animator for Windows, Mac
OS X, and Linux. It has a few noteworthy features:
Rima animates by displaying the results of every
iteration, instead of only displaying the results of, say,
1,000 iterations as a static image;
Rima colors pixels using the polar coordinates of each
point; and
Rima has a few really pretty bugs in the color-space
conversion code that you can cycle through with by pressing
'c'.
(I think these features are unique developments. If another
program has done this before me, please let me know.)
Downloads
Rima 0.4.2
for Windows
Rima
0.4.2 for Mac OS X (Intel, possibly Leopard or later
only)
Rima 0.4.1 for
Linux
(amd64)
Rima 0.4.0 for
Linux (i386)
Mansdlbrot
0.3.0 for Mac OS X (PPC), the precursor to rima
Rima 0.4.2 source code
Galleries
You can find a small gallery of screenshots here,
and some movies here.
(For the movies, you'll need an MPEG-4 codec such as FFDShow
(Windows)
or Perian (Macs), or a video
player with them built in such as mplayer or VLC.
Controls
Keys for control/browsing:
- (minus) zoom out
= zoom in
arrow keys pan
spacebar pause/unpause iteration
backspace clear to first iteration
{ increase frame-skipping
} decrese frame-skipping
[ reduce maximum speed
] increase maximum speed
c switch coloration mode
. (period) advance one iteration (fast)
ctrl-. (ctrl-period) advance twenty iterations (fast)
, (comma) move back one iteration (very slow at late iterations)
< (shift-comma) back five iterations (very slow)
ctrl-, (ctrl-comma) back twenty iterations (very slow)
ctrl-< (shift-ctrl-comma) back one hundred iterations (very slow)
optional command-line options:
-f Fullscreen
-x _____ Horizontal screen resolution
-y _____ Vertical screen resolution
-r _____ Initial position on the real axis
-i _____ Initial position on the imaginary axis
-z _____ Initial zoom level (smaller numbers are higher zoom)
-b Benchmark mode: runs 256 iterations as fast as possible,
then quits. Prints speed info (except on Windows)
-j Jump benchmark mode: performs several zooms, pans, and jumps,
then quits and prints speed info (does nothing on Windows)
Performance
Rima is moderately well-optimized. It will take
advantage of multi-core or multi-processor systems
effectively (except, currently, on Windows, since my current
compiler for Windows doesn't support OpenMP). However, the
algorithm it uses for rendering is inherently slower than the
traditional escape-time algorithm used by most other programs.
Compiling from source
Download the source here: rima-0.4.2.tar.gz. If you're on
OS X, try the Xcode project. If you're on linux, install SDL and the
SDL development headers (on Debian or Ubuntu: sudo apt-get
install libsdl libsdl-dev
), then try running make
.
If you're on Windows, good luck. (I compiled the Windows binary from
Linux using MinGW with Makefile.mingw
). In all cases, it's
best if you use a compiler that supports OpenMP. This includes gcc >=
4.2. If you're using gcc 4.1 or earlier, edit Makefile
and
remove the -fopenmp
option.