# Square Routes Re-Verticed

Start with a point in the middle of a square. Allow it to make a series of, say, eight jumps towards the vertices of the square, but with one restriction: it can’t jump towards the same vertex twice in a row. When the point has made the eight jumps, mark its position. If you do this for every possible route, the result will look like this:

And here’s a different restriction: the point can’t jump towards the vertex immediately to the left of the vertex it has just jumped towards:

And here it can’t jump towards the vertex diagonally opposite the vertex it has just jumped towards:

Now allow the point to jump not just towards the vertices, but towards points midway between the vertices. And expand and reverse the restrictions: instead of not allowing a jump towards v + i1, v + i2…, only allow a jump towards v + i1, v + i2… Some interesting shapes appear:

Jump must be towards v, v + 1 or v + 2 (one point between vertices)

v, v + 1 or v + 6

v, v + 2 or v + 3

v, v + 2 or v + 4

v, v + 2 or v + 6

v, v + 3 or v + 4

v, v + 3 or v + 5

v, v + 2 or v + 7

v + 1, v + 4 or v + 7

v, v + 1 or v + 6 (two points between vertices)

v, v + 2 or v + 4

v, v + 2 or v + 6

v, v + 2 or v + 9

v, v + 3 or v + 6

v, v + 3 or v + 8

v, v + 4 or v + 8

v, v + 5 or v + 7

v , v + 6 or v + 11

v + 1, v + 5 or v + 6

v + 1, v + 2 or v + 10

v + 1, v + 6 or v + 10

v + 1, v + 6 or v + 11

v + 2, v + 6 or v + 10

Elsewhere other-posted:

# Square Routes Re-Re-Revisited

This is an L-triomino, or shape created from three squares laid edge-to-edge:

When you divide each square like this…

You can create a fractal like this…

Stage #1

Stage #2

Stage #3

Stage #4

Stage #5

Stage #6

Stage #7

Stage #8

Stage #9

Stage #10

Animated fractal

Here are more fractals created from the triomino:

Animated

Static

Animated

Static

Animated

Static

And here is a different shape created from three squares:

And some fractals created from it:

Animated

Static

Animated

Static

Animated

Static

And a third shape created from three squares:

And some fractals created from it:

Animated

Static

Animated

Static

Animated

Static

Animated

Static

Animated

Static

Animated

Static

Animated

Static

Animated

Static

# Holey Trimmetry

Symmetry arising from symmetry isn’t surprising. But what about symmetry arising from asymmetry? You can find both among the rep-tiles, which are geometrical shapes that can be completely replaced by smaller copies of themselves. A square is a symmetrical rep-tile. It can be replaced by nine smaller copies of itself:

Rep-9 Square

If you trim the copies so that only five are left, you have a symmetrical seed for a symmetrical fractal:

Fractal cross stage #1

Fractal cross #2

Fractal cross #3

Fractal cross #4

Fractal cross #5

Fractal cross #6

Fractal cross (animated)

Fractal cross (static)

If you trim the copies so that six are left, you have another symmetrical seed for a symmetrical fractal:

Fractal Hex-Ring #1

Fractal Hex-Ring #2

Fractal Hex-Ring #3

Fractal Hex-Ring #4

Fractal Hex-Ring #5

Fractal Hex-Ring #6

Fractal Hex-Ring (animated)

Fractal Hex-Ring (static)

Now here’s an asymmetrical rep-tile, a nonomino or shape created from nine squares joined edge-to-edge:

Nonomino

It can be divided into twelve smaller copies of itself, like this:

Rep-12 Nonomino (discovered by Erich Friedman)

If you trim the copies so that only five are left, you have an asymmetrical seed for a familiar symmetrical fractal:

Fractal cross stage #1

Fractal cross #2

Fractal cross #3

Fractal cross #4

Fractal cross #5

Fractal cross #6

Fractal cross (animated)

Fractal cross (static)

If you trim the copies so that six are left, you have an asymmetrical seed for another familiar symmetrical fractal:

Fractal Hex-Ring #1

Fractal Hex-Ring #2

Fractal Hex-Ring #3

Fractal Hex-Ring #4

Fractal Hex-Ring #5

Fractal Hex-Ring (animated)

Fractal Hex-Ring (static)

Elsewhere other-available:

# Square Routes Re-Revisited

This is a very simple fractal:

