A rosette in a roman mosaic is an exponential transform of a periodic tiling

In the depot of the museum of Avenches (Switzerland) lies this interesting fragment of a large roman mosaic :You see immediately that this is a rosette with rotational symmetry, except for the fruit at the center. Looking closer we see an additional symmetry. The black and white shapes are all similar. They grow exponentially in size, going away from the center.

An inverse transformation of this image with the complex exponential function exp(x+i*y)=exp(x)*(cos(y)+i*sin(y)) results in :The rosette becomes now a vertical strip with a periodic image. The periodicities in x- and y-direction correspond to radial and azimutal motions in the rosette. The rosette is thus an exponential transform of a periodic tiling. Note the high precision of the design of the mosaic.

 

 

Posted in Anamorphosis, Tilings | Tagged , , | Leave a comment

Fractal tiling of a sphere with octahedral two-colour symmetry

The octahedron can have a nice two-colour symmetry. We get it from putting two tetrahedrons together, making a stellated octahedron. It is an eight-pointed star and has already been discussed by Pacioli in his book “de divina proportione” in the 16th century. Leonardo da Vinci did the drawings for this book. Here is his image for the stellated octahedron with some additional colouring:

Drawing of the stellated octahedron by Leonardo da Vinci with additional colouring.

One of the tetrahedrons is coloured green and the other blue to show you how they are put together. You can see that each point of the star is surrounded by points of the other colour. The points are obviously smaller tetrahedrons. Cutting them away you get an octahedron. Give its sides the same colours as the points you have cut away from them. Then, the octahedron has a two-colour symmetry as a green triangle side now shares its edges only with blue triangles, and vice versa. Can we use inversion in circles and reflection at straight lines to obtain a spherical tiling with a similar two-colour symmetry?

We start with a spherical triangle that generates a tiling of the sphere with tetrahedral symmetry using reflection at its sides. It has an angle of 90 degrees and two angles of 60 degrees, which makes it isosceles. We add an inverting circle that crosses the two legs of the triangle at angles of 60 degrees and touches the hypothenuse. Then, multiple reflections at these elements gives us this:

Fractal tiling with two-colour symmetry obtained from multiple reflection at the yellow circles and lines. The dotted line shows the projection of the equator of a matching sphere.

Here, the triangle and circle are shown in yellow. You can see that the right angle of the basic triangle lies at the center of the image. The additional circle covers most of it, except for two small triangles. Multiple reflection at these four elements maps every point of the plane into one of these small triangles, which is discussed more in detail in “Fractal Images from Multiple Inversion in Circles”. In this image I have used green colours for points that get mapped to one triangle and blue colours for points that go to the other one.

The entire plane is covered by blue and green discs. They are Poincaré representations of hyperbolic space tiled by images of these triangles. Every disc touches only discs of the other colour and none of the same colour. Two green and two blue discs can form a closed chain with a gap inside. The gap contains two green and two blue discs that touch its sides. Together with the surrounding four discs we get five chains of discs and five gaps,  which again will contain four discs. Thus arises a fractal self-similar structure with a two colour symmetry, as a rotation by 90 degrees exchanges green and blue colours.

The octahedral symmetry becomes obvious if we make an inverse stereographic projection to a sphere. Its equator is shown in the image above as a dotted yellow line. Matching two input images to the two tiling triangles we get a fractal kaleidoscopic image, such as this one:

Sphere with a kaleidoscopic decoration of octahedral two-colour symmetry.

On this hemisphere you see four large discs. Their borders are incircles of the triangular sides of an octahedron with two-colour symmetry. The gaps in-between are filled by images of these circles, making a fractal decoration of the sphere with octahedral two-colour symmetry. The opposite hemisphere looks alike except for an exchange of the blue and green discs.

This is an especially symmetric result of multiple reflections. But it is quite similar to other less symmetric configurations of the reflecting elements. You can create similar images with my public browser app at http://geometricolor.ch/circleInTriangle.html and GIMP.

Posted in Fractals, Kaleidoscopes, Self-similarity, Tilings | Tagged , , , , | Leave a comment

A fractal tiling of both octahedral and icosahedral symmetry

I want to show you a fractal tiling which can be seen as a decoration of a sphere with octahedral symmetry and at the same time as another decoration of a sphere with icosahedral symmetry. It arises as the limit set of a dihedral group and inversion in two circles. You can reproduce these results with my public browser app at http://geometricolor.ch/circleInTriangle.html. The basic setup is shown in figure 1.

