Click to zoom in, scroll to scale, double-click to reset. The iteration count ceiling rises automatically with zoom depth. Smooth coloring eliminates the discrete banding of raw escape time.
Gaston Julia and Pierre Fatou worked out the mathematics of iterated complex functions independently during the First World War, both sidelined from combat: Julia by a wound that cost him his nose, Fatou by poor health. Their papers appeared in the same year, 1918, and described the same fractal boundaries around which complex iteration becomes unpredictable. But neither man could see what he had found. Without a computer, the boundary between order and chaos in the complex plane was accessible only as an abstract set, never as an image. The mathematics existed for sixty years before anyone knew what it looked like.
Benoit Mandelbrot arrived at IBM's Thomas J. Watson Research Center in 1958 and stayed for three decades. He was not primarily interested in complex dynamics; he was interested in roughness, specifically the statistical self-similarity of coastlines, price fluctuations, and noise in telephone lines. He coined the word fractal in 1975. It was only in 1979, while studying the parameter space of Julia sets, that he began plotting what would become the set that carries his name. The first published image appeared in 1980, a crude grid of ASCII characters produced by Robert Brooks and John Matelski in 1978, followed by Mandelbrot's own computer-generated plots. Quanta's account of the set's mathematical history makes clear that what Mandelbrot contributed was not the underlying mathematics, which Julia and Fatou had done, but the recognition that a single object (the set of complex parameters c for which the orbit of zero under z → z² + c remains bounded) acted as an index to the entire family of Julia sets. Every point in the Mandelbrot set corresponds to a connected Julia set; every point outside it corresponds to a disconnected one.
The iteration itself is simple enough to state in a line. Start with z = 0, apply z = z² + c repeatedly, and count how many steps pass before |z| exceeds 2. If it never does within the iteration budget, the point is colored black: it is in the set. If it escapes, the step count determines the color. That raw count produces vivid concentric bands, but the bands are an artifact of using integers: two points that escape at the same step may have very different final magnitudes, and the discrete count erases that distinction. The artifact becomes glaring under zoom.
while (x * x + y * y <= 4 && iter < maxIter) {
const xt = x * x - y * y + x0;
y = 2 * x * y + y0;
x = xt;
iter++;
}
// smooth the escape count using the final magnitude
const logZn = Math.log(x * x + y * y) / 2;
const nu = Math.log(logZn / Math.LN2) / Math.LN2;
const t = (iter + 1 - nu) / maxIter;
The smooth coloring formula corrects for this by computing a fractional escape count. After the loop exits, the final complex magnitude encodes how far past the bailout radius the orbit had traveled; points that barely crossed the threshold look different from points that blew up immediately. Taking log(log(|z|)) and subtracting it from the integer count produces a continuous value that agrees with the raw count asymptotically but interpolates smoothly between adjacent bands. The formula derives from the Böttcher coordinate, a conformal map that straightens the dynamics near infinity: the potential function of the set is log|z|, and smooth iteration count is essentially that potential normalized into step units. It costs nothing extra, just two logarithms after the loop, and the banding disappears entirely.
What the artifact makes available that static images cannot is the zooming. The Mandelbrot set has the same qualitative structure at every scale: bulbs budding from bulbs, each surrounded by spiral filaments and smaller copies of the whole figure. The iteration ceiling in this version rises automatically with zoom depth, since deeper zoom exposes finer structure that requires more iterations to distinguish, so the image stays detailed as you descend. The self-similarity is genuine but not exact; the copies at deeper scales are distorted versions of the whole, not identical replicas. Mandelbrot called this property quasi-self-similarity in The Fractal Geometry of Nature (1982), which remains the most readable account of what fractals are and why they appear wherever roughness persists across scales. The set's boundary has Hausdorff dimension 2, which means it is as area-filling as the plane itself: infinite length compressed into a curve of zero area.
The full interactive version is on the artifact page. The gallery sketch at gallery/mandelbrot runs the same renderer in a stripped frame. Either way: click once to dive in, then keep clicking. The structure does not run out.
Mandelbrot
Interactive Mandelbrot set with smooth (normalized) iteration coloring. Click to zoom, scroll to scale, double-click to reset. Iteration ceiling rises automatically with zoom depth.
View artifact → Open gallery sketch →