A previous post told how I “discovered” Mandelbrot Set attractors and wrote perhaps the first program that plots internal characteristics of the set. Other so-called “attractor” fractals I’ve seen are outer fringe features that look “attractor-ish” to someone, but are not the kind I mean.
In brief, the coordinates of each pixel in a Mandelbrot image seed a complex series equation. My applet is unusual because it colors pixels within the set according to how quickly each series converges. Other fractal programs color only external pixels for how quickly those series’ diverge. In my applet, a pixel is only black if the series times out before either converging or diverging.
When I started this, I expected the attractor plot to be rather dull. To see how wrong I was, click the image at left. What it shows is really there, within the set. To explain why it is there is more than my math skills can manage. I even think (and sort of hope), it might give real mathematicians a bit of a puzzle!
I’ll be hard pressed also to explain what this image shows, but at least I can start. Instead of plotting black for each maxed-out (in-set) pixel, the program starts the series again, comparing the result after each iteration to the final one from the first pass. If the result “matches” before the second pass finishes, the point is deemed an attractor, and the second pass count sets the pixel color.
The two-pass approach negates the speed advantage I got from detecting attractors in the 1980’s. But CPUs nowadays are insanely fast, and the second pass is a simple way to catch attractors of practically any period within the iteration limit.
If you want to try the applet for yourself, click the “My Mandelbrot Toy” link here or the one I’ve placed in the sidebar. Most of the interesting features occur at high magnifications, and can be more or less interesting depending on some of the applet’s keyboard-selected settings. A mouse and keyboard legend is shown to the right of the applet’s image display. The following paragraphs explain some of the more obscure features.
The attractor plot is highly chaotic, and can vary wildly with slight changes, particularly to the maximum iteration setting. The image capture shown at right used identical settings to the one above, except that the limit was set lower by only one iteration by pressing Alt-down-arrow. Notice how drastically the “attractor path” features have changed!
The short-term effect of changing the iterations limit is not linear, but I have read that all “in-set” points are attractors. So I assume arbitrarily large iteration counts will yield increasingly more detected attractors. As a more linear shortcut, I made the attractor detection sensitivity adjustable. Pressing the right or left arrow keys reduces or increases the likelihood of matching compared values by changing the number of bits used.
By the way, don’t press a key command too many times at once. The image is re-calculated after each key press.
I’ll explain the applet’s Algorithm A and Algorithm B selection some other time. For now, leave it that A is as I describe above, while I think B is logically more virtuous. Still, I prefer A’s results!
To a mathematician, I think the most interesting option in the applet is the Mode selection. M mode compares the equation results’ magnitudes, whereas R-I compares the actual complex values. Most or all of the wild features of the attractor plot show up in M mode, so I assume those features reflect the mathematical relationship between the complex numbers and their magnitudes. But I don’t understand how that relationship produces these results. Maybe a real mathematician will take interest and tell us. And maybe we’ll understand!
Other settings in the applet are fairly self-explanatory, or their effect will be obvious if you try them. Enable your browser’s status bar to see a readout of the program’s current settings. [Update 1 May 2011: I’ve moved the readout into the graphic display. The status bar doesn’t work the same in the latest browsers.] For now, I haven’t implemented any other way to save an image or its parameters. On my Mac I simply use the Shift-Command-4 screen grab tool. I believe similar tools are available for Windows and Linux users, if not built in.
As yet I’m not ready to release the applet’s source code, but in the meantime I hope some of you enjoy using the applet itself. Post a reply here if you have any questions or comments. I’ll try to respond either online or by e-mail, perhaps both. Happy hunting!