The Mandelbrot set is one loop: square, add, repeat, and ask whether the number runs away. Change any part of that loop, the power, the arithmetic, what the loop remembers, or the question it asks, and a different world comes out. This chapter walks through the best-known ones and lets you fly through each with the same controls.
Common mix-up: these are not "zoomed-in bits of the Mandelbrot set" or filters applied to it. Each one is a separate map, iterated from scratch. The Burning Ship and the Tricorn really do contain little copies that look like Mandelbrot's cardioids and bulbs, but they are grown by a different rule, which is why their copies come out stretched, flipped or folded.
Every picture in Chapter 8 and Chapter 9 came from the same machine. Take a point. Apply a rule to it. Apply the rule again to the answer, and again, and keep going. Then colour the starting point by what happened: did the sequence run off toward infinity, and if so how fast, or did it stay put?
For the Mandelbrot set the rule is z → z² + c. The starting point is z = 0 and the pixel picks c. That leaves a surprising number of dials you could turn. You could change the power from 2 to 3 or 7. You could change the arithmetic, for instance by flipping the sign of the imaginary part before squaring, or by throwing away the signs altogether. You could let the rule look back one step, so the next value depends on the last two. Or you could stop asking "does it escape?" and ask "where does it settle?" instead.
Each of those choices has a famous fractal attached to it. They are worth meeting one at a time, because what changes in the picture tells you, quite directly, what the rule is doing. Symmetry in the picture is symmetry in the algebra. Smooth, round shapes mean the rule preserves angles. Sharp creases and straight edges mean it doesn't. Black regions that fill whole areas mean the loop found somewhere to settle that isn't infinity.
| Dial you turn | Example | What you get |
|---|---|---|
| The power | zd + c | Multibrot sets, with d − 1 arms |
| The arithmetic | z̄² + c, (|x| + i|y|)² + c | The Tricorn; the Burning Ship |
| The memory | zn² + c + p·zn−1 | The Phoenix |
| The question | z − p(z)/p′(z) | Newton basins: which root, not whether it escapes |
| Two of them at once | Newton step + c | Nova fractals |
Replace the square with a cube and run exactly the same test: start at z = 0, iterate z → z³ + c, and colour c by whether the orbit escapes. The result looks like two Mandelbrot sets fused back to back. Go to the fourth power and there are three arms; the fifth power gives four. The family is called the Multibrot sets, and the pattern holds all the way up: the set for zd + c has (d − 1)-fold rotational symmetry. Turn it by a (d − 1)th of a full turn and it lands exactly on itself.
The main body changes the same way. Mandelbrot's cardioid has one cusp, the dent on its right side. The main body of the cubic Multibrot has two cusps, the quartic three, and in general d − 1. Around the body sit bulbs, and on the bulbs sit smaller bulbs, and in the filaments between them sit tiny copies of the whole Multibrot, just as tiny Mandelbrots sit in the Mandelbrot set's filaments.
As d grows the set gets rounder. For large d the body approaches a disc of radius 1, with a fringe of ever more, ever smaller bulbs around its edge. The pictures also get faster to draw: escaping orbits blow up as the d-th power, so they leave a bailout circle in fewer steps.
Bailout. The test "has |z| passed 2?" still works for every d ≥ 2. If |z| is bigger than 2 and also at least |c|, then |zd + c| ≥ |z|d − |z| = |z|(|z|d−1 − 1), which is larger than |z|. Each step makes it bigger still, so it escapes. Programs usually test against a much bigger radius anyway, because it makes the colours smoother.
Smooth colour. The smooth iteration count from Chapter 15, ν = n + 1 − log₂(log|zn|), assumes squaring. For degree d the base of the outer logarithm becomes d: ν = n + 1 − log(log|zn|)/log d. Use base 2 for a cube and the colour bands jump at every iteration boundary. The explorer below uses the right base for each formula.
Fractional powers. Many programs let d be any real number and slide smoothly from 2 to 3. That needs zd = exp(d·log z), and the complex logarithm has to be cut somewhere, usually along the negative real axis. The cut shows up as a seam: a straight line across which the picture jumps. The morphing animations are real, but the seam is an artifact of the branch choice, not part of the mathematics of the family.
Here is a smaller change. Before squaring, take the complex conjugate: flip the sign of the imaginary part, the mirror image of z in the real axis. The rule becomes z → z̄² + c, written with a bar over the z. Run the usual escape test from z = 0 and you get a shape with three points, like an old three-cornered hat. That is where the name Tricorn comes from; it is also called the Mandelbar set, after the bar.
The symmetry jumps from one fold to three. The same trick as before shows why: multiply c by a cube root of one, ω, and the orbit is multiplied by ω too, because conjugating ω and squaring it brings you back to ω. Higher powers of the conjugate, z̄d + c, give the Multicorns, with d + 1 points rather than d − 1.
Look closely at the Tricorn's edge and you will find bulbs and baby Mandelbrot-like copies, but some of them are bent or squashed in a way you never see in the Mandelbrot set, and along certain stretches the boundary wiggles in long arcs. Those are fingerprints of the conjugation. A conjugate reverses orientation, like a mirror, and the dynamics never settle into one consistent handedness.
Apply the Tricorn rule twice and the conjugations cancel. Write f(z) = z̄² + c. Then f(f(z)) = (z² + c̄)² + c, which has no bars on z at all. So the second iterate is an ordinary degree-4 polynomial, and everything known about polynomial dynamics applies to it. The Tricorn is really a slice through the parameter space of quartic polynomials, the slice where the two halves of each double step are mirror images.
That mirror pairing is what makes its structure stranger than Mandelbrot's. Douady and Hubbard proved in 1982 that the Mandelbrot set is connected. The Tricorn is connected too, but John Hubbard and Dierk Schleicher showed in 2014 that the Multicorns, the Tricorn included, are not path connected: there are pieces you cannot join by any continuous path that stays inside the set. The wiggling arcs on its edge are part of the reason.
The earliest detailed study is by W. D. Crowe and coauthors in 1989, who called it the Mandelbar set. John Milnor met the same shape as a slice through the space of real cubic maps and called it the tricorn.
In 1992 Michael Michelitsch and Otto Rössler published a variation that throws the signs away. Split z into its real part x and imaginary part y. Before squaring, replace both with their absolute values, so the point always lands in the top-right quarter of the plane. Then square and add c as usual.
The whole parameter plane looks like a rough, dark hull with spiky superstructure. The name comes from the left-hand antenna: zoom into it and you find a little ship sailing on what looks like a sea of flames, and a whole flotilla of smaller ships further along. It is traditionally drawn with the imaginary axis pointing down, so the ships sit upright. The explorer does the same.
The fold is not a smooth operation; it has a crease along both axes. That is why the Burning Ship looks so different from its cousins: straight edges, sharp corners, shapes stretched more in one direction than another. The Mandelbrot and Tricorn rules preserve angles at small scales, which keeps their small features round. The fold breaks that, and the picture shows it everywhere.
Along the real axis, though, nothing gets folded. If c is real and the orbit starts at 0, y stays exactly 0 forever, and the rule becomes x → x² + c, the real Mandelbrot map. So the Burning Ship's antenna, sliced along the real axis, has the same period-doubling cascade as the Mandelbrot set's antenna, and the same as the logistic map's in Chapter 11. The flames are what the fold does to the neighbourhood of that line.
Every rule so far looked only at the current value. Shigehiro Ushiki's Phoenix, published in 1988, also looks back one step. The next value is the current one squared, plus a constant c, plus a fraction p of the value before.
The classic Phoenix picture is a Julia-style image: c and p are fixed, the pixel picks the starting value z₀, and z₋₁ starts at 0. The parameters most programs use are c = 0.5667 and p = −0.5. They tell a nice story. With p = 0, the rule is z² + 0.5667, and 0.5667 lies to the right of the Mandelbrot set's cusp at 0.25, outside the set. Its Julia set is Cantor dust: infinitely many points, none of them connected, too thin to see. Turn on a memory of minus one half and a feathered, winged shape rises out of nothing. The name fits.
Memory changes the bookkeeping more than it looks. The state of the system is now a pair of numbers, (zn, zn−1), so the Phoenix is really a map of two complex variables, four real dimensions. The picture on the screen is a flat slice of a four-dimensional object, taken where z₋₁ = 0. Different slices give different pictures, which is one reason the Phoenix looks less self-similar than a Julia set.
Because c and p are real numbers here, the picture is a mirror image of itself across one axis: start from the conjugate of z₀ and every later value is the conjugate of the original orbit. It does not have the 180° symmetry of a quadratic Julia set, though. For z² + c, the points z₀ and −z₀ land on the same z₁ immediately. For the Phoenix the memory term p·z₀ remembers the sign, and the two orbits part ways on the second step.
The explorer draws the Phoenix turned a quarter turn, with the real part of z₀ running up the screen, so the wings spread across a wide canvas. The c and p sliders change the slice. Small changes in p are worth trying: the wings grow, merge, shatter into dust and come back.
Pick a formula and fly. Drag to pan, scroll or pinch to zoom, tap or click to zoom in two times on a point. Every pixel is iterated live in your browser: a quick coarse pass appears first, then the full-resolution image fills in row by row, and any change you make cancels the work in progress. Iterations rise automatically as you zoom; the slider sets the starting budget.
Black means the orbit never escaped within the iteration budget. Colours outside use the smooth iteration count with the correct logarithm base for each rule. Ordinary double-precision numbers run out at about 1013× zoom; past that the picture turns into blocks, which is where deep-zoom programs switch to perturbation methods (Chapter 18).
Newton's method is the oldest trick for solving equations numerically, and the most widely used. To find where a function p(z) is zero, guess a z, draw the tangent line at that point, and slide down it to where the tangent crosses zero. That is your next guess. Near a root, each step roughly doubles the number of correct digits.
The method works perfectly well with complex numbers, and a polynomial of degree d has d complex roots. So here is the obvious question: if you start at some point z₀ and run Newton's method, which root do you end up at? In 1879 Arthur Cayley asked exactly that in a short paper titled "The Newton-Fourier imaginary problem". For a quadratic he had the answer, and it is tidy: the plane splits in half along the perpendicular bisector of the two roots, and each starting point goes to the root on its own side. For a cubic, he wrote, the problem "appears to present considerable difficulty".
It does. Colour each starting point by the root it reaches, for z³ − 1, whose roots are the three cube roots of one, and you get three wedges, as you would hope, but their borders are not lines. Between two wedges sits a chain of beads, and between every pair of beads in that chain sit smaller beads of the third colour, and so on forever. The set of starting points where the colour changes is a fractal, the Julia set of the map N. Fatou and Julia's work in 1917–1919 gave the tools to describe it, and it took computer graphics in the 1980s to make most people see it.
The strangest property is this: every boundary point touches all three basins. Anywhere two colours meet, the third is there too, arbitrarily close. You cannot draw a border between orange and blue without green crowding in, along with more orange and blue, at every scale. This follows from a general theorem about rational maps: the boundary of the basin of any attracting point is the whole Julia set, so all three basins share the same boundary.
For z³ − 1 almost every starting point finds a root eventually; only the boundary itself, which has zero area, gets lost. That is not true for every cubic. Take p(z) = z³ − 2z + 2. Start at 0: one Newton step takes you to 1, and the next takes you back to 0. That two-step loop is attracting, so whole open regions of starting points fall into it and never find any root. In the explorer below they show up as black islands, each one a small Mandelbrot-like shape.
Mathematicians have since answered Cayley's practical worry. John Hubbard, Dierk Schleicher and Scott Sutherland showed in 2001 that for any polynomial of degree d you can write down, in advance, a fixed set of roughly 1.1·d·(log d)² starting points on a few circles that is guaranteed to find every root with Newton's method.
Relaxation. A relaxed Newton step moves only part of the way, or further than the full way: z → z − a·p(z)/p′(z). With a = 1 you have plain Newton and fast, quadratic convergence. With a below 1 each step is shorter, convergence is slower and steadier, and the basin borders soften into broad bands. With a above 1 the method overshoots and convergence slows again. Near a simple root a relaxed step multiplies the error by about 1 − a, so roots attract only while a is between 0 and 2. Push the slider to 2 and nothing converges at all; just below it, everything does, eventually, which is why the picture goes dark long before 2 when the step budget is small.
Double roots. At a root of multiplicity m, ordinary Newton slows from quadratic to linear convergence: each step only removes a fraction 1/m of the error. Setting a = m restores the quadratic speed. Try it with the "Double root" preset: the average step count is high, and setting the relaxation to 2 makes the double root snap in fast. But the simple root then multiplies its error by 1 − 2 = −1 each step and barely attracts at all. One relaxation factor cannot suit roots of different multiplicities.
The sum trick. If p(z) = (z − r₁)(z − r₂)···(z − rd), then p′(z)/p(z) = 1/(z − r₁) + 1/(z − r₂) + … + 1/(z − rd). So a Newton step is z − a / Σ 1/(z − rk), and you never have to expand the polynomial. That is exactly how the explorer works, which is why you can drag the roots anywhere and get an exact Newton fractal for the polynomial they define.
Each coloured dot is a root of the polynomial; each pixel is coloured by the root that Newton's method reaches from there, darker the more steps it took. Drag a root and the basins recolour. Drag empty space to pan, scroll or pinch to zoom, and tap anywhere to trace the Newton path from that point. Black pixels never found a root.
Shares are the fraction of the visible pixels that end up at each root. With the roots of z³ − 1 they come out very close to a third each, as the threefold symmetry demands.
Nova. Take a Newton step and then add c, as the Mandelbrot rule does: z → z − a·p(z)/p′(z) + c. Start every pixel at the same z₀ (z₀ = 1 is the usual choice for p(z) = z³ − 1) and let the pixel pick c. Most c values still converge, though now to points that are no longer roots, and the picture is coloured by how fast they get there. Along the edges of the convergent region sit spirals and, here and there, small Mandelbrot-like islands where the orbit never settles. The type is usually credited to Paul Derbyshire, who popularised it among fractal artists; it is the fifth formula in the explorer above.
Magnets. The magnet fractals come from physics. They are rational maps that arise in renormalization models of magnetism on hierarchical lattices, where an iterated map tracks how interactions look at coarser and coarser scales. The simplest is z → ((z² + c − 1)/(2z + c − 2))². It has a fixed point at z = 1 as well as at infinity, and for many c both attract, so the pictures colour both "escaped" and "settled", and Mandelbrot-like shapes appear in its parameter plane. Peitgen and Richter gave them a chapter in The Beauty of Fractals (1986).
Lambda. The map z → λz(1 − z) is the logistic map of Chapter 11 with a complex parameter. It is not new: a change of variable turns it into z² + c with c = λ/2 − λ²/4. Because that formula gives the same c for λ and for 2 − λ, the lambda parameter plane shows the Mandelbrot set twice, back to back, mirrored about λ = 1. It is the bridge between this chapter and the next: the real line through the middle of that picture is the bifurcation diagram.
Put the rules side by side and the pictures stop looking arbitrary. Three properties of the rule explain most of what you see.
JellyDazzle, the audio-reactive kaleidoscope app this site grew out of, runs several of these rules as live modes, among them a Burning Ship dive, Newton basins, Phoenix and Tricorn; Chapter 18 covers how it draws them.
| Rule | Formula | Angles preserved? | Symmetry | Signature look |
|---|---|---|---|---|
| Mandelbrot | z² + c | Yes | Mirror | Cardioid, round bulbs |
| Multibrot | zd + c | Yes | Mirror, (d − 1)-fold | Body with d − 1 cusps |
| Tricorn | z̄² + c | Yes, but mirrored | Mirror, 3-fold | Three-cornered hat, wiggly arcs |
| Burning Ship | (|x| + i|y|)² + c | No | None | Straight edges, ships in flames |
| Phoenix | z² + c + p·zn−1 | Yes, in two variables | Mirror | Feathered wings |
| Newton | z − p/p′ | Yes | That of the roots | Bead chains where basins meet |