Figure 1, upper and lower part:
The black lines are the reflecting elements that generate the tiling. The yellow regions are the target of the iterated reflections.

In both parts of figure 1 two straight lines meet at an angle of 60 degrees. Reflections at these pairs of lines generate a dihedral group with three fold rotational symmetry. In the upper part, a circle arc of large radius intersects the lines at angles of 90 and 45 degrees. This makes an elliptic triangle with a sum of angles of 195 degrees. Inversions at the circle arc together with the dihedral group create a tiling with octahedral symmetry. The additional smaller circle touches the circle arc and intersects the lines at angles of 90 and 36 degrees. This creates a very small elliptic triangle at the intersection of the straight lines, which is a reduced copy of the large triangle in the lower part of figure 1. On itself, it would create a tiling with icosahedral symmetry. The two circles and the horizontal straight line define a hyperbolic triangle. It is coloured yellow and has angles of 45 and 36 degrees and a corner with a vanishing angle. Reflections at its sides make a Poincaré disc representation of hyperbolic space tiled by images of this triangle. Note that the lower part of figure 1 is simply an inverted image of the upper part. The center of the inversion lies at the intersection of the two straight lines. This exchanges the angles of 36 and 45 degrees as well as the octahedral and icosahedral symmetries.

We use repeated inversion in the two circles and the elements of the dihedral group of the two straight lines to map any point into the hyperbolic triangle. Thus we get a fractal tiling of the plane by images of the Poincaré disc mentioned above. We can best see the structure of the tiling if we draw only the borders of the discs. To do this exactly would be very difficult, but it is easy to find an approximation. We simply highlight all pixels that need a large number of inversions to go into the hyperbolic triangle. These pixels lie near the border of Poincaré discs as their hyperbolic distance to the center of the disc diverges at the border and the number of inversions is related to this distance. Figures 2 and 3 show the result at different scales. We see an interesting recursive structure made of two different steps. In each step there are triangular gaps with vanishing corner angles. They are filled by several discs, which leaves smaller gaps to be filled in the next step. This is similar to the Apollonian gasket.

In one step, three discs are put into a gap. Together with the surrounding three discs they make a stereographic projection of circles inscribed on the sides of a cube. They touch each other:

Figure 2, recursive structure of the limit set (approximated by the white regions): Three discs fill the triangular region. This leaves smaller gaps, which are filled in as shown in figure 3. The yellow circle is the stereographic projection of a matching sphere.

This step is followed by putting nine discs in each gap. Together with the surrounding three discs they are a stereographic projection of circles drawn on the sides of a dodecahedron. Again, they are touching:

Figure 3: As figure 2, but with nine discs filling the triangular gap. The gaps between these discs are filled as shown in figure 2.

We can now make inverse stereographic projections to spheres. From Figure 2 we get a decoration with octahedral symmetry:

Figure 4: Fractal decoration of a sphere with octahedral symmetry resulting from an inverse stereographic projection of figure 2.. The upper hemisphere is shown in yellow and the lower hemisphere in dark blue.

Here I have used different colours to distinguish the upper and lower hemispheres. Figure 3 gives a decoration with icosahedral symmetry:

Figure 5: As figure 4, but with icosahedral symmetry resulting from an inverse stereographic projection of figure 3.

Although the two spheres have different decorations they show the same fractal covering of the plane.

Posted in Fractals, Tilings | Tagged , , , , , | Leave a comment

A variant of the Apollonian gasket with icosahedral symmetry

We modify the Apollonian gasket presented in the earlier post Apollonian gasket as a spherical fractal with tetrahedral symmetry. In an icosahedron, five triangles meet at their corners, which gives us a fivefold rotational symmetry. At the centers of the triangles we have a threefold rotational symmetry and at the middle of their edges a twofold one. The corresponding kaleidoscopic triangle thus has corner angles of 36, 60 and 9’0 degrees. Their sum is 186 degrees, just enough to make the triangle elliptic. Multiple reflection at the sides of this triangle makes a stereographic projection of a sphere with an icosahedral tiling :

Spherical tiling with icosahedral symmetry generated by reflections at the blue lines and circle shown in stereographic projection. The dashed line marks the projection of the equator.

