The blancmange curve is an interesting fractal formed by summing a series of zigzags. It

takes its name from its resemblance to the milk-pudding known as a blancmange

(*blanc-manger* in French, meaning “white eating”):

Blancmange curve

In successive zigzags, the number of zags doubles as their height halves, i.e. z(i) = z(i-1) * 2, h(i) = h(i-1) / 2. If all the zigzags are represented at once, the construction looks like this:

Zigzags 1 to 10

Zigzags 1 to 10 (animated)

Here is a step-by-step construction, with the total sum of zigzags in white, the present zigzag in red and the previous zigzag in green:

Blancmange curve: Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Stage 7

Stage 8

Stage 9

Stage 10

Blancmange curve (animated)

It’s easy to think of variants on the standard blancmange curve. Suppose the number of

zags triples as their height is divided by three, i.e. z(i) = z(i-1) * 3, h(i) = h(i-1) /

3:

Blancmange curve for z(i) = z(i-1) * 3, h(i) = h(i-1) / 3

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Blancmange z(i) = z(i-1) * 3 (animated)

All zigzags

All zigzags (animated)

Here is a blancmange curve for z(i) = z(i-1) * 4:

Blancmange curve for z(i) = z(i-1) * 4

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Blancmange curve z(i) = z(i-1) * 4 (animated)

And a blancmange curve for z(i) = z(i-1) * 5:

Blancmange curve for z(i) = z(i-1) * 5

Blancmange curve z(i) = z(i-1) * 5 (animated)

Now trying incrementing the number of zags rather than multiplying them. This is z(i) =

z(i-1) + 1, h(i) = h(1) / z(i):

Blancmange curve for z(i) = z(i-1) + 1, h(i) = h(1) / z(i)

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Blancmange curve z(i) = z(i-1) + 1 (animated)

(Note that these curves should be mirror-symmetrical, but my programming and

graphics software weren’t good enough to achieve this.)

And here are blancmange curves summing a series of humps rather than zigzags:

Blancmange curve using humps

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Stage 7

Blancmange curve with humps (animated)

Blancmange curve for z(i) = z(i-1) * 3 using humps

z(i) = z(i-1) * 3 using humps (animated)

z(i) = z(i-1) + 1, h(i) = h(1) / z(i) using humps

z(i) = z(i-1) + 1 using humps (animated)

And blancmange curves summing a series of sine waves rather than zigzags:

Blancmange curve using sine waves

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Stage 7

Stage 8

Stage 9

Blancmange curve using sine waves (animated)

z(i) = z(i-1) * 3 using sine waves

z(i) = z(i-1) * 3 using sine waves (animated)

z(i) = z(i-1) + 1, h(i) = h(1) / z(i) using sine waves

z(i) = z(i-1) + 1 using sine waves (animated)

z(i) = z(i-1) + 2, h(i) = h(1) / z(i) using sine waves

z(i) = z(i-1) + 2 using sine waves (animated)

z(i) = z(i-1) + 3, h(i) = h(1) / z(i) using sine waves

z(i) = z(i-1) + 3 using sine waves (animated)

z(i) = z(i-1) + 3 using sine waves (all waves)

z(i) = z(i-1) + 4, h(i) = h(1) / z(i) using sine waves

z(i) = z(i-1) + 4 using sine waves (all waves)