Tri Again (Again)

I didn’t expect to find the hourglass fractal playing with squares. I even less expected it playing with triangles. Isosceles right triangles, to be precise. Then again, I found it first playing with the L-triomino, which is composed of three squares. And an isosceles triangle is half of a square. So it all fits. This is an isosceles right triangle:
isosceles_right_triangle

Isosceles right triangle


It’s mirror-symmetrical, so it looks the same in a mirror unless you label one of the acute-angled corners in some way, like this:

right_triangle_chiral_1

Right triangle with labelled corner


right_triangle_chiral_2

Right triangle reflected


Reflection is how you find the hourglass fractal. First, divide a right triangle into four smaller right triangles.

right_triangle_div4

Right triangle rep-tiled


Then discard one of the smaller triangles and repeat. If the acute corners of the smaller triangles have different orientations, one of the permutations creates the hourglass fractal, like this:

right_triangle_div4_1

Hourglass #1


right_triangle_div4_2

Hourglass #2


right_triangle_div4_3

Hourglass #3


right_triangle_div4_4

Hourglass #4


right_triangle_div4_5

Hourglass #5


right_triangle_div4_6

Hourglass #6


right_triangle_div4_7

Hourglass #7


right_triangle_div4_8

Hourglass #8


right_triangle_div4_9

Hourglass #9


right_triangle_div4_123_010

Hourglass animated


Another permutation of corners creates what I’ve decided to call the crane fractal, like this:
right_triangle_div4_123_001

Crane fractal animated


right_triangle_div4_123_001_static

Crane fractal (static)


The crane fractal is something else that I first found playing with the L-triomino:

l-triomino_234

Crane fractal from L-triomino


Previously pre-posted:

Square Routes
Tri Again

Square Routes

One of the pleasures of exploring an ancient city like York or Chester is that of learning new routes to the same destination. There are byways and alleys, short-cuts and diversions. You set off intending to go to one place and end up in another.

Maths is like that, even at its simplest. There are many routes to the same destination. I first found the fractal below by playing with the L-triomino, or the shape created by putting three squares in the shape of an L. You can divide it into four copies of the same shape and discard one copy, then do the same to each of the sub-copies, then repeat. I’ve decided to call it the hourglass fractal:

l-triomino_124

Hourglass fractal (animated)


l-triomino_124_upright_static1

Hourglass fractal (static)


Then I unexpectedly came across the fractal again when playing with what I call a proximity fractal:
v4_ban15_sw3_anim

Hourglass animated (proximity fractal)


v4_ban15_sw3_col

(Static image)


Now I’ve unexpectedly come across it for a third time, playing with a very simple fractal based on a 2×2 square. At first glance, the 2×2 square yields only one interesting fractal. If you divide the square into four smaller squares and discard one square, then do the same to each of the three sub-copies, then repeat, you get a form of the Sierpiński triangle, like this:

sq2x2_123_1

Sierpiński triangle stage 1


sq2x2_123_2

Sierpiński triangle #2


sq2x2_123_3

Sierpiński triangle #3


sq2x2_123_4

Sierpiński triangle #4


sq2x2_123

Sierpiński triangle animated


sq2x2_123_static

(Static image)


The 2×2 square seems too simple for anything more, but there’s a simple way to enrich it: label the corners of the sub-squares so that you can, as it were, individually rotate them 0°, 90°, 180°, or 270°. One set of rotations produces the hourglass fractal, like this:

sq2x2_123_013_1

Hourglass stage 1


sq2x2_123_013_2

Hourglass #2


sq2x2_123_013_3

Fractal #3


sq2x2_123_013_4

Hourglass #4


sq2x2_123_013_5

Hourglass #5


sq2x2_123_013_6

Hourglass #6


sq2x2_123_013

Hourglass animated


sq2x2_123_013_static

(Static image)


Here are some more fractals from the 2×2 square created using this technique (I’ve found some of them previously by other routes):

sq2x2_123_022


