Color MANDELZOOM
Robert P. Munafo, 2012 Mar 14.
Color MANDELZOOM is a "classic" (680x0-based) Macintosh program for viewing the Mandelbrot Set.
History
In January 1992, inspired by Richard Voss's "Avogadro's Minibrot" image (seen in a 1992 fractal calendar), I began a new project called "MandelPoster" to replace Super MANDELZOOM, adding support for floating-point calcluation and color drawing. This program ran on any 68K-based Mac with Color QuickDraw, and its main purpose was to create large images ("posters") by computing small square chunks. It had the ability to resume after a reboot or crash without losing the work performed up to that point. Later the program was renamed "Color MANDELZOOM".
Color MANDELZOOM on a 68040
UI Paradigm Using X and O Marks
In Super MANDELZOOM, most of the important commands (notably zoom and detail) had been "instant", in that you just need one click to do the command. In order to provide some more complex features I decided to make the commands use a two-part process that involves making a "selection" and then invoking a command to act on it. The selection is chosen by clicking the mouse on a point in the window. This places a little "O" at the spot you clicked. If you click the mouse again someplace else, the "O" becomes an "X", and any previous "X" goes away.
Actions that need a single point (like zoom in) use the "O" mark as their "parameter". Actions requiring two points or a rectangle (like the detail command) use both "X" and "O".
X and O marks used to denote a rectangle for the Detail command (currently in progress)
New Functionality
The original functions of the program (basic browsing and making posters) were implemented immediately. Later in 1992 I added the ability to create zoom animations using QuickTime.
In order to view the Voss's "Avogadro's Minibrot" and other images like it, I implemented a form of "double-double" extended-precision floating point supporting up to 120 bits (36 decimal digits) of accuracy in 1993.
More improvements were made after the transition to PowerPC (see Power MANDELZOOM) and Color MANDELZOOM was updated as well to match.
Download Link
A current version of Color MANDELZOOM is available in the DMG file in the "download" section of the Power MANDELZOOM page. (Note that this DMG contains both Color MANDELZOOM and its PowerPC successor.)
Successor
With Apple's introduction of the PowerPC Macintosh models I added new high-performance evaulation code and other features; the program became Power MANDELZOOM.
Most of the changes added to Power MANDELZOOM are also available in the 68K version, which is still called "Color MANDELZOOM".
Benchmarks
These benchmarks show the relative performance of Color MANDELZOOM in emulators. (There are also benchmarks of the PowerPC version)
The following labels and abbreviations are used:
Versions of the program:
68K+SANE : This refers to a version of Color MANDELZOOM that does not use 68881 instructions but instead calls the SANE software floating-point library, so that it can be run on a 68020, 68030 or 68LC040 system that lacks a hardware FPU.
68K+881 : This refers to the version of Color MANDELZOOM that uses 68881 instructions.
Column labels:
Precision : 24 and 53 are single and double precision floating-point. 24x2 and 53x2 are special optimized loops that iterate two points in parellel (available for Dwell imaging only, not DEM/M). 107, 161 and 215 are the three extended-precision types; there is no "x2" loop for these types.
Dwell : Calculating an image that shows the dwell bands, but not the filaments.
DEM : Calculating an image that shows both the dwell bands and the filaments, using the DEM/M algorithm.
ips : Iterations per second: number of times per second the calculation Z=Z2+C is being performed.
flops : number of floating-point operations per second. The ratio of ips/flops is 7 for Dwell calculation and 18 for DEM calculation.
Other abbreviations:
K, M, G : These are precisely 1000, 106 and 109.
The 68K+881 version running under Mac OS 7.5.3 within the
Basilisk II emulator (October 2011 version,
emulating a 68040 with all JIT options
enabled), on the 2.2 GHz Intel Core i7-2720QM:
Amazingly, the
emulated 68040 runs faster than many real PowerPC systems.
BasiliskII's speed is comparable to a hypothetical "5 GHz 68040".
The 68K+881 version running under Mac OS 7.5.3 within the
Basilisk II emulator (October 2009 version, emulating a 68040 with
all JIT options enabled), on a 2.16 GHz Intel Core 2 Duo:
This version of BasiliskII had more modest, but still quite
remarkable speed; it is comparable to a hypothetical "420 MHz 68040".
The 68K+SANE version, running in the 68K emulator of
Classic mode on the above 2.0 GHz PowerPC
G5:
This is a version compiled to use the SANE library for all
floating-point operations.
The 68K+SANE version, running in the 68K emulator of MacOS 9 within
the SheepShaver emulator, on the above 2.33 GHz Core 2 Duo:
This is an Intel CPU emulating a PowerPC emulating a 68LC040, which
is using the SANE library to perform all floating-point calculations
with integer operations.
The 68K+881 version running under Mac OS 7.5.3 with the
"SoftwareFPU" control panel, within the Basilisk II emulator
(emulating a 68020 with no JIT compilation), on the 2.2 GHz Intel Core
i7-2720QM:
This is slower than any real 68020 would be, and is
included here just to demonstrate the program's ability to adapt to
different CPU speeds.
See more of my Mac software.
revisions: 20120314 original version; 20120315 add another image and expand description of 1992,1993 development
From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo, (c) 1987-2024.
Mu-ency main page — index — recent changes — DEMZ
This page was written in the "embarrassingly readable" markup language RHTF, and was last updated on 2023 Jul 03. s.27