Back in college I wrote a handful of applets that drew fractals. The last one I did was the mandelbrot set, but it didn’t have the performance I wanted and I didn’t work on it much.
A few days ago I got to thinking about it again, and figured I’d try optimizing it since I’ve been doing a lot of concurrent and parallel programming at work and I figured at worst I could just make it multi-threaded. There’s still room for improvement, but I got a basic interface down and a level based drawing pattern that does remarkably well with only two threads (one refreshing the image at ~60 fps and running the interface, the other doing the calculation):
Holding the left mouse button on a point in the applet zooms in, the right button zooms out, and the ‘r’ key resets the view.