Cool :) It reminds me my own web-fractal :) my fractal has smaller resolution, but runs smoothly in 10 - 60 FPS (mouse down to zoom) ... and you can zoom in twice as much, because I use doubles instead of floats http://lib.ivank.net/demos/mandelbrot.html
Cool, I love fractals and Mandlebrot. During Uni I too wrote a JS based generator[0]. It was pretty nice, but horribly slow. Prompted by the poor performance in JS I built a C++, OpenCL version[1]. Seeing the difference in performance was quite amazing. Settings that took 20 seconds in JS rendered in 200ms using OpenCL.
Planning to write a new version using Apple's Metal and Swift at some point too.
Nice project. I built one of these once on a C128 some years ago in interpreted BASIC of all things. I let it run through a few iterations to gauge its speed, saw that it was pretty quick and didn't even bother to compile it, completely forgetting that the speed of an iteration is determined by how many cycles are required before an escape and that the early ones all escaped quickly. The silly thing ran for over a week...
I would appreciate an in-viewer option to change the image resolution. It is taking ~10 sec to redraw on zoom-in, but I don't immediately need that much detail.
Thanks. It calculates the escape time for every single pixel on the screen to produce the sharpest image possible - it can be kind of slow on retina/4k displays. It will run faster on 1080p displays (or if you change your monitor resolution).
The boundary of the set is certainly a fractal. A much more pedantic point would be that you are drawing the points that are outside the set, and leaving the set itself black. :)