sq2x2_123_022_static

(Static image)


sq2x2_123_031


sq2x2_123_031_static

(Static image)


sq2x2_123_102


sq2x2_123_102_static

(Static image)


sq2x2_123_2011


sq2x2_123_201_static

(Static image)


sq2x2_123_211


sq2x2_123_211_static

(Static image)


sq2x2_123_213


sq2x2_123_213_static

(Static image)


sq2x2_123_033_-111


sq2x2_123_033_-111_static

(Static image)


sq2x2_123_201_1-11_static

(Static image)


sq2x2_200_1-11_static

(Static image)


sq2x2_123_132

(Static image)


Tri-Way to L

The name is more complicated than the shape: L-triomino. The shape is simply three squares forming an L. And it’s a rep-tile — it can be divided into four smaller copies of itself.

l-triomino

An L-triomino — three squares forming an L


l-triomino_anim

L-triomino as rep-tile


That means it can also be turned into a fractal, as I’ve shown in Rep-Tiles Revisited and Get Your Prox Off #2. First you divide an L-triomino into four sub-copies, then discard one sub-copy, then repeat. Here are the standard L-triomino fractals produced by this technique:

l-triomino_123_134

Fractal from L-triomino — divide and discard


l-triomino_234


l-triomino_124


l-triomino_124_upright


l-triomino_124_upright_static1

(Static image)


l-triomino_124_upright_static2

(Static image)


But those fractals don’t exhaust the possibilities of this very simple shape. The standard L-triomino doesn’t have true chirality. That is, it doesn’t come in left- and right-handed forms related by mirror-reflection. But if you number its corners for the purposes of sub-division, you can treat it as though it comes in two distinct orientations. And when the orientations are different in the different sub-copies, new fractals appear. You can also delay the stage at which you discard the first sub-copy. For example, you can divide the L-triomino into four sub-copies, then divide each sub-copy into four more sub-copies, and only then begin discarding.

Here are the new fractals that appear when you apply these techniques:

l-triomino_124_exp

Delay before discarding


l-triomino_124_exp_static

(Static image)


l-triomino_124_tst2_static1

(Static image)


l-triomino_124_tst2_static2

(Static image)


l-triomino_124_tst1


l-triomino_124_tst1_static1

(Static image)


l-triomino_124_tst1_static2

(Static image)


l-triomino_134_adj1

Adjust orientation


l-triomino_134_adj2


l-triomino_134_adj3


l-triomino_134_adj3_tst3

(Static image)


l-triomino_134_adj4


l-triomino_134_exp_static

(Static image)


l-triomino_234_exp

Rep-tilian Rites

A pentomino is one of the shapes created by laying five squares edge-to-edge. There are twelve of them (not counting reflections) and this is the P-pentomino:

p_pentomino

But it’s not just a pentomino, it’s also a rep-tile, or a shape that can divided into smaller copies of itself. There are two ways of doing this (I’ve rotated the pentomino 90° to make the images look better):

p_pentomino_a


p_pentomino_b


Once you’ve divided the shape into four copies, you can divide the copies, then the copies of the copies, and the copies of the copies of the copies, and so on for ever:

p_pentomino_a_anim


p_pentomino_a_anim


And if you’ve got a reptile, you can turn it into a fractal. Simply divide the shape, discard one or more copies, and continue:

p_pentomino_a_124_1

Pentomino-based fractal stage 1


p_pentomino_a_124_2

Pentomino-based fractal stage 2


p_pentomino_a_124_3

Pentomino-based fractal stage 3


p_pentomino_a_124_4

Stage 4


p_pentomino_a_124_5

Stage 5


p_pentomino_a_124_6

Stage 6


p_pentomino_a_124_7

Stage 7


p_pentomino_a_124_8

Stage 8


p_pentomino_a_124_9

Stage 9


p_pentomino_a_124_10

Stage 10


Here are some more fractals created using the same divide-and-discard process:

p_pentomino_b_234

p_pentomino_b_234anim

Animated version


p_pentomino_b_134

p_pentomino_b_134anim

Animated version


p_pentomino_b_124

p_pentomino_b_124anim


p_pentomino_b_123

p_pentomino_b_123anim


p_pentomino_a_134anim

p_pentomino_a_134


p_pentomino_a_234anim

p_pentomino_a_234


p_pentomino_a_124

p_pentomino_a_124anim


p_pentomino_a_123

p_pentomino_a_123anim


You can also use variants on a standard rep-tile dissection, like rotating the copies or trying different patterns of dissection at different levels to see what new shapes appear:

p_pentomino_adj_13

p_pentomino_adj_anim13


p_pentomino_adj_6

p_pentomino_adj_anim6


p_pentomino_adj_anim5

p_pentomino_adj_5


p_pentomino_adj_3

p_pentomino_adj_anim3


p_pentomino_adj_2

p_pentomino_adj_anim2


p_pentomino_adj_1

p_pentomino_adj_anim1


p_pentomino_adj_17

p_pentomino_adj_anim17


p_pentomino_adj_15

p_pentomino_adj_anim15


p_pentomino_adj_16

p_pentomino_adj_anim16


p_pentomino_adj_8

p_pentomino_adj_anim8


p_pentomino_adj_10

p_pentomino_adj_anim10


p_pentomino_adj_11

p_pentomino_adj_anim11


p_pentomino_adj_14

p_pentomino_adj_anim14


p_pentomino_adj_anim4


p_pentomino_adj_anim12


p_pentomino_adj_anim9


p_pentomino_adj_anim7

Fragic Carpet

Maths is like a jungle: rich, teeming and full of surprises. A waterfall here, a glade of butterflies there, a bank of orchids yonder. There is always something new to see and a different route to try. But sometimes a different route will take you to the same place. I’ve already found two ways to reach this fractal (see Fingering the Frigit and Performativizing the Polygonic):

carpet2x2

Fractal Carpet


Now I’ve found a third way. You could call it the rep-tile route. Divide a square into four smaller squares:

square2x2

Add an extra square over the centre:

square2x2_1

Then keep dividing the squares in the same way:

carpet2x2_anim_1

Animated carpet (with coloured blocks)


carpet2x2_anim_2

Animated carpet (with empty blocks)


The colours of the fractal appear when the same pixel is covered repeatedly: first it’s red, then green, yellow, blue, purple, and so on. Because the colours and their order are arbitrary, you can use different colour schemes:

carpet2x2_col1

Colour scheme #1


carpet2x2_col2

Colour scheme #2


carpet2x2_col3

Colour scheme #3


Here are more colour-schemes in an animated gif:

carpet2x2_col

Various colour-schemes


Now try dividing the square into nine and sixteen, with an extra square over the centre:

carpet3x3

3×3 square + central square


carpet3x3_anim

3×3 square + central square (animated)


carpet4x4

4×4 square + central square


carpet4x4_anim

4×4 square + central square (animated)


You can also adjust the size of the square added to the 2×2 subdivision:

carpet2x2_1_2

2×2 square + 1/2-sized central square


carpet2x2_3_4

2×2 square + 3/4-sized central square


Elsewhere Other-Posted:

Fingering the Frigit
Performativizing the Polygonic

Get Your Prox Off #2

Serendipity is the art of making happy discoveries by accident. I made a mistake writing a program to create fractals and made the happy discovery of an attractive new fractal. And also of a new version of an attractive fractal I had seen before.

As I described in Get Your Prox Off, you can create a fractal by 1) moving a point towards a randomly chosen vertex of a polygon, but 2) forbidding a move towards the nearest vertex or the second-nearest vertex or third-nearest, and so on. If the polygon is a square, the four possible basic fractals look like this (note that the first fractal is also produced by banning a move towards a vertex that was chosen in the previous move):

v4_ban1

v = 4, ban = prox(1)
(ban move towards nearest vertex)