Adding an inverting circle we get a fractal. It is a decoration of the icosahedral tiling :

Icosahedral fractal, shown in black, resulting from reflection at two lines and two circles. It decorates the icosahedral tiling, which is shown in yellow. This is a stereographic projection.

The icosahedral symmetry becomes evident using an inverse stereographic projection to a sphere. The normal projections of the upper and lower hemispheres are the same, except for a rotation by 36 degrees. This is a view of the lower hemisphere :

Normal view of a hemisphere with an icosahedral tiling (yellow) decorated by a variant of the Apollonian gasket (black).

Drawing both hemispheres of the gasket together we get :

Superposition of both hemispheres of a variant of the Apollonian gasket with icosahedral symmetry.

You can see how they nicely fit together.

The stars of five-fold rotational symmetry contain small copies of themselves. This results from a recursive packing of discs, quite similar to the Apollonian gasket. But now it is based on ideal pentagons instead of triangles:

The five discs, shown in green, leave a gap in the shape of a pentagon. Putting fifteen discs, which are coloured blue, in this gap we get eleven gaps. They are again pentagons and are filled in the same way.

Posted in Kaleidoscopes, Self-similarity, Tilings | Tagged , , , , | Leave a comment

Apollonian gasket as a fractal in tiled hyperbolic space

