Fractals & coloring

Julia Sets, Interactively: A Live Generator

Change one complex number and an entire world changes shape. Explore Julia sets live, from connected dendrites to drifting islands, and see how every one is tied to the Mandelbrot set.

By · 6 min read · Updated 2026-07-23

Interactive Julia set for c = -0.4 + 0.6i, rendered with smooth escape-time coloring in the browser.

A Julia set begins with a rule small enough to fit on one line:

z → z² + c

Pick a starting point z, apply the rule, feed the answer back in, and keep going. If the orbit stays bounded, the starting point belongs to the filled Julia set. If it races away toward infinity, it does not. The infinitely thin, infinitely detailed frontier between those two outcomes is the Julia set.

The surprise is that c — one fixed complex number — controls the character of the entire picture. Nudge it and a connected web can pull apart into islands. Move it again and the islands dissolve into dust. This page is a live Julia set explorer: every example opens the exact state shown, so you can zoom into the boundary and change the seed yourself.

◆ Open in StudioExplore the Julia set c = -0.4 + 0.6iDrag to pan, scroll to zoom, then open Effects to change the Julia seed or gradient.

How a Julia set generator draws the picture

A complex number has two parts. You can picture it as a point on an ordinary plane: the real part runs left to right and the imaginary part runs down to up. The seed c = -0.4 + 0.6i, for example, is the point (-0.4, 0.6).

To render a Julia fractal, the generator gives every pixel a complex starting value and repeats the same calculation:

  1. Start with the pixel's coordinate as z.
  2. Square z, then add the fixed seed c.
  3. Repeat until the orbit either escapes or reaches the iteration limit.
  4. Color escaping points by how quickly they escaped.

The dark regions in the demo are starting values that remained bounded. The colored bands record escape time. Smooth coloring removes the harsh stripes that raw integer iteration counts produce, turning the math into a continuous surface without changing the underlying set.

Zoom into the edge and the calculation repeats at a smaller scale. New spirals, filaments, and satellite shapes keep appearing because the boundary is fractal: it has detail at every magnification. No source image is being enlarged. The browser calculates the view again for the pixels currently on screen.

The seed c is the design control

Most image tools begin with a picture and apply effects to it. A Julia set generator begins with c. Its real and imaginary parts are closer to design coordinates than abstract math once you start moving them:

  • Seeds well inside stable regions tend to produce connected shapes with clear interior basins.
  • Seeds near a boundary produce delicate dendrites and long filaments.
  • Seeds outside the connected region break the picture into separate islands, then into increasingly fine dust.

There is no short visual rule that predicts every shape. That is what makes exploration rewarding: tiny seed changes can preserve the broad structure while completely reorganizing its fine detail.

Try this narrow, filament-rich example:

◆ Open in StudioOpen the dendrite Julia set c = -0.8 + 0.156iA connected, filament-rich Julia set near the edge of the Mandelbrot set.

Now compare it with one of the best-known quadratic Julia sets, the Douady rabbit. Its three-lobed structure comes from a repeating cycle in the orbit, not from three shapes being stamped onto the canvas:

◆ Open in StudioOpen the Douady rabbit Julia setThe famous rabbit-like connected set at approximately c = -0.123 + 0.745i.

These are not separate formulas or hand-built presets. They are three values of the same input to the same rule.

Mandelbrot and Julia sets are one connected story

The Mandelbrot set and Julia sets use the same quadratic iteration, but they ask different questions.

For the parameter-plane side of that relationship, see The Mandelbrot Set, Explained Visually.

  • A Julia set fixes c and tests many starting values of z.
  • The Mandelbrot set starts z at zero and tests many possible values of c.

That makes the Mandelbrot set a map of the Julia family. Choose a point c inside the Mandelbrot set and its Julia set is connected. Choose c outside and its Julia set is disconnected. Points near the Mandelbrot boundary produce some of the most elaborate connected Julia sets because they sit at the edge between stable and escaping behavior.

