Skip to content

Fractals

The Mandelbrot and Julia sets come from one map, iterated:

Two ways to read it. Fix the starting point at and let range over the plane — that is the Mandelbrot set, a picture of the parameter. Or fix and let the starting point range — that is a Julia set, a picture of the dynamics at that one parameter. Same map, two different planes.

The n-th iterate, not an escape count

Most renderings colour a pixel by how long it took to escape. These colour the iterate itself, , through the same domain colouring the rest of the site uses — hue is the argument, brightness the magnitude.

That is not a trick to reuse machinery. The escape count is a summary of the orbit; is the orbit's position, and it carries the argument as well as the size. The exterior blows up and reads as poles; the interior stays bounded and reads as colour. Turning up sharpens the boundary, because the boundary is exactly where the answer depends on how long you look.

The Mandelbrot set, as the n-th iterate

Three settings cells and one drawable — the plot falls out of the last cell alone.

source
<notatio-worksheet seed='["$\\mathsf{center}$ := [-0.5, 0]", "$\\mathsf{extent}$ := 3", "n := 64", "Mandelbrot(z, n)"]' screen="side" />

The first two cells are framing, in the settings namespace — the set lives around , not the origin. Drag the plot to pan and scroll to zoom; sweep to watch the boundary resolve. At low the set looks fat and smooth — few points have had time to escape. Each doubling etches the filaments a little further out.

A Julia set is one parameter's dynamics

A Julia set, one parameter at a time

c is complex, so it gets one slider per part.

source
<notatio-worksheet seed='["c := -0.4 + 0.6i", "n := 64", "Julia(z, c, n)"]' screen="side" />

Sweep the two parts of and the Julia set changes shape continuously — and the Mandelbrot set is the map of which shapes are possible. Inside it, the Julia set is connected; outside, it shatters into dust. That is Mandelbrot's theorem, and here it is something you can drag a slider through: take out past the boundary and watch the picture come apart.

Where the zoom runs out

The GPU works in f32, so there is a depth past which zooming stops revealing anything and starts revealing the arithmetic: the picture goes blocky, because neighbouring pixels have stopped being distinguishable coordinates. A fractal is the most direct way to see that limit, since detail is what it has at every scale.

This is also what makes the pair a good test for framing that adapts to zoom — the useful iteration count is not fixed but a function of how far in you are, since the deeper you go the longer an orbit needs to declare itself.