The chaos game is a simple mathematical technique for creating fractals. Suppose a point jumps over and over again 1/2 of the distance towards a randomly chosen vertex of a triangle. This shape appears, the so-called Sierpiński triangle:

Sierpiński triangle created by the chaos game

But the jumps don’t have to be random: you can use an array to find every possible combination of jumps and so create a more even image. I call this controlled chaos. However, if you try the chaos game (controlled or otherwise) with a square, no fractal appears unless you restrict the vertex chosen in some way. For example, if the point can’t jump towards the same vertex twice or more in a row, this fractal appears:

Ban on jumping towards previously chosen vertex, i.e. *v* + 0

And if the point can’t jump towards the vertex one place clockwise of the previously chosen vertex, this fractal appears:

Ban on *v* + 1

If the point can’t jump towards the vertex two places clockwise of the previously chosen vertex, this fractal appears:

Ban on *v* + 2

If the point can’t jump towards the vertex three places clockwise, or one place anticlockwise, of the previously chosen vertex, this fractal appears (compare *v* + 1 above):

Ban on *v* + 3

You can also ban vertices based on how close the point is to them at any given moment. Suppose that the point can’t jump towards the nearest vertex, which means that it must choose to jump towards either the 2nd-nearest, 3rd-nearest or 4th-nearest vertex. A fractal we’ve already seen appears:

Must jump towards vertex at distance 2, 3 or 4

In effect, not jumping towards the nearest vertex means not jumping towards a vertex twice or more in a row. Another familiar fractal appears if the point can’t jump towards the most distant vertex:

*d* = 1,2,3

But new fractals also appear when the jumps are determined by distance:

*d* = 1,2,4

*d* = 1,3,4

And you can add more targets for the jumping point midway between the vertices of the square:

*d* = 1,2,8

*d* = 1,4,6

*d* = 1,6,8

*d* = 1,7,8

*d* = 2,3,6

*d* = 2,3,8

*d* = 2,4,8

*d* = 2,5,6

And what if you choose the next vertex by incrementing the previously chosen vertex? Suppose the initial vertex is 1 and the possible increments are 1, 2 and 2. This new fractal appears:

increment = 1,2,2 (for example, 1 + 1 = 2, 2 + 2 = 4, 4 + 2 = 6, and 6 is adjusted thus: 6 – 4 = 2)

And with this set of increments, it’s *déjà vu* all over again:

*i* = 2,2,3

And again:

*i* = 2,3,2

With more possible increments, familiar fractals appear in unfamiliar ways:

*i* = 1,3,2,3

*i* = 1,3,3,2

*i* = 1,4,3,3

*i* = 2,1,2,2

*i* = 2,1,3,4

*i* = 2,2,3,4

*i* = 3,1,1,2

Now try increments with midpoints on the sides:

*v* = 4 + midpoints, *i* = 1,2,4

As we saw above, this incremental fractal can also be created from a square with four vertices and no midpoints:

*i* = 1,3,3; initial vertex = 1

But the fractal changes when the initial vertex is set to 2, i.e. to one of the midpoints:

*i* = 1,3,3; initial vertex = 2

And here are more inc-fractals with midpoints:

*i* = 1,4,2 (cf. inc-fractal 1,2,4 above)

*i* = 1,4,8

*i* = 2,6,3

*i* = 3,2,6

*i* = 4,7,8

*i* = 1,2,3,5

*i* = 1,4,5,4

*i* = 6,2,4,1

*i* = 7,6,2,2

*i* = 7,8,2,4

*i* = 7,8,4,2