It has four orientations:

Any orientation can be turned into any other by a rotation of 90°, 180° or 270°, either clockwise or anticlockwise. If you mix orientations and rotations, you can create much more complex fractals. Here’s a selection of them:

Animated fractal

Static fractal

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Animated fractal

Static

Elsewhere other-posted:

# Living Culler

When you replace a square with four smaller squares, each a quarter the size of the original, the smaller squares occupy the same area, because 4 * ¼ = 1. If you discard one sub-square, then divide each of the three remaining sub-squares into four sub-sub-square, discard one sub-sub-quare and repeat, you create fractals like those I looked at in Squaring and Paring. The fractals stay within a fixed boundary.

# ⇓

Square replaced with four smaller squares, each ¼th the size of the original

Animated fractal

Static fractal

This time I want to look at a slightly different process. Replace a square with nine smaller squares each a quarter the size of the original. Now the sub-squares occupy a larger area than the original, because 9 * ¼ = 2¼. If you discard — or cull — sub-squares and repeat, the resultant fractal grows beyond the original boundary. Indeed, sub-squares start to overlap, so you can use colours to represent how often a particular pixel has been covered with a square. Here is an example of this process in action:

# ⇓

Square replaced with nine smaller squares, each ¼th the size of the original

Animated fractal

Static fractal #1

Static fractal #2

Here are the individual stages of a more complex fractal that uses the second process:

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Stage 7

Stage 8

Stage 9 (compare Fingering the Frigit and Performativizing the Polygonic)

Stage 10

Animated version

Static version #1

Static version #2

And here are some more of the fractals you can create in a similar way:

Static version #1

Static version #2

Static version #2

Static version #2

Static version #3

Various fractals in an animated gif

# Squaring and Paring

Squares are often thought to be the most boring of all shapes. Yet every square holds a stunning secret – something that in legend prompted a mathematical cult to murder a traitor. If each side of a square is one unit long, how long is the square’s diagonal, that is, the line from one corner to the opposite corner?

By Pythagoras’ theorem, the answer is this:

• x^2 = 1^2 + 1^2
• x^2 = 2
• x = √2

But what is √2? Pythagoras and his followers thought that all numbers could be represented as either whole numbers or ratios of whole numbers. To their dismay, so it’s said, they discovered that they were wrong. √2 is an irrational number – it can’t be represented as a ratio. In modern notation, it’s an infinitely decimal that never repeats:

• √2 = 1·414213562373095048801688724209698…

A modern story, unattested in ancient records, says that the irrationality of √2 was a closely guarded secret in the Pythagorean cult. When Hippasus of Metapontum betrayed the secret, he was drowned at sea by enraged fellow cultists. Apocryphal or not, the story shows that squares aren’t so boring after all.

Nor are they boring when they’re caught in the fract. Divide one square into nine smaller copies of itself:

Discard three of the copies like this:

Stage 1
Retain squares 1, 2, 4, 6, 8, 9 (reading left-to-right, bottom-to-top)

Then do the same to each of the sub-squares:

Stage 1

And repeat:

Stage 3

Stage 4

Stage 5

Stage 6

The result is a fractal of endlessly subdividing contingent hexagons:

Animated vesion

Retain squares 1, 2, 4, 6, 8, 9 (reading left-to-right, bottom-to-top)

Here are a few more of the fractals you can create by squaring and paring:

Retain squares 1, 3, 5, 7, 9 (reading left-to-right, bottom-to-top)

Retain squares 2, 4, 5, 6, 8

Retain squares 1, 2, 4, 5, 6, 8, 9

Retain squares 1, 4, 6, 7, 10, 11, 13, 16

Retain squares 1, 3, 6, 7, 8, 9, 10, 11, 14, 16

Retain squares 2, 3, 5, 6, 8, 9, 11, 12, 14, 15

Retain squares 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25

Retain squares 1, 3, 7, 8, 11, 12, 14, 15, 18, 19, 23, 25

Retain squares 1, 5, 7, 8, 9, 12, 14, 17, 18, 19, 21, 25

Retain squares 2, 3, 4, 6, 7, 9, 10, 11, 15, 16, 17, 19, 20, 22, 23, 24

Retain squares 1, 2, 5, 6, 7, 9, 13, 17, 19, 20, 21, 24, 25

# Square Routes Revisited

