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 Midget" 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
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)
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 Midget" 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 on the Power MANDELZOOM page.

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".

prec- Dwell DEM ision ips... flops. ips... flops. 24 43.7 M 305 M 10.2 M 185 M 24x2 82.3 M 576 M 53 9.61 M 67.3 M 3.30 M 59.5 M 53x2 13.1 M 92.3 M 107 679 K 4.75 M 475 K 8.55 M 161 231 K 1.62 M 170 K 3.06 M 215 112 K 788 K 83.9 K 1.51 M

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".

prec- Dwell DEM ision ips... flops. ips... flops. 24 984 K 6.89 M 405 K 7.30 M 24x2 1.32 M 9.28 M 53 992 K 6.94 M 390 K 7.03 M 53x2 1.30 M 9.16 M 107 58.3 K 408 K 39.5 K 712 K 161 22.4 K 157 K 16.8 K 302 K 215 11.7 K 82.3 K 8.56 K 154 K

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.

prec- Dwell DEM ision ips... flops. ips... flops. 24 207 K 1.45 M 63.4 K 1.14 M 24x2 245 K 1.71 M 53 188 K 1.32 M 69.5 K 1.25 M 53x2 243 K 1.70 M 107 16.1 K 112 K 11.0 K 198 K 161 5.49 K 38.4 K 3.99 K 71.9 K 215 2.71 K 19.0 K 2.01 K 36.2 K

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.

prec- Dwell DEM ision ips... flops. ips... flops. 24 121 K 849 K 38.6 K 695 K 24x2 151 K 1.06 M 53 112 K 785 K 40.4 K 728 K 53x2 139 K 975 K 107 8.73 K 61.1 K 6.17 K 111 K 161 3.03 K 21.2 K 2.22 K 40.0 K 215 1.56 K 10.9 K 1.13 K 20.4 K

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.

prec- Dwell DEM ision ips... flops. ips... flops. 24 6.32 K 44.2 K 2.25 K 40.6 K 24x2 7.86 K 55.0 K 53 6.06 K 42.4 K 2.21 K 39.8 K 53x2 7.68 K 53.8 K 107 471 3.30 K 325 5.85 K 161 159 1.11 K 115 2.07 K 215 77 529 57 1.02 K


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-2017.     Mu-ency index


Robert Munafo's home pages on HostMDS   © 1996-2017 Robert P. Munafo.
aboutcontact    mrob    mrob27    @mrob_27    mrob27
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Details here.

This page was written in the "embarrassingly readable" markup language RHTF, and was last updated on 2017 Feb 02. s.11