Fractal Explorer (Mandelbrot & Julia)

Zoom into the Mandelbrot and Julia sets. Every pixel runs z → z² + c until |z| passes 2 or the iteration limit (50 to 1,000) is reached, with smooth colouring, four palettes, click and wheel zoom, panning and PNG export.

Tool Numbers & Math Updated Oct 3, 2026
How to Use
  1. Pick a Set: Mandelbrot (each pixel is a value of c, starting from z = 0) or Julia (one fixed c, each pixel a starting z).
  2. For Julia, type c as its real and imaginary parts. The default is −0.8 + 0.156i; also try −0.4 + 0.6i or 0.285 + 0.01i.
  3. Click a point to centre it and zoom in 2×; shift-click or right-click zooms out 2×. The wheel zooms toward the cursor, and dragging pans.
  4. Raise Iterations (50 to 1,000, default 150) as you zoom, so slow-escaping points near the edge are not drawn black by mistake.
  5. Pick a Colour scheme, read the centre and zoom under the controls, then Save PNG or Reset view.
Controls
Fractal

Click to zoom in, shift-click or right-click to zoom out, drag to pan, wheel to zoom. Show Work follows the point you last clicked.

Zoom
—
Centre
—
Iterations
—
Point escapes at
—

Worked Example

c = 1 escapes; c = −2 does not. For c = 1, z runs 0 → 1 → 2 → 5. After two steps |z|² is exactly 4, which is not more than 4, so the loop carries on; the third step gives |z|² = 25 and the pixel escapes with a count of 3 (smooth value 2.785). For c = −2, z runs 0 → −2 → 2 → 2 → 2 … and sits on |z| = 2 for ever, so the pixel stays black. −2 is the leftmost point of the set, at the left edge of the default view, which spans −2 to 1 across the canvas.

The default Julia set. With c = −0.8 + 0.156i, the orbit of 0 takes 252 steps to escape, so c lies just outside the Mandelbrot set and its Julia set is, strictly, a disconnected dust. At the default 150 iterations the middle of the view (z = 0) is still black; move the slider to 260 or more and it is coloured.

The common mistake: black means inside. c = −0.75 + 0.01i sits in the narrow neck between the two largest bulbs. At 150 iterations it is drawn black, as if it belonged to the set, but it escapes after 315 steps and is outside. Black only means “did not escape within the limit”. Set Iterations to 320 or more and it is coloured.

Show Work

Click a point on the fractal to see its orbit z → z² + c step by step, up to the step where |z| passes 2.

Formulas

Iteration
zn+1 = zn² + c, z² = (x² − y²) + 2xy·i
Escape test
stop when |z|² = x² + y² > 4
Mandelbrot and Julia
Mandelbrot: z₀ = 0, c = pixel; Julia: z₀ = pixel, c fixed
Smooth count
μ = i + 1 − log₂(log₂|z|)
Pixel to complex
c = centre + (px − w/2)·s − (py − h/2)·s·i
Zoom
span = 3.0 ÷ 2ⁿ after n clicks; zoom = 2ⁿ

Julia, Fatou and Mandelbrot

Gaston Julia and Pierre Fatou studied the iteration of rational functions in 1917–1919, long before anyone could draw the results; Julia’s 1918 memoir won the Grand Prix of the French Academy of Sciences. They proved that the set now named after Julia is connected when the orbit of 0 stays bounded and a dust of separate points when it escapes.

Benoit Mandelbrot, who coined the word “fractal” in 1975, published computer pictures of the set in 1980 while working at IBM. Adrien Douady and John Hubbard proved in 1982 that it is connected and named it after him, and Mitsuhiro Shishikura proved in 1998 that its boundary has Hausdorff dimension 2. In 1991 Dave Boll noticed that the escape counts along −0.75 + εi, multiplied by ε, approach π: 33, 315 and 3,143 for ε = 0.1, 0.01 and 0.001.

About This Tool

This explorer renders the Mandelbrot set or a Julia set of your choice pixel by pixel, at up to 700 pixels across and up to 1,000 iterations, with smooth colouring in four palettes. You can zoom by clicking or with the wheel, pan by dragging, read the centre and zoom level as you go, and save the view as a PNG. The Mandelbrot and Julia modes in the Chaos Theory Lab show fixed overviews; this is the tool for zooming in.

Everything runs in your browser; nothing is uploaded, and Save PNG writes the file straight from the canvas.

Related tools: Chaos Theory Lab, Complex Numbers Calculator, and Fourier Epicycle Drawer.

Frequently Asked Questions

What is the Mandelbrot set?

The values of c for which z → z² + c, started at z = 0, stays bounded. For c = −1 the sequence is 0, −1, 0, −1 … and never grows, so −1 is in the set (black). For c = 1 it runs 0, 1, 2, 5, 26 …, so 1 is outside. Once |z| is more than 2 the sequence is certain to escape, which is why the tool stops as soon as |z|² > 4 and colours the pixel by how many steps that took.

How is a Julia set different?

It uses the same rule but fixes c and lets each pixel be the starting z. Fatou and Julia showed that the Julia set is connected exactly when the orbit of 0 stays bounded, that is, when c is in the Mandelbrot set. The default c = −0.8 + 0.156i is just outside: starting from 0 it escapes after 252 steps, so strictly its Julia set is a disconnected dust. At 150 iterations the point z = 0, in the middle of the view, is still black; from 260 it is coloured.

How many iterations do I need?

More the closer you are to the boundary. Along c = −0.75 + εi, near the neck between the two largest bulbs, c = −0.75 + 0.1i escapes after 33 steps, −0.75 + 0.01i after 315 and −0.75 + 0.001i after 3,143. At the default 150 the second point is drawn black, as if it were inside; it needs at least 320 on the slider, and the third is beyond the 1,000 maximum.

Why does the picture turn blocky when I zoom very deep?

JavaScript numbers are 64-bit doubles with about 16 significant digits. The view starts 3.0 wide and each click halves it; the render is at most 700 pixels wide. After about 44 clicks (zoom around 2 × 10¹³) neighbouring pixels near |c| ≈ 1 differ by less than the smallest step a double can take, so several pixels get the same value and the image breaks into blocks. Going further needs arbitrary-precision arithmetic.

What does smooth colouring do?

The raw escape count is a whole number, which gives visible bands. The tool uses μ = i + 1 − log₂(log₂|z|) instead. For c = 1 the escape is at step 3 with |z| = 5, so μ = 4 − log₂(log₂ 5) = 4 − log₂(2.322) = 2.785, and neighbouring pixels blend instead of jumping from 3 to 4.

How do I use the Fractal Explorer (Mandelbrot & Julia)?

Simply type your numbers and read the result, which refreshes the instant you change something. There is nothing to submit and nothing to wait for.

Does it cost anything or need an account?

No. The tool is completely free, there is no account to create, and it keeps working offline after the page first loads.

Is anything I type uploaded?

No. The tool works entirely on your device, so the values you enter never leave your browser.

Common Use Cases

Teaching complex iteration

Follow c = 1 through 0, 1, 2, 5 and see why it escapes at step 3.

π in the Mandelbrot set

At −0.75 + εi the escape count times ε tends to π: 3.3, 3.15, 3.143.

Julia sets

Compare c = −0.8 + 0.156i, −0.4 + 0.6i and 0.285 + 0.01i side by side.

Wallpapers and prints

Frame a view, pick one of 4 colour schemes and save a PNG up to 700 px wide.

Recording coordinates

Note the centre to 6 decimal places and the zoom from the status line.

Last updated: