Performativizing the Polygonic #3

Pre-previously in my passionate portrayal of polygonic performativity, I showed how a single point jumping randomly (or quasi-randomly) towards the vertices of a polygon can create elaborate fractals. For example, if the point jumps 1/φth (= 0.6180339887…) of the way towards the vertices of a pentagon, it creates this fractal:

Point jumping 1/φth of the way to a randomly (or quasi-randomly) chosen vertex of a pentagon


But as you might expect, there are different routes to the same fractal. Suppose you take a fractal and select a single vertex. Now, measure the distance to each vertex, v(1,i=1..5), of the original pentagon (including the selected vertex) and reduce it by 1/φ to find the position of a new vertex, v(2,i=1..5). If you do this for each vertex of the original pentagon, then to each vertex of the new pentagons, and so on, in the end you create the same fractal as the jumping point does:

Shrink pentagons by 1/φ, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Shrink by 1/φ (animated) (click for larger if blurred)


And here is the route to a centre-filled variant of the fractal:

Central pentagon, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Central pentagon (animated) (click for larger if blurred)


Using this shrink-the-polygon method, you can reach the same fractals by a third route. This time, use vertex v(1,i) of the original polygon as the centre of the new polygon with its vertices v(2,i=1..5). Creation of the fractal looks like this:

Pentagons over vertices, shrink by 1/φ, stage #1 (no pentagons over vertices)


Stage #2


Stage #3


Stage #4


Stage #4


Stage #5


Stage #7


Pentagons over vertices (animated) (click for larger if blurred)


And here is a third way of creating the centre-filled pentagonal fractal:

Pentagons over vertices and central pentagon, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Pentagons over vertices with central pentagon (animated) (click for larger if blurred)


And here is a fractal created when there are three pentagons to a side and the pentagons are shrunk by 1/φ^2 = 0.3819660112…:

Pentagon at vertex + pentagon at mid-point of side, shrink by 1/φ^2


Final stage


Pentagon at vertex + pentagon at mid-point of side (animated) (click for larger if blurred)


Pentagon at vertex + pentagon at mid-point of side + central pentagon, shrink by 1/φ^2 and c. 0.5, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Pentagon at vertex + mid-point + center (animated) (click for larger if blurred)


Previously pre-posted:

Performativizing the Polygonic #2
Performativizing the Polygonic #1

Horn Again

Pre-previously on Overlord-in-terms-of-Core-Issues-around-Maximal-Engagement-with-Key-Notions-of-the-Über-Feral, I interrogated issues around this shape, the horned triangle:

unicorn_reptile_static

Horned Triangle (more details)


Now I want to look at the tricorn (from Latin tri-, “three”, + -corn, “horn”). It’s like a horned triangle, but has three horns instead of one:

Tricorn, or three-horned triangle


These are the stages that make up the tricorn:

Tricorn (stages)


Tricorn (animated)


And there’s no need to stop at triangles. Here is a four-horned square, or quadricorn:

Quadricorn


Quadricorn (animated)


Quadricorn (coloured)


And a five-horned pentagon, or quinticorn:

Quinticorn, or five-horned pentagon


Quinticorn (anim)


Quinticorn (col)


And below are some variants on the shapes above. First, the reversed tricorn:

Reversed Tricorn


Reversed Tricorn (anim)


Reversed Tricorn (col)


The nested tricorn:

Nested Tricorn (anim)


Nested Tricorn (col)


Nested Tricorn (red-green)


Nested Tricorn (variant col)


The nested quadricorn:

Nested Quadricorn (anim)


Nested Quadricorn


