Julia Set Explorer
A Julia set runs the very same loop as the
Mandelbrot set —
z → z² + c — but flips which knob you turn: instead
of starting at zero and sweeping c, you fix one
c and sweep the starting point z over the whole
plane. Every point of the Mandelbrot set is the recipe for a different
Julia set. Drag the dot across the mini Mandelbrot map below
and watch this fractal morph.
On the Julia view: scroll to zoom · drag to pan · double-click to zoom in · single-click to inspect a point's orbit.
Inside the black body → a connected Julia set. Outside → it shatters into dust. The boundary is where the most intricate shapes live.
—
The dots trace this point's orbit under
z → z² + c for the current c — bounded for a
member of the filled set, spiralling out for an escapee.
What a Julia set is
Fix a complex constant c. For every starting point
z0 on the plane, run zn+1 =
zn² + c. Some starting points stay trapped near the
origin forever; others escape to infinity. The filled Julia
set is the trapped ones (painted black here); its frizzy outline
— the boundary between "stays" and "escapes" — is the Julia
set proper. Change c and you get a completely different
shape, which is why this tool is really an infinite family of fractals
behind one slider.
Julia and Mandelbrot are the same equation
The only difference between this page and the Mandelbrot explorer is which value moves. Mandelbrot fixes the start at z = 0 and varies the parameter c; Julia fixes c and varies the start z. That makes the Mandelbrot set a map of all Julia sets at once: its location tells you, at a glance, what the matching Julia set looks like — which is exactly what the mini-map above is for.
Connected, or dust?
There is a clean either/or, the Fatou–Julia dichotomy:
- If c is inside the Mandelbrot set, the Julia set is connected — one unbroken piece (a rabbit, a basilica, a spiral).
- If c is outside, the Julia set is a totally disconnected dust (a Cantor set) — infinitely many specks, none touching.
Right on the Mandelbrot boundary you get the wildest, most delicate forms — dendrites and near-dust filaments. The read-out above tells you which side of the line your current c sits on.
The escape rule and smooth colouring
Same escape-time trick as before: once |z| passes 2 the orbit
is doomed to blow up, so we stop and record the step count. To avoid ugly
colour bands we use the fractional normalised count
μ = n + 1 − log2(log|z|), fed through a
cosine palette. Push the max iterations slider up to sharpen thin
filaments at deep zoom.
A few famous c values
- Douady rabbit (c = −0.123 + 0.745i) — a connected set of round lobes budding off each other like a rabbit's head and ears.
- San Marco (c = −0.75) — endless arches reflected in water, named for the basilica in Venice.
- Dendrite (c = i) — no interior at all; a branching, tree-like filament sitting right on the boundary.
- Siegel disk (c = −0.391 − 0.587i) — built around a region where the orbit rotates forever without settling.
How this page is built
The math lives in logic.py — the escape iteration, the
|z| > 2 bailout, the smooth-μ formula, and the
connectivity test (run the Mandelbrot iteration on c and see if it
stays bounded). The picture is drawn in JavaScript on a canvas for speed,
but the same Python backs the point inspector, so the orbit and
escape count under your cursor come straight from the source of truth.