Take a square, divide it into four smaller squares, and discard the smaller square on the top right. Do the same to each of the subsquares, dividing it into four sub-subsquares, then discarding the one on the top right. And repeat with the sub-subsquares. And the sub-sub-squares. And the sub-sub-sub-squares. And so on. The result is a fractal like this:

Stage 1

Stage 2

Stage 3

Stage 4

Animated fractal

Final fractal (static)

It looks as though this procedure isn’t very fertile. But you can enrich it by rotating each of the subsquares in a different way, so that the discarded sub-subsquare is different. Here’s an example:

Stage 1

Stage 2

Stage 3

Stage 4

Stage 5

Stage 6

Stage 7

Animated fractal

Final fractal (static)

Here are more examples of how rotating the subsquares in different ways produces different fractals:

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Animated fractal

Static fractal

Previously pre-posted:

Square Routes — first look at this kind of fractal

# Corralling Chaos

“Down through the aether I saw the accursed earth turning, ever turning, with angry and tempestuous seas gnawing at wild desolate shores and dashing foam against the tottering towers of deserted cities.” — “The Crawling Chaos” (1921), Winifred Jackson and H. P. Lovecraft.

All the best people brood incessantly on the fact that a point inside a square jumping half-way towards a randomly chosen vertex will not create a fractal. Inside a triangle, yes: a fractal appears. Inside a pentagon too. But not inside a square:

Point jumping half-way towards a randomly chosen vertex

Instead, the interior of the square fills with random points: it crawls with chaos, you might say. However, fractals appear inside a square if the point is restricted in some way: banned from jumping towards a vertex twice in a row; banned from jumping towards the second-nearest vertex; and so on. Those restrictions are what might be called soft, because they take place in software (or in the brain of someone following the rule as a game or piece of performance art). Here’s what might be called a hard restriction that creates a fractal: the point cannot jump towards a randomly vertex if its jump passes over any part of the red upright cross:

Point cannot pass over red lines

I call this a barrier fractal. It’s obvious that the point cannot jump from one corner of the square towards the opposite corner, which creates bare space stretching from each vertex towards the tips of the upright cross. Less obvious is the way in which this bare space “cascades” into other parts of the square, creating a repeatedly branching and shrinking pattern.

When the barrier is a circle, a similar fractal appears:

If the point can also jump towards the center of the circle, this is what happens:

Now here’s an upright cross with a gap in the middle:

Here’s an upright cross when the point can also jump towards the center of the cross:

A slanted cross with a central attractor:

And a single horizontal stroke:

A slanted stroke — note pentagons:

Even if the barrier is small and set on an edge of the square, it affects the rest of the square:

A more attractive example of edge-affects-whole:

Circles away from the edges

Detail of previous image

Here the point can also jump towards the center of the square’s edges:

A more subtle barrier fractal uses the previous jumps of the point to restrict its next jump. For example, if the point cannot jump across the line created by its previous-but-one jump, it moves like this:

Jump can’t cross track of last-but-one jump (animated gif)

The fractal itself looks like this:

Rule: on jump #3, cannot jump across the line created by jump #1; on jump #4, cannot cross the line created by jump #2; and so on.

And this is the fractal if the point cannot jump across the line created by its previous-but-two jump:

Rule: on jump #4, cannot jump across the line created by jump #2; on jump #5, cannot cross the line created by jump #3; and so on

# Jumper to Jumper

Previously I’ve looked at fractals created by a point moving half-way towards the random chosen vertex of a polygon. But you can also choose an initial vertex, then choose a new vertex by adding a random number to that initial vertex. Then repeat. For example, if the polygon is a square and the initial vertex is v = 1, then choose v + 3 = 4 or v – 1 = 3, and so on.

You can then ban or un-ban the choice of vertex-jump as you can ban or un-ban direct choices of vertex. These two methods of random choice are effectively the same, but one can be simpler to program than the other. That’s why I’ve come across some new fractals by using vertex-jumps. Here they are:

vertices = 4, vertex-jump = (1,2,3,4), ban on same choice twice in a row

vertices = 4, vertex-jump = (1,2,3,4), ban on 2 in row (black-and-white version)

v = 4, vj = (1,2,3,4), ban on choice c + 2 from previous choice c

v = 4, vj = (1,2,3,4), ban c + 2 (animated gif)