v4_ban2

v = 4, ban = prox(2)
(ban move towards second-nearest vertex)


v4_ban3

v = 4, ban = prox(3)


v4_ban4

v = 4, ban = prox(4)


This program has to calculate what might be called the order of proximity: that is, it creates an array of distances to each vertex, then sorts the array by increasing distance. I was using a bubble-sort, but made a mistake so that the program ran through the array only once and didn’t complete the sort. If this happens, the fractals look like this (note that vertex 1 is on the right, with vertex 2, 3 and 4 clockwise from it):
v4_ban1_sw1

v = 4, ban = prox(1), sweep = 1


v4_ban2_sw1

v = 4, ban = prox(2), sweep = 1


v4_ban3_sw1

v = 4, ban = prox(3), sweep = 1


v4_ban3_sw1_anim

(Animated version of v4, ban(prox(3)), sw=1)


v4_ban4_sw1

v = 4, ban = prox(4), sweep = 1


Note that in the last case, where ban = prox(4), a bubble-sort needs only one sweep to identify the most distant vertex, so the fractal looks the same as it does with a complete bubble-sort.

These new fractals looked interesting, so I had the idea of adjusting the number of sweeps in the incomplete bubble-sort: one sweep or two or three and so on (with enough sweeps, the bubble-sort becomes complete, but more sweeps are needed to complete a sort as the number of vertices increases). If there are two sweeps, then ban(prox(1)) and ban(prox(2)) look like this:

v4_ban1_sw2

v = 4, ban = prox(1), sweep = 2


v4_ban2_sw1

v = 4, ban = prox(2), sweep = 2


But the fractals produced by sweep = 2 for ban(prox(3)) and ban(prox(4)) are identical to the fractals produced by a complete bubble sort. Now, suppose you add a central point to the polygon and treat that as an additional vertex. If the bubble-sort is incomplete, a ban(prox(1)) fractal with a central point looks like this:

v4c_ban1_sw1

v = 4+c, ban = prox(1), sw = 1


v4c_ban1_sw2

v = 4+c, ban = prox(1), sw = 2


When sweep = 3, an attractive new fractal appears:

v4c_ban1_sw3

v = 4+c, ban = prox(1), sw = 3


v4c_ban1_sw3_anim

v = 4+c, ban = prox(1), sw = 3 (animated)


If you ban two vertices, the nearest and second-nearest, i.e. ban(prox(1), prox(2)), a complete bubble-sort produces a familiar fractal:

v4_ban12

v = 4+c, ban = prox(1), prox(2)


And here is ban(prox(2), prox(4)), with a complete bubble-sort:

v4c_ban24

v = 4, ban = prox(2), prox(4)


If the bubble-sort is incomplete, sweep = 1 and sweep = 2 produce these fractals for ban(prox(1), prox(2)):

v4_ban12_sw1

v = 4, ban = prox(1), prox(2), sw = 1


v4_ban12_sw2

v = 4, ban = prox(1), prox(2), sw = 2*

*The second of those fractals is identical to v = 4, ban(prox(2), prox(3)) with a complete bubble-sort.


Here is ban(prox(1), prox(5)) with a complete bubble-sort:

4c_ban15

v = 4, ban = prox(1), prox(5)


Now try ban(prox(1), prox(5)) with an incomplete bubble-sort:

v4_ban15_sw1

v = 4, ban = prox(1), prox(5), sw = 1


v4_ban15_sw2

v = 4, ban = prox(1), prox(5), sw = 2


When sweep = 3, the fractal I had seen before appears:

v4_ban15_sw3

v = 4, ban = prox(1), prox(5), sw = 3


v4_ban15_sw3_anim

v = 4, ban = prox(1), prox(5), sw = 3 (animated)


Where had I seen it before? While investigating this rep-tile (a shape that can be tiled with smaller versions of itself):

L-reptile

L-triomino rep-tile


L-reptile_anim

L-triomino rep-tile (animated)