Reading the fascinating book « Indra`s Pearls », written by David Mumford, Caroline Series and David Wright, you discover that the Apollonian gasket can be created by multiple inversions at four touching circles. Three of the circles are of equal size. The points lying outside these circles belong to two different regions. One lies in between the circles. It is a hyperbolic triangle with vanishing angles. The second region surrounds the circles and is an inverted image of the first region. It includes the point at infinity. We get a hyperbolic tiling of the plane by multiple inversion in these three circles. For each pixel we take its position and invert it at any circle if it lies inside. We repeat this until the position lies outside of all three circles. Then we colour the pixel depending on the number of reflections and its final position. We get this :

Blue colours : Poincaré disc representation of a tiled hyperbolic space. Yellow : Surrounding inverted disc. The generating circles are shown in black.

Here pixels that are mapped into the inner triangle get a light blue colour for an even number of reflections and a dark blue colour for an odd number. Pixels going to the outer inverted triangle are similarly coloured in light and dark yellow. In blue colours we see a Poincaré disc representation of tiled hyperbolic space inside an inverted disc of the same geometry in yellow colours.

We get a generator for the Apollonian gasket by adding a fourth circle inside the inner triangle. The fourth circle touches the three outer circles. Note that this cuts the inner triangle into three smaller triangles. Each of them has this additional circle as one of its sides and two of the three larger circles as other sides. Repeated inversion on the sides of one of the small triangles creates a Poincaré disc representation of tiled hyperbolic space similarly as for the figure above. Inversion in the three larger circles makes an inverted Poincaré disc, which is shown in blue in the above figure. By the way, this inverted disc is also neeeded for the tetrahedral symmetry of the Apollonian gasket. Thus we get four basic discs as building blocks. Inversion in all four circles generates infinitely many images of these discs. They cover the yellow disc of the above figure. It is important that the number of inversions becomes infinite at the border of each of these discs. Thus, we can approximate the Apollonian gasket by colouring those pixels that require many inversions. Superimposing on the image above we get :

Apollonian gasket shown in black. It is generated by inversion in the circles shown in green. Blue and yellow : Poincaré disc representations of tiled hyperbolic space generated by the three larger circles.

We see that the Apollonian gasket nicely fits the tiled space as each hyperbolic triangle is decorated by the same fractal triangle. By the way, these triangles have a close similarity to the Sierpinsky triangle. Note that the projection of hyperbolic space into the Euclidean drawing plane distorts the tiles and their decorations in the same way.

To see how the Apollonian gasket is composed of discs representing hyperbolic spaces, we can colour the pixels depending on the triangle its position gets mapped to and on the number of inversions used. Using red, green and blue for the inner triangles and yellow for the surrounding inverted one we get :

The Apollonian gasket as a covering of the plane with discs representing tiled hyperbolic space. Discs of the same colour are images of each other. White lines show the circles generating the gasket. Black pixels indicate the borders of the discs.

Note that discs touching each other never get the same colour. Discs of the same colour are inverted images of each other. Their tilings are all the same and they only appear to be different. That’s because of the inversion mapping.

The Cayley transform changes the Poincaré disc into a Poincaré plane representation of hyperbolic space. Actually, an inversion in a circle that has its center on the border of the gasket gives an equivalent result. Applying it to the figure that superimposes the gasket and the embedding hyperbolic space, we get :

Poincaré plane representation of hyperbolic space decorated with an Apollonian gasket.

The triangles of the tiling again match the Apollonian gasket. In comparison, their sizes vary much stronger than in the figure above. Thus, at first sight the decorations of the tiles seem to be different. But this is only an effect of their different sizes. Because of the fractal nature of the gasket we see more or less details resulting in a different appearance. Again, we can show the discs of the gasket in more detail :

Poincaré plane representation of an Apollonian gasket made of discs and two planes representing tiled hyperbolic space.

Note that in this image we see the gasket as a periodic frieze resulting from mirror images in two vertical lines and inversions in a string of touching circles.

I conclude that the Apollonian gasket is a fractal covering of a tiled hyperbolic space by Poincaré disc representations of hyperbolic space. But this is only one of its many faces.

Posted in Fractals, Kaleidoscopes, Tilings | Tagged , , , , | Leave a comment

Apollonian gasket as a spherical fractal with tetrahedral symmetry

Before discussing the relation between the Apollonian gasket and tilings of the sphere, I want to present briefly the spherical kaleidoscope with tetrahedral symmetry.

A tetrahedron has three different kinds of points with rotational symmetry. Four equilateral triangles make up the tetrahedron. It has three-fold rotational symmetry with respect to the points lying at the center of triangles. Another set of points with the same rotational symmetry is made of the points at the corners of the triangles, where three triangles meet. Points of two-fold rotational symmetry lie in the middle of the sides of the triangles.

Note that reflections in two mirrors that intersect at an angle of 180/n degrees result in an n-fold rotational symmetry. Thus, a kaleidoscope with three planar mirrors makes an image with tetrahedral symmetry if its angles between the mirrors are 90 degrees and twice 60 degrees. These mirrors are not parallel, instead they make up a pyramid. To create a two-dimensional image with these symmetries, we replace the mirrors by mirror lines and the kaleidoscope becomes a triangle. However, the sum of its angles is 210 degrees. This is larger than 180 degrees and thus it is a spherical triangle. At least one of its sides has then to be a circle arc instead of a straight line.

To get the kaleidoscopic image we repeatedly mirror the position of a pixel at straight lines and invert it at circle arcs until it lies inside the kaleidoscopic triangle. The colour of the pixel can depend on the number of reflections and on its final position. A typical result for the tiling generated by the kaleidoscope looks like this :

Stereoscopic projection of the spherical tiling with tetrahedral symmetry.

The solid black lines mark the kaleidoscopic triangle. To show the structure of the tiling I coloured pixels already lying inside the triangle in light yellow. Pixels needing an even number of reflections to get into the triangle are shown in primary yellow and dark yellow shows those with an odd number. Here you can see how images of the kaleidoscopic triangle are put together to cover the entire plane. Isn’t it surprising that the triangles have such different shapes and sizes ? Shouldn’t they all be equal ?

What you actually see is a stereographic projection of the tiled sphere. This projection causes strong distortions. The tiled sphere can better be recognized in a normal projection. To show this, we first make an inverse stereographic projection from the plane to the sphere. The dashed line in the figure above shows the equator of the sphere. Its inside gets projected to the lower hemisphere with the south pole at its center. The south pole corresponds to the intersection point of the straight lines. The outside of this circle goes to the upper hemisphere having the north pole at its center. Stereographic projection maps the north pole to infinity in the plane. We now see that all triangles of the tiling have really the same shape :

Normal projection of the tiled sphere. Lower hemisphere at left, upper at the right. Both as seen from above.

These images are somewhat underwhelming and we do not even see any difference between the points of three-fold rotational symmetry! We get more interesting kaleidoscopic images from patching a part of a photography on the triangles. For each output pixel we simply read the colour of the input photography at the mapped position of the pixel position inside the kaleidoscopic triangle. This is an example :

Stereographic projection of a sphere covered by a kaleidoscopic image with tetrahedral symmetry. Solid white lines show the kaleidoscopic triangle. The dashed line is the projected equator.

We now see a difference between the two kinds of points with three-fold rotational symmetry. Some points lie inside a grey shape and the other points lie inside a dark brown shape. The distortion of the stereographic projection appears to be even more pronounced in this image. Again, the normal projections of the decorated sphere show the symmetries and equivalencies much better :

Normal projection of the sphere with a kaleidoscopic image. Lower hemisphere at left, upper at the right. Both as seen from above.

The Apollonian gasket too is a decoration of the tiled sphere. It results from multiple reflection similar to the tetrahedral tiling. Adding a circle to the kaleidoscopic triangle we get :

Stereographic projection of the tiled sphere together with an Apollonian gasket. Solid green lines show the generating elements. The dotted line is a projection of the equator.

Now, reflections at the two lines and two circles are repeated until a point gets mapped into the small triangle made of two circles and one straight line. This triangle has two angles of 60 degrees and an angle of 0 degrees. It is a hyperbolic triangle, because the sum of its angles is less than 180 degrees. On itself, it would only create a Poincaré disc representation of a tiled hyperbolic space. All four reflecting elements together make a fractal covering of the entire plane by non-overlapping images of this disc. The image above shows essentially the borders of those discs superimposed on the tetrahedral tiling. I am using that the number of reflections required to map a point into the kaleidoscopic triangle becomes infinite at the border of the discs. Thus pixels are shown in black if they require more than a certain number of reflections. This indicates the borders.

In normal projection we see the symmetry of the gasket much better:

Normal projection of the Apollonian gasket on a sphere. Lower hemisphere at left, upper at the right.

This view shows that each triangle really bears the same decoration.

We get more from these images if we relate them to the standard way of drawing the Apollonian gasket. It starts with a single circle. Then, three circles of equal radius are drawn inside this circle, touching each other and also the first circle. You can easily identify these four circles in the two figures above. Note that they all have the same size in the normal projection. Their centers lie on points of three-fold rotational symmetry. All these points lie in the grey shapes of the other kaleidoscopic image. One of these points is the north pole of the sphere and does not appear in the stereoscopic image. Note that there are four triangular gaps between the four circles. The all have the same size and shape in the normal projection. In a second step, a circle is drawn inside each of these gaps such that it touches its borders. The centers of these circles lie at other points of three-fold rotational symmetry. In the other kaleidoscopic image, they are in the center of the dark brown shapes. One of these points is the south pole of the lower hemisphere. These additional circles leave more gaps, which are filled again in the same manner. Repeating this procedure gives the same fractal decoration for all triangles of the tetrahedral tiling, as you can see in the images above.

We get a nice and instructive image if we draw the sphere as a black shadow with the Apollonian gasket in light colour. It shows how the two hemispheres fit together :

Normal projection of the Apollonian gasket. Lower hemisphere in pale blue and upper hemisphere in pale yellow.

To get another view of the Apollonian gasket we rotate the sphere, such that a point of two-fold rotational symmetry lies at the north pole and another one at the south pole. This results in an Apollonian gasket, that looks like a fractal decoration of an Euclidean frieze :

Stereographic projection of the rotated tiled sphere together with an Apollonian gasket.

This periodic repetition is an effect of the distorting stereographic projection. Note that the parallel lines and the periodicity do not match the tiling of the sphere. In the normal projection we see that the sphere is really only rotated :

Normal projection of the Apollonian gasket on a sphere. Lower hemisphere at left and upper at the right.

The combined view shows that now the upper and lower hemispheres have the same decoration up to a rotation by 90 degrees :

Normal projection of the Apollonian gasket. Lower hemisphere in pale blue and upper hemisphere in pale yellow.

I have made all these images using my public browser app at http://geometricolor.ch/circleInTriangle.html and with a little help of GIMP. Try out this browser app. It allows you to zoom into the gasket without limits, except for computer time. In this blog and on http://geometricolor.ch/home.html you find more information on kaleidoscopes.

Posted in Anamorphosis, Fractals, Kaleidoscopes, Tilings | Tagged , , , , , | Leave a comment

waves – a browser app for creating quasiperiodic wallpapers

I have made a browser app that lets you create quasiperiodic wallpapers. You find it at http://geometricolor.ch/waves.html . It uses a symmetric superposition of waves as proposed by Frank Farris and presented by Erica Klarreich in the Quantamagazin in “How to Make Impossible Wallpaper“. Christoph Pöppe is writing about this idea in a forthcoming article for the Spektrum der Wissenschaft. To make the app easy to use, I have only included a few of the possibilities presented in this blog. To make your own experiments and to modify the app you can use my Github repository https://github.com/PeterStampfli/images, in particular the current commit f260803. The code of other commits might be broken.

The app obtains the colour of a pixel of the symmetric image from its coordinates (x,y), which are transformed to new coordinates (X,Y). The app then takes the colour of an input image at the position (X,Y). Instead of using an input image, the app can directly show the structure of the waves by using the X-coordinate value for the green colour component and the Y-coordinate for the blue and red components of the pixel. For the transformations I used the most basic results from the general discussion of the post “Improved symmetric sum“. Note that the transformations are different for rotational symmetry of odd or even order.

For 5-fold rotational symmetry and rotational symmetry of higher odd order the app calculates the (X,Y) coordinates using

and

where m is an odd number, the order of the rotational symmetry. Only for m=3 we get periodic images.

Obviously, at the origin where (x,y)=(0,0) we get the transformed coordinates (X,Y)=(m,0). At the origin we have trivially a m-fold rotational symmetry. Going away from the origin the different waves first get out of sync, but sufficiently far away they get in phase again. This is similar to a Moiré pattern, see my earlier post “Quasiperiodic designs and moiré patterns“. Thus there are many points where X≈m and Y≈0. Around these points we get approximate m-fold rotational symmetry. They are distributed quasiperiodically. You can see this if you choose the 5-fold rotational symmetry in the app. This becomes more clear if you also switch on the additional tiling, which is the Penrose rhombus tiling for m=5. Note that the corners of the rhombs lie at points with approximate local 5-fold symmetry. Unfortunately, 7 and higher odd order rotational symmetries have more interfering waves and they get in phase again only at very long distances. Thus, the resulting images seem to be rather chaotic and it is nearly impossible to see their quasiperiodic structure. Thus I choose not to include them in the app.

For 8-fold and higher rotational symmetries of even order 2m, where m is an integer,  the app uses a similar equation for the transformed X-coordinate as for odd order:

Note that the cosine function is symmetric, cos(-x)=cos(x), which makes that we get a 2m-fold rotational symmetry from only m waves. But we cannot simply replace the cosine by a sine to get Y(x,y) because the sine function is antisymmetric, sin(-x)=-sin(x). This would destroy the symmetry. Instead, I choose the slightly more complicated equation

which too has 2m-fold rotational symmetry. Note that these waves are rotated with respect to the waves of X(x,y) by an angle of π/2m. The app uses these packages of symmetric waves to create quasiperiodic images of 8, 10 and 12-fold rotational symmetry. In all three cases you can see basic motives repeating with slight variations throughout the plane. There are many points with approximate local rotational symmetry. This becomes more clear if you choose to display the matching tilings. For 8-fold rotational symmetry the app displays a patch of the Ammann-Beenker tiling, for 10-fold rotational symmetry it shows only a rosette around the origin and for 12-fold rotational symmetry you see a tiling of rhombs, triangles and squares resulting from an iteration method presented earlier. Images with rotational symmetry of higher order again have a rather chaotic appearance and it is difficult to see that they are quasiperiodic. Thus they are not included in the app. However, you might want to do your own experiments with its code.

For rotational symmetries of even order 2m the app offers an additional two-color symmetry: Rotating (x,y) by an angle of π/m inverses the colours of the image. It uses the method presented in the post “Improved two-color symmetry upon rotation“. An additional function U(x,y) modifies the color. The output image pixel has the original colour of the input image if U is positive; and if U is negative then the colour is inverted. The equation for U is different for even or odd values of m as shown in “two-color rotational symmetry“. For odd m the app uses

and for even m

You can easily verify that rotating (x,y) by π/m inverts the sign of U. The transformation to (X,Y) uses the absolute value of U(x,y) for X(x,y) and the same form for Y(x,y) as for simple rotational symmetry without colour change.

You are welcome to do your own experiments with http://geometricolor.ch/waves.html. If you have any questions you can reach me at pestampf@gmail.com.

Posted in Quasiperiodic design, Tilings | Tagged , , , , | Leave a comment