vj = (1,2,3,4), ban c + 2 (black-and-white)

vj = (1,2,3,4), ban c + 0 at time t+1 unless c + 0 at time t-1

vj = (1,2,3,4), ban c + 0 at t+1, unless c + 0 at t-1 (black-and-white)

vj = (1,2,3,4,5), ban c + 0

vj = (0,1,2,3,4), ban c + 0

vj = (0,1,2,3,4), ban c + 0 (black-and-white)

vj = (1,2,3,4), ban c + 2 at t+1 unless c + 2 at t-1 (animated gif)

vj = (1,2,3,4), ban c + various at t+1 unless c + various at t-1 (animated gif)

vj = (1,2,3,4,5), ban c + 0 at t+1 unless c + 0 at t-1

vj = (-2,-1,0,1,2), ban c + 0

vj = (-2,-1,0,1,2), ban c + 0 (black-and-white)

vj = (0,1,2,3,4), ban c + va unless c + va

v = 5, vj = (1,2,3,4), ban c + 0

v = 5, vj = (1,2,3,4), ban c + 2

v = 5, vj = (0,1,2,3), ban c + 3

v = 6, vj = (0,1,2,3), ban c + 2

v = 6, vj = va, ban c + va (animated gif)

# Appointment with Distality

distal, adj. Anat. Situated away from the centre of the body, or from the point of origin (said of the extremity or distant part of a limb or organ); terminal. Opp. to proximal. [← stem of dist- (in distant adj.) + -al, after dorsal, ventral, etc.] — Oxford English Dictionary

When a point jumps inside a triangle, moving halfway towards a randomly chosen vertex each time, a fractal known as the Sierpiński triangle appears:

Point jumping halfway towards random vertex of a triangle

Point jumping inside triangle (black-and-white version)

But when a point moves at random in the same way inside a square, no fractal appears. Instead, the interior of the square gradually fills with a haze of pixels:

Point jumping halfway towards random vertex of a square

Now trying imposing restrictions on the point jumping inside a square. If it can’t jump towards a vertex twice in a row, this fractal appears:

Ban consecutive jumps towards same vertex

Ban consecutive jumps towards same vertex (black-and-white version)

Suppose the vertices are numbered from 1 to 4 and the point can’t jump towards the vertex one lower than the previously chosen vertex. That is, if it jumps towards vertex 3, it can’t jump next towards vertex 2, but it can jump towards vertices 1, 3, or 4 (if the vertex is 1, it’s banned from moving towards vertex 4, i.e. 1-1 = 0 = 4). Now this fractal appears:

This is the fractal when the point can’t jump towards the vertex two places lower than the one it has just jumped towards:

But if you can ban, you can also un-ban. Suppose the point jumps towards vertex v at time t and is then banned from jumping towards vertex v-2 at time t+1 unless it had jumped towards vertex v-1 at time t-1. This interesting fractal appears:

Ban jump v-2 at t+1 unless jump v-1 at t-1

Here are some more fractals using the ban / un-ban technique:

Ban / un-ban various

Ban jump v+0 at t+1 unless jump v+1 at t-1

Ban jump v+1 at t+1 unless jump v+3 at t-1

Ban jump v+0 at t+1 unless jump v+2 at t-1

Ban jump v+2 at t+1 unless jump v+2 at t-1

Ban / un-ban various

You can also impose or lift bans based not on the vertex the point jumps towards, but on the distance the point jumps. For example, take the radius r of the circle circumscribing the square and divide it into four segments, 0 to ¼r, ¼r to ½r, ½r to ¾r, and ¾r to r. When the point is going to jump towards vertex v, test whether its jump will land in the same segment, measured from the center of the circle, as it currently occupies. If it does, ban the jump and choose another vertex. Or unban the vertex if the point occupied segment s + x at time t-1. Here are some of the fractals produced using this technique:

Ban / un-ban based on distance jumped

Ban jump into segment s+0 of 4

Ban jump into segment s+1 from center

Ban jump into segment s+2

Ban jump into s+2 at t+1 unless jump into s+2 at at t-1

Ban jump into s+0 from present point

Ban jump into s+2 from present point

Ban jump into s+3 from present point

Ban jump into s+0 at t+1 unless jump into s+1 at at t-1

It’s easy to think of variants on all these themes, but I’ll leave them as an exercise for the interested reader.