Explore the Mandelbrot and Julia sets
Quite complex, actually
zn+1 = zn2 + c
© 2025-2026 Neil Kendall
More @ www.korovatron.co.uk
This application uses two different rendering techniques depending on the zoom depth:
At shallow zoom levels, we use the direct iteration method where each pixel independently calculates:
zn+1 = zn2 + c
This is computed using 32-bit floating-point numbers on the GPU, which is fast and provides good precision down to about 10-7 zoom depth. Beyond this, numerical precision limits prevent further accurate zooming.
At extreme zoom depths (10-7 to 10-38), we switch to a more sophisticated approach:
This technique, known as perturbation theory, allows us to reach zoom depths of 10-38 on desktop while maintaining full visual detail and smooth performance.
An orbit is the sequence of points generated by repeatedly applying the Mandelbrot formula:
z0 → z1 → z2 → z3 → ...
When pixels are close together (at deep zoom), their orbits follow very similar paths. The perturbation method exploits this similarity by only calculating one precise orbit, then using deltas to approximate nearby orbits efficiently.
The orbit quality indicator shows how well the perturbation approximation is working. It measures how close the delta orbits remain to the reference orbit:
When orbit quality drops, panning or zooming slightly will recalculate a new reference orbit and restore quality. Areas near black (in-set) regions typically have better orbit quality than boundary areas.
The max iterations setting controls how many times we iterate the formula before giving up. Higher values reveal more detail but require more computation. In Auto mode (recommended), the app uses two different strategies:
The deep zoom optimiser uses a four-phase search algorithm:
Watch for the red "⏳ Optimising" indicator when this is running. It appears automatically when orbit quality drops below 95%. The optimiser runs asynchronously so you can continue panning and zooming.
Manual mode lets you override the optimiser and set iterations yourself:
Black areas (points inside the set) always use the maximum iterations, while coloured areas (points that escape) typically use fewer iterations. This is why panning through black regions is more GPU-intensive.
Desktop and mobile devices have different capabilities:
You've crossed the 10-7 barrier where normal floating-point precision runs out of steam. The app now uses perturbation theory to reach extreme depths!
For the most stunning images with minimal artifacts:
The app automatically finds the best iteration count for image quality. Watch for the red "⏳ Optimising" indicator (bottom right).
You can reach zoom depths of 10-38 viewing details trillions of times smaller than atoms compared to your starting view!