A Map of Every Julia Set

The Mandelbrot set is also an index of fractals. Every point in the complex plane corresponds to a Julia set, and the Mandelbrot set tells you which of those Julia sets are connected (one piece) and which shatter into disconnected dust. Pick a point inside the Mandelbrot set, use it as c in the Julia iteration, and you get a connected shape. Pick a point outside, and the Julia set falls apart.

This means the Mandelbrot set is a map of all possible Julia set behaviors, organized by the parameter c. Points near the boundary produce Julia sets that are connected but barely holding together, with long tendrils and spirals. That's why the boundary itself is so complex.

The Formula

Take a complex number c. Start with z = 0. Repeatedly compute z → z² + c. If the result stays bounded (doesn't fly off to infinity), then c is in the Mandelbrot set. That's the whole definition.

In practice, if |z| ever exceeds 2, it will diverge, so that's the escape test. The number of iterations before escape determines the coloring of points outside the set. Points that never escape are colored black (or whatever you choose for the interior). The boundary between escaping and non-escaping points is where the fractal structure lives.

What Happens at Deep Zoom

The boundary of the Mandelbrot set has Hausdorff dimension 2, which means it's so convoluted it effectively fills area at every scale. Zoom in on any boundary region and you'll find smaller copies of the full set, connected to each other by thin filaments. These mini-Mandelbrots appear everywhere, rotated, distorted, surrounded by their own spiral structures.

Standard 64-bit floating point gives you about 16 significant digits, which means you can zoom in roughly 10^13 times before neighbouring pixels collapse onto the same number and the image turns to blocks. To go deeper you need perturbation: compute one reference orbit with arbitrary precision, then work out each nearby pixel as a small difference from it, using numbers with an extended exponent range. Our main visualizer stops at about 10^14. The separate Mandelbrot zoom explorer keeps every coordinate as exact decimal text and uses perturbation with a high-precision reference, reaching built-in views 10^-1000 tall. Grey pixels there mean "not escaped within the iteration budget", not "proven inside". How deep zoom works explains the method and shows our measurements.

History

Benoit Mandelbrot first visualized it in 1980 at IBM, using mainframe computers. The iteration itself was studied earlier by Pierre Fatou and Gaston Julia in the 1910s and 1920s. But without computers, nobody could see the full picture. Mandelbrot could, and the images were so unexpected that they kicked off the popular fractal craze of the 1980s.

Adrien Douady and John Hubbard proved the set is connected in 1982. This was not obvious. The thin filaments connecting mini-Mandelbrots are so narrow they're invisible at most zoom levels, and early researchers suspected the set might be a collection of disconnected pieces. In fact every part is connected to every other part, though the connections can be vanishingly thin.

Exploring It

Voyage

Guided tour through several locations: Seahorse Valley, Elephant Valley, the antenna region, and various mini-Mandelbrot satellites.

Around the World

Pans across the full set, moving between the main cardioid, the period-2 bulb, and the smaller bulbs along the boundary.

Deep Zoom

Animates a long zoom into the boundary in the main visualizer, up to its limit of about 10^14 magnification. For deeper views, use the Mandelbrot zoom explorer, with presets from Seahorse Valley down to 10^-1000.

Interactive

Full manual control. Click to zoom, drag to pan, scroll to adjust magnification. Find your own mini-Mandelbrots.

Technical Implementation

The main visualizer runs on WebGL shaders, so the GPU handles the per-pixel iteration in parallel. WebGL shaders work in 32-bit floats rather than 64-bit doubles, so for deeper views the shader combines pairs of 32-bit values and offsets pixels from a reference orbit computed with GMP-WASM. That combination still runs out of precision, and the visualizer caps zoom at about 10^14.

The standalone Mandelbrot zoom explorer uses a separate engine built for depth. It computes one reference orbit with MPFR (through GMP-WASM) in a background worker, iterates each pixel as a small perturbation from it, skips predictable runs of steps with bivariate linear approximation, and rechecks pixels it cannot trust. It runs on the graphics card through WebGPU when the device passes a start-up check, and on the processor otherwise. This is the same family of techniques used by dedicated deep zoom software such as Kalles Fraktaler.

Further Reading