Julia set viewer

I admit that I’m writing this in 2017, though I meant to write about it 2014!

I made a Julia set viewer that can run in the web browser, rendering it in realtime using the GPU.

The mouse controls c in the iteration zz2+c, where the initial z is the particular point of the complex plane corresponding to the pixel.

The coloring doesn’t mean anything; it is just from an earlier GPU experiment. The controls:

Shift-a or middle click
Go on a guided tour of interesting points.
Esc
Regain control.
Space
Sets a point r that is fixed while held, and then c is r+(mr)ζ, where ζ is the zoom controlled by the mousewheel and m is the mouse.
Doubleclick
Pauses or unpauses. When pausing, copies the current point to the URL.
Space-click
Adds point to animation path.
Right click
Begins animation.
0
Toggles rendering mode between black background and white background.
P
Toggles showing the current point c.
Enter
Cycles modes (1, 2, or 3).
1
Switches to mode 1. View Julia set.
2
Switches to mode 2. View corresponding point in Mandelbrot set. The ζ for Space is the zoom for this view.
3
Switches to mode 3. Distorts between modes 1 and 2.
s
Replaces current point c with c2+c.
v and w
Replaces current point with one of two inverses of c2+c.

The idea after getting the program to show Julia sets at all was to make it drift through different parameters automatically. At first, I thought I thought a complicated-enough path would be sufficient, but most Julia sets are not that interesting!

I got a bunch of people to play with it and choose their favorite points (Shift-click would send the point to the server), and then the implementation of Shift-A is to plot a path through these points.

My hunch was that the interesting points would have something to do with the boundary of the Mandelbrot set, and indeed:

The Mandelbrot set records the connectivity of all the Julia sets. The boundary of the Mandelbrot set is where the connectivity is uncertain, which gives interesting fractal fringes. Though, it looks like there are some other interesting configurations in the centers of the Mandelbrot bulbs, where the corresponding Julia set has a pleasing symmetry.