The rep-tile is technically called an L-triomino, because it looks like a capital L and is one of the two distinct shapes you can create by joining three squares at the edges. You can create fractals from an L-triomino by dividing it into four copies, discarding one of the copies, then repeating the divide-and-discard at smaller and smaller scales:

L-reptile_1

L-triomino fractal stage #1


L-reptile_2

L-triomino fractal stage #2


L-reptile_3

L-triomino fractal stage #3


L-reptile_4

L-triomino fractal stage #4


L-reptile_5

L-triomino fractal stage #5


L-reptile_fractal_anim

L-triomino fractal (animated)

L-reptile_fractal_static

L-triomino fractal (close-up)

And here’s part of the ban(prox(1), prox(5)) fractal for comparison:

v4_ban15_sw3_mono


v4_ban15_sw3_col

So you can get to the same fractal (or versions of it), by two apparently different routes: random movement of a point inside a square or repeatedly dividing-and-discarding the sub-copies of an L-triomino. That’s serendipity!


Previously pre-posted:

Get Your Prox Off

Radical Sheet

If you take a sheet of standard-sized paper and fold it in half from top to bottom, the folded sheet has the same proportions as the original, namely √2 : 1. In other words, if x = √2 / 2, then 1 / x = √2:

√2 = 1.414213562373…, √2 / 2 = 0.707106781186…, 1 / 0.707106781186… = 1.414213562373…

So you could say that paper has radical sheet (the square or other root of a number is also called its radix and √ is known as the radical sign). When a rectangle has the proportions √2 : 1, it can be tiled with an infinite number of copies of itself, the first copy having ½ the area of the original, the second ¼, the third ⅛, and so on. The radical sheet below is tiled with ten diminishing copies of itself, the final two having the same area:

papersizes

papersizes_static

You can also tile a radical sheet with six copies of itself, two copies having ¼ the area of the original and four having ⅛:

paper_6div_static

paper_6div

This tiling is when you might say the radical turns crucial, because you can create a fractal cross from it by repeatedly dividing and discarding. Suppose you divide a radical sheet into six copies as above, then discard two of the ⅛-sized rectangles, like this:

paper_cross_1

Stage 1


Then repeat with the smaller rectangles:

paper_cross_2

Stage 2


paper_cross_3

Stage 3


paper_cross_4

Stage 4


paper_cross_5

Stage 5


paper_cross

Animated version

paper_cross_static

Fractile cross

The cross is slanted, but it’s easy to rotate the original rectangle and produce an upright cross:

paper_cross_upright

paper_cross_upright_static

The Art Grows Onda

Anyone interested in recreational mathematics should seek out three compendiums by Ian Stewart: Professor Stewart’s Cabinet of Mathematical Curiosities (2008), Professor Stewart’s Hoard of Mathematical Treasures (2009) and Professor Stewart’s Casebook of Mathematical Mysteries (2014). They’re full of ideas and puzzles and are excellent introductions to the scope and subtlety of maths. I first came across Alexander’s Horned Sphere in one of them. I also came across this simpler shape that packs infinity into a finite area:

unicorn_triangle

I call it a horned triangle or unicorn triangle and it reminds me of a wave curling over, like Katsushika Hokusai’s The Great Wave off Kanagawa (c. 1830) (“wave” is unda in Latin and onda in Spanish).

The Great Wave off Kanagawa by Katsushika Hokusai (1760–1849)

The Great Wave off Kanagawa by Katsushika Hokusai (1760–1849)

To construct the unicorn triangle, you take an equilateral triangle with sides of length 1 and erect a triangle with sides of length 0.5 on one of its corners. Then on the corresponding corner of the new triangle you erect a triangle with sides of length 0.25. And so on, for ever.

unicorn_multicolor

unicorn_animated