Nested Quadricorn (col #1)


Nested Quadricorn (col #2)


Finally (and ferally), the pentagonal octopus or pentapus:

Pentapus (anim)


Pentapus


Pentapus #2


Pentapus #3


Pentapus #4


Pentapus #5


Pentapus #6


Pentapus (col anim)


Elsewhere other-engageable:

The Art Grows Onda — the horned triangle and Katsushika Hokusai’s painting The Great Wave off Kanagawa (c. 1830)

Mod’s Chosen

When you divide one integer by another, one of two things happens. Either the second number goes perfectly into the first or there’s a remainder:


15 / 5 = 3
18 / 5 = 3⅗

In the first case, there’s no remainder, that is, the remainder is 0. In the second case, there’s a remainder of 3. And all that gives you the basis for what’s called modular arithmetic. It returns the remainder when one number is divided by another:


15 mod 5 = 0
16 mod 5 = 1
17 mod 5 = 2
18 mod 5 = 3
19 mod 5 = 4
20 mod 5 = 0
21 mod 5 = 1
22 mod 5 = 2...

It looks simple but a lot of mathematics is built on it. I don’t know much of that maths, but I know one thing I like: the patterns you can get from modular arithmetic. Suppose you draw a square, then find a point and measure the distances from that point to all the vertices of the square. Then add the distances up, turn the result into an integer if necessary, and test whether the result is divisible by 2 or not. If it is divisible, colour the point in. If it isn’t, leave the point blank.

Then move on to another point and perform the same test. This is modular arithematic, because for each point you’re asking whether d mod 2 = 0. The result looks like this:

d mod 2 = 0


Here are more divisors:

d mod 3 = 0


d mod 4 = 0


d mod 5 = 0


d mod 6 = 0


d mod 7 = 0


d mod 8 = 0


d mod 9 = 0


d mod 10 = 0


d mod various = 0 (animated)


You can also use modular arithmetic to determine the colour of the points. For example, if d mod n = 0, the point is black; if d mod n = 1, the point is red; if d mod n = 2, the point is green; and so on.

d mod 3 = 0, 1, 2 (coloured)


d mod 4 = 0, 1, 2, 3 (coloured)


d mod 5 = 0, 1, 2, 3, 4 (coloured)



d mod 5 = 0, 1, 2, 3, 4 (animated and expanding)


For Revver and Fevver

This shape reminds me of the feathers on an exotic bird:

feathers

(click or open in new window for full size)


feathers_anim

(animated version)


The shape is created by reversing the digits of a number, so you could say it involves revvers and fevvers. I discovered it when I was looking at the Halton sequence. It’s a sequence of fractions created according to a simple but interesting rule. The rule works like this: take n in base b, reverse it, and divide reverse(n) by the first power of b that is greater thann.

For example, suppose n = 6 and b = 2. In base 2, 6 = 110 and reverse(110) = 011 = 11 = 3. The first power of 2 that is greater than 6 is 2^3 or 8. Therefore, halton(6) in base 2 equals 3/8. Here is the same procedure applied to n = 1..20:

1: halton(1) = 1/10[2] → 1/2
2: halton(10) = 01/100[2] → 1/4
3: halton(11) = 11/100[2] → 3/4
4: halton(100) = 001/1000[2] → 1/8
5: halton(101) = 101/1000[2] → 5/8
6: halton(110) = 011/1000 → 3/8
7: halton(111) = 111/1000 → 7/8
8: halton(1000) = 0001/10000 → 1/16
9: halton(1001) = 1001/10000 → 9/16
10: halton(1010) = 0101/10000 → 5/16
11: halton(1011) = 1101/10000 → 13/16
12: halton(1100) = 0011/10000 → 3/16
13: halton(1101) = 1011/10000 → 11/16
14: halton(1110) = 0111/10000 → 7/16
15: halton(1111) = 1111/10000 → 15/16
16: halton(10000) = 00001/100000 → 1/32
17: halton(10001) = 10001/100000 → 17/32
18: halton(10010) = 01001/100000 → 9/32
19: halton(10011) = 11001/100000 → 25/32
20: halton(10100) = 00101/100000 → 5/32…

Note that the sequence always produces reduced fractions, i.e. fractions in their lowest possible terms. Once 1/2 has appeared, there is no 2/4, 4/8, 8/16…; once 3/4 has appeared, there is no 6/8, 12/16, 24/32…; and so on. If the fractions are represented as points in the interval [0,1], they look like this:

line1_1_2

point = 1/2


line2_1_4

point = 1/4


line3_3_4

point = 3/4


line4_1_8

point = 1/8


line5_5_8

point = 5/8


line6_3_8

point = 3/8


line7_7_8

point = 7/8


line_b2_anim

(animated line for base = 2, n = 1..63)


It’s apparent that Halton points in base 2 will evenly fill the interval [0,1]. Now compare a Halton sequence in base 3:

1: halton(1) = 1/10[3] → 1/3
2: halton(2) = 2/10[3] → 2/3
3: halton(10) = 01/100[3] → 1/9
4: halton(11) = 11/100[3] → 4/9
5: halton(12) = 21/100[3] → 7/9
6: halton(20) = 02/100 → 2/9
7: halton(21) = 12/100 → 5/9
8: halton(22) = 22/100 → 8/9
9: halton(100) = 001/1000 → 1/27
10: halton(101) = 101/1000 → 10/27
11: halton(102) = 201/1000 → 19/27
12: halton(110) = 011/1000 → 4/27
13: halton(111) = 111/1000 → 13/27
14: halton(112) = 211/1000 → 22/27
15: halton(120) = 021/1000 → 7/27
16: halton(121) = 121/1000 → 16/27
17: halton(122) = 221/1000 → 25/27
18: halton(200) = 002/1000 → 2/27
19: halton(201) = 102/1000 → 11/27
20: halton(202) = 202/1000 → 20/27
21: halton(210) = 012/1000 → 5/27
22: halton(211) = 112/1000 → 14/27
23: halton(212) = 212/1000 → 23/27
24: halton(220) = 022/1000 → 8/27
25: halton(221) = 122/1000 → 17/27
26: halton(222) = 222/1000 → 26/27
27: halton(1000) = 0001/10000 → 1/81
28: halton(1001) = 1001/10000 → 28/81
29: halton(1002) = 2001/10000 → 55/81
30: halton(1010) = 0101/10000 → 10/81

And here is an animated gif representing the Halton sequence in base 3 as points in the interval [0,1]:

line_b3_anim


Halton points in base 3 also evenly fill the interval [0,1]. What happens if you apply the Halton sequence to a two-dimensional square rather a one-dimensional line? Suppose the bottom left-hand corner of the square has the co-ordinates (0,0) and the top right-hand corner has the co-ordinates (1,1). Find points (x,y) inside the square, with x supplied by the Halton sequence in base 2 and y supplied by the Halton sequence in base 3. The square will gradually fill like this:

square1

x = 1/2, y = 1/3


square2

x = 1/4, y = 2/3


square3

x = 3/4, y = 1/9


square4

x = 1/8, y = 4/9


square5

x = 5/8, y = 7/9


square6

x = 3/8, y = 2/9


square7

x = 7/8, y = 5/9


square8

x = 1/16, y = 8/9


square9

x = 9/16, y = 1/27…


square_anim

animated square


Read full page: For Revver and Fevver

Performativizing the Polygonic

Maths is a mountain: you can start climbing in different places and reach the same destination. There are many ways of proving the irrationality of √2 or the infinitude of the primes, for example. But you can also arrive at the same destination by accident. I’ve found that when I use different methods of creating fractals. The same fractals appear, because apparently different algorithms are actually the same underneath.

But different methods can create unique fractals too. I’ve found some new ones by using what might be called point-to-point recursion. For example, there are ten ways to select three vertices from the five vertices of a pentagon: (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5). Find the midpoint of the first three-point set, (1, 2, 3). Then select two vertices to go with this midpoint, creating a new three-point set, and find the midpoint again. And so on. The process looks like this, with the midpoints shown for all the three-point sets found at each stage:

v5_p3_stage1

vertices = 5, choose sets of 3 points, find mid-point of each

v5_p3_stage2

v5_p3_stage3


At stage 5, the fractal looks like this:

v5_p3_static

v = 5, p = 3


Note that when pixels are used again, the colour changes. That’s another interesting thing about maths: limits can sometimes produce deeper results. If these fractals were drawn at very high resolution, pixels would only be used once and the colour would never change. As it is, low resolution means that pixels are used again and again. But some are used more than others, which is why interesting colour effects appear.

If the formation of the fractal is animated, it looks like this (with close-ups of even deeper stages):
v5_p3


Here are some more examples:

v4c_p2_static

v = 4 + central point, p = 2 (cf. Fingering the Frigit)

v4c_p2

v = 4c, p = 2 (animated)


v4_p3_static

v = 4, p = 3

v4_p3


v5_p4_static

v = 5, p = 4

v5_p4


v5c_p3_static

v = 5 + central point, p = 3

v5c_p3


v5c_p4

v = 5c, p = 4


v5c_p5

v = 5c, p = 5


v6_1_p6

v = 6 + 1 point between each pair of vertices, p = 6


v6_p2

v = 6, p = 2


v6_p3_static

v = 6, p = 3

v6_p3


v6_p4

v = 6, p = 4


v6c_p2_static

v = 6c, p = 2 (cf. Fingering the Frigit)

v6c_p2


v6c_p3_static

v = 6c, p = 3

v6c_p3


v6c_p4

v = 6c, p = 4


v7_p3

v = 7, p = 3


v7_p4_static

v = 7, p = 4

v7_p4


v7_p5_static

v = ,7 p = 5

v7_p5


v7_p4

v = 7c, p = 4


v3_1_p2

v = 3+1, p = 2


v3_1_p3

v = 3+1, p = 3


v3_1_p4

v = 3+1, p = 4


v3_2_p5

v = 3+2, p = 5


v3c_1_p2

v = 3c+1, p = 2


v3c_1_p4

v = 3c+1, p = 4


v3c_p2

v = 3c, p = 2


v3c_p3

v = 3c, p = 3


v4_1_p3

v = 4+1, p = 3


v4_1_p4

v = 4+1, p = 4


v4_1_p5

v = 4+1, p = 6


v4_1_p6

v = 4+1, p = 2


v4c_1_p4

v = 4c+1, p = 4


v4c_p3_static

v = 4c, p = 3

v4c_p3


v5_1_p4_va

v = 5+1, p = 4 (and more)


v5_p2

v = 5, p = 2


Polymorphous Perverticity

As I’ve explained before on Overlord of the Über-Feral, the planet’s premier purveyor of polygonic performativity (probably (possibly (perspectivistically))), it works with triangles and pentagons, but not with squares. And what is “it”? A simple procedure in which you create a polygon, choose a point inside it, then repeatedly move half-way towards a vertex chosen at random, marking each new position as you go.

pol3_4_5

When the polygon has three vertices, you get a Sierpiński triangle. When it has five, you get what might be called a  Sierpiński pentagon. When it has four, you get nothing. Or rather: you get everything, because the whole interior of the square gradually fills with points. But, as I’ve also explained before, there’s a simple way to change this. You can adapt the procedure so that a vertex can’t be chosen twice in a row, and so on.

When the rule is “No vertex twice in a row”, you get this fractal (colours change as a pixel is selected again):

pol4_0

But you can also use what might be a vertex increment, or vi, whereby you disallow vertices that are next to the previously chosen vertex, or two positions away, and so on. When the rule is “No vertex twice in a row”, the disallowed vertex is (v + 0), that is, vi = 0. If vi = 2 and the rule is disallow(v + 2), this fractal appears (when vi = 1, there’s no fractal):

pol4_2

v = 4, vi = 2

pol4_2_anim


You can extend these rules to apply not just to the previously chosen vertex, but also to the vertex chosen before that. Here are some fractals produced by the rule disallow(v[1] + vi[1], v[2] + vi[2]), where v[1] is the vertex previously chosen and v[2] is the vertex chosen before that:

pol4_1_2

v = 4, vi[1] = 1, vi[2] = 2

pol4_1_2_anim


pol4_2_0

v = 4, vi[1] = 2, vi[2] = 0

pol4_2_0_anim

pol4_2_0_white


pol4_2_1

v = 4, vi[1] = 2, vi[2] = 1

pol4_2_1_anim


pol4_2_2

v = 4, vi[1] = 2, vi[2] = 2

pol4_2_2_anim


And here are some fractals produced by the rule disallow(v[1] + vi[1], v[2] + vi[2], v[3] + vi[3]):

pol4_1_1_0

v = 4, vi[1] = 1, vi[2] = 1, vi[3] = 0

pol4_1_1_0_anim


pol4_1_1_2

v = 4, vi[1] = 1, vi[2] = 1, vi[3] = 2

pol4_1_1_2_anim


Applying these rules to pentagons rather than squares doesn’t produce such a dramatic difference, because the original procedure – choose any vertex at random, taking no account of previous choices – produces a fractal when v = 5, as noted above, but not when v = 4. Nevertheless, here are some fractals for v > 4:

pol5_0

v = 5, vi = 0


pol5_1

v = 5, vi = 1

pol5_1_anim


pol5_2

v = 5, vi = 2

pol5_2_anim


pol5_0_0

v = 5, vi[1] = 0, vi[2] = 0


pol5_1_0

v = 5, vi[1] = 1, vi[2] = 0


pol5_2_0

v = 5, vi[1] = 2, vi[2] = 0

pol5_2_0_anim


pol5_1_1

v = 5, vi[1] = 1, vi[2] = 1

pol5_1_1_anim


pol5_1_1_1

v = 5, vi[1] = 1, vi[2] = 1, vi[3] = 1


pol5_va2

v = 5, vi = various


pol6_1

v = 6, vi = 1

pol6_1_anim

Fingering the Frigit

Fingers are fractal. Where a tree has a trunk, branches and twigs, a human being has a torso, arms and fingers. And human beings move in fractal ways. We use our legs to move large distances, then reach out with our arms over smaller distances, then move our fingers over smaller distances still. We’re fractal beings, inside and out, brains and blood-vessels, fingers and toes.

But fingers are fractal are in another way. A digit – digitus in Latin – is literally a finger, because we once counted on our fingers. And digits behave like fractals. If you look at numbers, you’ll see that they contain patterns that echo each other and, in a sense, recur on smaller and smaller scales. The simplest pattern in base 10 is (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). It occurs again and again at almost very point of a number, like a ten-hour clock that starts at zero-hour:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9…
10, 11, 12, 13, 14, 15, 16, 17, 18, 19…
200… 210… 220… 230… 240… 250… 260… 270… 280… 290…

These fractal patterns become visible if you turn numbers into images. Suppose you set up a square with four fixed points on its corners and a fixed point at its centre. Let the five points correspond to the digits (1, 2, 3, 4, 5) of numbers in base 6 (not using 0, to simplify matters):

1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 51, 52, 53, 54, 55, 61, 62, 63, 64, 65… 2431, 2432, 2433, 2434, 2435, 2441, 2442, 2443, 2444, 2445, 2451, 2452…

Move between the five points of the square by stepping through the individual digits of the numbers in the sequence. For example, if the number is 2451, the first set of successive digits is (2, 4), so you move to a point half-way between point 2 and point 4. Next come the successive digits (4, 5), so you move to a point half-way between point 4 and point 5. Then come (5, 1), so you move to a point half-way between point 5 and point 1.

When you’ve exhausted the digits (or frigits) of a number, mark the final point you moved to (changing the colour of the pixel if the point has been occupied before). If you follow this procedure using a five-point square, you will create a fractal something like this:
fractal4_1single

fractal4_1
A pentagon without a central point using numbers in a zero-less base 7 looks like this:
fractal5_0single

fractal5_0
A pentagon with a central point looks like this:
fractal5_1single

fractal5_1
Hexagons using a zero-less base 8 look like this:
fractal6_1single

fractal6_1


fractal6_0single

fractal6_0
But the images above are just the beginning. If you use a fixed base while varying the polygon and so on, you can create images like these (here is the program I used):
fractal4


fractal5


fractal6789

The Choice of the Circle

Here’s an elementary mathematical problem: how many ways are there to choose three numbers from a set of six numbers? If the set is (1, 2, 3, 4, 5, 6), these are the possible choices (or combinations):

(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 4, 5), (1, 4, 6), (1, 5, 6), (2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6), (2, 5, 6), (3, 4, 5), (3, 4, 6), (3, 5, 6), (4, 5, 6) (c = 20)

So 6C3 = 20 (C stands for “combination”). The general formula is nCr = (n! / (n-r)!) / r!, where n is the number to choose from, r is the number of choices and n! is factorial n, or n multiplied by all numbers less than itself. For example, 6! = 6 * 5 * 4 * 3 * 2 * 1 = 720. When n = 6 and c = 3, 6C3 = (6! / (6-3)!) / 3! = (720 / 6) / 6 = 20.

There isn’t much visual appeal in the choices above, but there’s a simple way to change that. Take the ways of choosing two numbers from a set of ten. They start like this:

(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (2, 10), (3, 4), (3, 5), (3, 6)…

Suppose each choice represents the midpoint of two points chosen from a set of ten points around a pentagon, so that (1, 2) is half-way between points 1 and 2, (3, 5) is half-way between points 3 and 5, and so on:

pent_10_2

Now take the ways of choosing three numbers from a set of ten:

(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 2, 7), (1, 2, 8), (1, 2, 9), (1, 2, 10), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 3, 9), (1, 3, 10)…

Now the pentagon looks like this, with (1, 2, 3) representing the point midway between 1, 2 and 3, (1, 3, 9) representing the point midway between 1, 3 and 9, and so on:

pent_10_3

Now here are 10C4, 10C5 and 10C6 for the pentagon:

pent_10_4

pent_10_5

pent_10_6

You can also generate the points 5C4 = 5, then add them to the original five points and generate 10C4:

pent4_1

5C4


pent4_2

10C4


And here are 5C5, 6C5 and 12C5:

pent5

Here are 7C7 and 8C8, adding points as for 5C4:

hept7

octo8

And here is 12C6 using a dodecagon:

dodeca_6

And various nCr for dodecagons and other polygons:

various

This method can also be used to represent the partitions of n, or the number of sets whose members sum to n. The partitions of 5 are these:

(5), (4, 1), (3, 2), (3, 1, 1), (2, 2, 1), (2, 1, 1, 1), (1, 1, 1, 1, 1)

There are seven partitions, so p(5) = 7. Partitions start small and get very large, starting with p(1), p(2), p(3) and so on:

1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231, 297, 385, 490, 627, 792, 1002, 1255, 1575, 1958, 2436, 3010, 3718, 4565, 5604, 6842, 8349, 10143, 12310, 14883, 17977, 21637, 26015, 31185, 37338, 44583, 53174, 63261, 75175, 89134, 105558, 124754, 147273, 173525, 204226, 239943, 281589, 329931, 386155, 451276, 526823, 614154, 715220, 831820, 966467, 1121505, 1300156…

Suppose the partitions of n are treated as sets of points around a polygon with n vertices. Each set is then used to generate the point midway between its members. For example, (5, 4, 4, 2) is one partition of 15 and would represent the point midway between 5, 4, 4 and 2 of a pentadecagon. Here is a graphical representation of p(30):

partition30

Here are graphical representations for the partitions 5 to 15, then 15 to 60 in increments of 5 (15, 20, 25, etc):

partitions5_60

And here are some close-ups for the partitions of 35 and 40:

partitions40

The Hex Fractor

A regular hexagon can be divided into six equilateral triangles. An equilateral triangle can be divided into three more equilateral triangles and a regular hexagon. If you discard the three triangles and repeat, you create a fractal, like this:

hexring
Adjusting the sides of the internal hexagon creates new fractals:
hexring2
hexring1
Discarding a hexagon after each subdivision creates new shapes:

hexring4
hexring5
hexring6
And you can start with another regular polygon, divide it into triangles, then proceed with the hexagons:
hexring3

Solids and Shadows

Front cover of An Adventure in Multidimensional Space by Koji MiyazakiAn Adventure in Multidimensional Space: The Art and Geometry of Polygons, Polyhedra, and Polytopes, Koji Miyazaki (Wiley-Interscience 1987)

Two, three, four – or rather, two, three, ∞. Polygons are closed shapes in two dimensions (e.g., the square), polyhedra closed shapes in three dimensions (the cube), and polytopes closed shapes in four or more (the hypercube). You could spend a lifetime exploring any one of these geometries, but unless you take psychedelic drugs or brain-modification becomes much more advanced, you’ll be able to see only two of them: the geometries of polygons and polyhedra. Polytopes are beyond imagining but you can glimpse their shadows here – literally, because we can represent polytopes by the shadows they cast in 3-space or by the shadows of their shadows in 2-space.

An animated gif of a tesseract

A four-dimensional shape in two dimensions (see Tesseract)

Elsewhere Miyazaki doesn’t have to convey wonder and beauty by shadows: not only is this book full of beautiful shapes, it’s beautifully designed too and the way it alternates black-and-white pages with colour actually increases the power of both. It isn’t restricted to pure mathematics either: Miyazaki also looks at the modern and ancient art and architecture inspired by geometry, and at geometry in nature: the dodecahedral pollen of Gypsophilum elegans (Showy Baby’s-Breath), for example, and the tetrahedral seeds of the Water Chestnut (Trapa spp.), which the Japanese spies and assassins called the ninja used as natural caltrops. A regular tetrahedron always lies on a flat surface with a vertex facing directly upward, and when a pursued ninja scattered the sharply pointed tetrahedral seeds of the Water Chestnut, they were regular enough to injure “the soles of feet of his pursuers”.

Polyhedral plankton by Ernst Haeckel

Polyhedral plankton by Ernst Haeckel

The slightly odd English there is another example of what I like about this book, because it proves the parochialism of language and the universality of mathematics. Miyazaki’s mathematics, as far as I can tell, is flawless, like that of many other Japanese mathematicians, but his self-translated English occasionally isn’t. Japanese mathematics was highly developed before Japan fell under strong Western influence. It would continue to develop if the West disappeared tomorrow. Language is something we have to absorb intuitively from the particular culture we’re born into, but mathematics is learnt and isn’t tied to any particular culture. That’s why it’s accessible in the same way to minds everywhere in the world. Miyazaki’s pictures and prose are an extended proof of all that, and the book is actually more valuable because it was written by a Japanese speaker. I think it’s probably more attractively designed for the same reason: the skill with which the pictures have been selected and laid out reflects something characteristically Japanese. Elegance and simplicity perhaps sum it up, and elegance and simplicity are central to mathematics and some of the greatest art.

An animated gif of an 120-cell

Another four-dimensional shape in two dimensions (see 120-cell)