Every point of the Mandelbrot set is the seed of a different Julia set.
The Mandelbrot set and three Julia sets: classic c = -0.4 + 0.6i, a dendrite, and the Douady rabbit.

The relationship is exact, not just a resemblance. Each point in the Mandelbrot parameter plane addresses one Julia set in its own dynamical plane. The familiar Mandelbrot silhouette is therefore a catalog containing infinitely many different Julia worlds.

Connected sets, islands, and Cantor dust

“Connected” has a precise meaning here: the filled Julia set is all one piece. It may have hair-thin bridges and wildly folded edges, but there is a continuous path through the set.

As c moves outside the Mandelbrot set, those connections snap. At first the result may look like several large islands with smaller copies orbiting them. Farther out, every apparent island breaks into more islands at the next zoom level. The limiting object is Cantor dust: endlessly many disconnected points arranged with fractal structure.

The transition can look abrupt even when the seed moves smoothly. That sensitivity is part of the system, not a rendering glitch. The seed changes the fate of entire families of orbits at once.

Julia set versus filled Julia set

The terms are often used interchangeably in galleries, but they describe two related objects:

  • The filled Julia set contains every starting point whose orbit does not escape.
  • The Julia set is the boundary of that filled region.

For a connected seed, the filled set includes the dark interior lakes or lobes visible in the demos. The mathematical Julia set is their fantastically detailed shoreline. For a dust-like seed, there is effectively no broad interior left; the filled set and its boundary become visually indistinguishable.

Coloring the interior does not change either set. It only changes how the bounded region is presented. In the Studio, the Interior color controls that presentation while the formula, seed, camera, and iteration remain independent.

How to explore without getting lost

A productive Julia set session is less about hunting for a famous coordinate and more about making controlled changes:

  1. Open the classic state near the top of this page.
  2. In Effects, keep the Source set to Julia and change Seed re or Seed im in small steps.
  3. Zoom into an edge before changing the seed again. Fine structure makes the difference easier to read.
  4. Change the gradient only after finding a shape you like. Formula and color are separate controls.
  5. Add a loop track to a seed value for a seamless morph, or animate the gradient while holding the geometry still.

If the set disappears, zoom back out before assuming the seed is uninteresting. Some parameters spread the bounded pieces across a much larger area; others compress them near the origin.

From mathematical set to fractal art

The formula determines the boundary, but it does not determine the final image. Escape-time coloring, gradients, orbit traps, distance estimation, transforms, and finish passes can all interpret the same orbit data differently.

That separation matters. A Julia fractal can be studied as a mathematical object and used as raw material for generative art without confusing the two. The seed defines the dynamical system. The palette and effects define how you show it.

For a flatter, print-like finish, see how ordered dithering turns continuous color into a controlled dot pattern. For a different kind of non-repeating structure, compare the iteration here with the substitution system behind Penrose tilings.

Every demo on this page runs locally in the browser. Open one, change c, and save the URL when you find a world worth returning to. The seed, view, coloring, and effects travel with the share link.

Frequently asked

What is a Julia set in simple terms?

A Julia set is the boundary between starting points that remain bounded and starting points that escape when the same rule, usually z → z² + c, is repeated. Changing the fixed seed c creates a different Julia set.

What is the difference between the Mandelbrot set and a Julia set?

A Julia set fixes c and tests many starting values of z. The Mandelbrot set starts z at zero and tests many values of c. A point's location in the Mandelbrot set predicts whether the Julia set made from that c is connected or broken into dust.

Why do some Julia sets look connected while others look like dust?

For the quadratic formula z² + c, the Julia set is connected when c lies in the Mandelbrot set. When c lies outside it, the Julia set is disconnected and eventually becomes Cantor dust.

Can I use this Julia set generator online for free?

Yes. Every Open in Studio link on this page launches a free browser-based Julia set explorer. You can change the seed, pan, zoom, edit the gradient, animate parameters, and export without an account.

What is a filled Julia set?

The filled Julia set includes every starting point whose orbit stays bounded, including the interior regions. The Julia set itself is the boundary of that filled region.