When you double the sides of a polygon, you quadruple the area: a 1×1 square has an area of 1, a 2×2 square has an area of 4. Accordingly, when you halve the sides of a polygon, you quarter the area: a 1×1 square has an area of 1, a 0.5 x 0.5 square has an area of 0.25 or 1/4. So if the original triangle of the unicorn triangle above has an area of 1 rather than sides of 1, the first triangle added has an area of 0.25 = 1/4, the next an area of 0.0625 = 1/16, and so on. The infinite sum is this:

1/4 + 1/16 + 1/256 + 1/1024 + 1/4096 + 1/16384…

Which equals 1/3. This becomes important when you see the use made of the shape in Stewart’s book. The unicorn triangle is a rep-tile, or a shape that can be divided into smaller copies of the same shape:

unicorn_reptile_static

unicorn_reptile

An equilateral triangle can be divided into four copies of itself, each 1/4 of the original area. If an equilateral triangle with an area of 4 is divided into three unicorn triangles, each unicorn has an area of 1 + 1/3 and 3 * (1 + 1/3) = 4.

Because it’s a rep-tile, a unicorn triangle is also a fractal, a shape that is self-similar at smaller and smaller scales. When one of the sub-unicorns is dropped, the fractals become more obvious:

unicorn_fractal1


unicorn_fractal2


unicorn_fractal3


Elsewhere other-posted:

Rep-Tiles Revisited

Boldly Breaking the Boundaries

In “M.I.P. Trip”, I looked at fractals like this, in which a square is divided repeatedly into a pattern of smaller squares:
2x2inner

2x2inner_static


3x3innera

3x3innera_static


3x3innerb

3x3innerb_static


As you can see, the sub-squares appear within the bounds of the original square. But what if some of the sub-squares appear beyond the bounds of the original square? Then a new family of fractals is born, the over-fractals:

fractal2x2a

fractal2x2a_static


fractal2x2b

fractal2x2b_static


fractal2x2c

fractal2x2c_static


fractal2x2d

fractal2x2d_static


fractal2x2e

fractal2x2e_static


fractal3x3a

fractal3x3a_static


fractal3x3b

fractal3x3b_static


fractal3x3c

fractal3x3c_static


fractal3x3d


fractal3x3e


fractal3x3f


fractal3x3g


fractal3x3h


fractal3x3i


fractal3x3j


fractal3x3k


fractal3x3l


fractal3x3m


fractal3x3n


fractal4x4a


fractal4x4c


fractal4x4b

Hex Appeal

A polyiamond is a shape consisting of equilateral triangles joined edge-to-edge. There is one moniamond, consisting of one equilateral triangle, and one diamond, consisting of two. After that, there are one triamond, three tetriamonds, four pentiamonds and twelve hexiamonds. The most famous hexiamond is known as the sphinx, because it’s reminiscent of the Great Sphinx of Giza:

sphinx_hexiamond

It’s famous because it is the only known pentagonal rep-tile, or shape that can be divided completely into smaller copies of itself. You can divide a sphinx into either four copies of itself or nine copies, like this (please open images in a new window if they fail to animate):

sphinx4

sphinx9

So far, no other pentagonal rep-tile has been discovered. Unless you count this double-triangle as a pentagon:

double_triangle_rep-tile

It has five sides, five vertices and is divisible into sixteen copies of itself. But one of the vertices sits on one of the sides, so it’s not a normal pentagon. Some might argue that this vertex divides the side into two, making the shape a hexagon. I would appeal to these ancient definitions: a point is “that which has no part” and a line is “a length without breadth” (see Neuclid on the Block). The vertex is a partless point on the breadthless line of the side, which isn’t altered by it.

But, unlike the sphinx, the double-triangle has two internal areas, not one. It can be completely drawn with five continuous lines uniting five unique points, but it definitely isn’t a normal pentagon. Even less normal are two more rep-tiles that can be drawn with five continuous lines uniting five unique points: the fish that can be created from three equilateral triangles and the fish that can be created from four isosceles right triangles:

equilateral_triangle_fish_rep-tile

right_triangle_fish_rep-tile