Skip to main content
BVDART Logo

Three studies in iteration and color

⚙ Tutorial• 2 min read
Explore the Mandelbrot set, Julia sets and color-space coordinates through interactive examples with linked explanations.

A small change to a rule can transform an image. These three studies connect controls to visible results: two explore repeated calculations, and the third compares ways of describing color.

Which values escape?

For the Mandelbrot set, each point supplies a different constant c to z → z² + c, starting at z = 0. Select a point to follow its orbit. Increasing the iteration limit tests it for longer; a point that has not escaped within that limit is not yet proven to stay bounded forever.

Follow one point through the calculation

Each pixel asks: does this c escape?Re: -2.200 → 1.000 · Im: 1.200 → -1.200
Follow the selected orbitz₀ = 0
zₙ₊₁ = zₙ² + c
Complex orbit from zero with escape circle|z| = 2ReIm|z| = 0.338

Escapes at step 33

Crossing the radius-2 circle proves escape. A finite run that stays inside does not prove membership.

Try this Set c = 0: every iterate stays at zero. Try c = −1 for a two-point cycle, then c = 0.5 for an escaping orbit.

Magnify the boundary around the zoom focus: every displayed pixel is recomputed in the smaller complex-plane region. Use any control to take over.

The image varies c from pixel to pixel. The orbit diagram follows the selected c from the same starting value, z = 0.

Try it yourself
  1. Move c with the plane or the Re(c) and Im(c) controls.
  2. Scrub Orbit step n; compare c = 0, c = −1 and c = 0.5 with Im(c) = 0.

Watch: Each image pixel chooses c while z starts at zero. The orbit panel shows repeated squaring and addition; crossing radius 2 establishes escape. A finite unescaped sample remains inconclusive.

Full guide Open in the Lab

Keep the rule, change the starting point

A Julia set asks a different question of the same formula. Here c stays fixed across the image and each pixel supplies a different starting value z. Change c to reshape the whole set, then select a point to inspect its orbit.

One constant shapes every orbit

Each pixel starts a different orbitThe same c is used everywhere
One constant for the whole image
The selected starting point
First 16 steps of the selected Julia orbit|z| = 2ReIm|z| = 0.221
z₀ = 0.250 + (0.150)i
c = -0.800 + (0.156)i
zₙ₊₁ = zₙ² + c

This starting point escapes after 72 steps.

Moving the crosshair tests one starting point. Moving c changes the recurrence at every pixel. Dark areas are unescaped samples in this finite test.

Try this Choose c = 0. The filled Julia set is the unit disk: starting magnitudes below 1 shrink, and those above 1 grow. Move the crosshair to compare both.

Move c continuously from its current value through connected and disconnected Julia structures, then return. Use any control to take over.

Compare c = 0 with the other presets. Dark pixels have not escaped within the selected iteration limit.

Try it yourself
  1. Choose c in the small parameter plane or use its real and imaginary controls.
  2. Set c = 0 and move the crosshair inside and outside the unit disk.

Watch: The main image varies z₀ while every pixel uses the same c. Changing c reshapes the whole field; moving the main crosshair only selects an orbit to inspect.

Full guide Open in the Lab

One color, different coordinates

sRGB, CIELAB and OKLCH describe color with different coordinates. Change a color to see its position in each view, then compare the interpolation paths between two endpoints. This study displays its results in sRGB, mapping coordinates outside that gamut to displayable colors.

Trace the route between two colors

sRGB: red–green slice at the selected blue channelR →G
sRGB · B = 57
CIELAB: opponent-color coordinatesa* →b*
CIELAB · L* = 48.1 · D65
OKLCH: hue angle and chroma radiusCh 34°
OKLCH · L 0.568 · C 0.146
sRGB
#7b677c
CIELAB
#97697b
OKLCH
#9c5aa7

One color, three coordinate systems. The slices track A; the ramps connect A to B. Lab slices can include colors outside sRGB and are clipped for display. This Lab uses D65; CSS lab() uses D50.

Color A moves through three coordinate systems, then a probe compares the paths from A to B. Use any control to take over.

The coordinate views track color A; the three ramps connect A to B. This study uses D65 for its CIELAB calculations.

Try it yourself
  1. Change Color A and locate its marker in the sRGB slice, Lab slice and OKLCH wheel.
  2. Choose Color B, then move Position between A and B to compare the three interpolated samples.

Watch: The selected color has different coordinates in each space. The endpoints match across ramps, while their interior colors follow different paths.

Full guide Open in the Lab

Use any control to take over an example, or pause it with the playback button. Each study links to a fuller explanation and the Lab for further experimentation.

Explore Related Sections

More about the work: