Site hosted by Angelfire.com: Build your free website today!

2-isohedral algorithm


I have developed a program to help study 2-isohedral, monohedral tilings. It is currently just a Java application - no applet yet. You choose the classification of tiling that you want, and the number of sides that you want, and it generates all tiles that might fit. It is also possible to specify how the edges will be split, the orientation between the tile groups, and the offset of the tile groups.

The program outputs:
the symmetry of the edges of the tile.
There are four choices:
0 - no symmetry
1 - line symmetry
2 - line and point symmetry (The result is a line segment)
3 - point symmetry

The pictures show some samples

Which edge this edge matches.
The edges are numbers consecutively starting from zero. Most of the time, edge shapes are repeated. The program gives the lowest edge shape that matches the current edge.

How the edge is mapped to the lowest edge shape.
This is used together with the previous information to see how the edge shapes match up. Again, there are 4 choices.
0 - The edge is rotated to match.
1 - The edge is reflected to match. (and rotated)
2 - The edge is turned inside out. (and rotated)
3 - The edge is reflected and turned inside out. (and rotated)

The pictures show some samples.

Sums of angles in degrees.
The angles refer to the angles between the edges. For example angle 2 is between edges 1 and 2. We will tell how many of that angle are added, with the final number being the sum. If only one angle number is nonzero, the sum shows what this angle must be. If one angle number is 1 and another is -1 with a sum of zero, this would imply that the angles are equal. I currently just do a simple Gaussian elimination on the matrix. It would be nice to make it more intelligent - choosing sums that were simpler.

The angles are the things that usually make the tile impossible. For example, if we have an angle of zero between edges that have the same length, the outer curve of the tile would intersect itself - making the tile impossible. If we had a sum that was nonzero, but all angle numbers were zero, this would also be impossible.

Examples:


A 2-anisohedral tile

The program outputs

Name: 6_4 6_4 - 1H 
orient: 0 offset: 2 
sum: 1 0 0 0 0 0 0 0 0
Edge Sym  3 3 3 3 3 3 
Which Edge  0 0 0 3 3 3 
Mapping  0 0 0 0 0 0
tileAngles
.1.0.0.1.0.1.360 
.0.2.0.0.0.1.360 
.0.0.1.0.0.-1.0 
.0.0.0.0.2.1.360 

The number and letter after the dash are part of the full topological classification explained by Delgado, Huson, and Zamorzaeva. The first three lines will identify which tiling this is, how the two transitivity classes are mapped to each other, and how the edges are split. The next lines tell about the tile shape.

Here the edge symmetry is all 3s. This means that all edges will be centro-symmetric. The edges match up with either edge 0 or edge 3 by direct mapping. This would look like this:

We can see that angles 1 and 4 are congruent. Also angles 2 and 5. Due to edges 0,1,2 being the same length, and 3,4,5 being the same length, we can see that angles 0 and 3 are congruent. By comparing the angles given, we can see that angles 0,1,3,4 must all be congruent. Angles 2 and 5 might be different. This leaves us with a equilateral hexagon formed by two isosceles trapezoids. This does in fact lead to a 2-isohedral tiling, and the tile is 2-anisohedral since it can't form any isohedral tiling. Below you can see how the tiling looks - with the two transitivity classes colored red and white.


An isohedral tile

Name: 6_4 6_4 – 1G 
orient: 0 offset: 2 
sum: 1 0 0 0 0
Edge Sym  2 3 3 2 3 3 
Which Edge  0 1 1 0 1 1 
Mapping  0 0 1 0 0 1
tileAngles
.2.0.0.0.0.1.360 
.0.2.0.0.0.1.360 
.0.0.-1.0.0.1.0 
.0.0.0.2.0.1.360 
.0.0.0.0.2.1.360 

Two of the edges have edge symmetry of 2. This means that they will be straight lines. The others are all centro-symmetric. The edges match up with either edge 0 or edge 1. This would look like this:

This shape can tile isohedrally. It fits the Conway Criteria.


An impossible tile

Name: 6_4 6_4 – 1L
orient: 0 offset: 0 
sum: 1 0 0 0 0 1 0
Edge Sym  3 3 0 3 3 0 3
Which Edge  0 0 2 0 0 2 0 
Mapping  0 0 0 0 0 3 0 
tileAngles
.1.0.0.0.0.0.0.180 
.0.1.0.0.0.0.0.180 
.0.0.1.0.0.0.1.360 
.0.0.0.1.0.1.0.180 
.0.0.0.0.1.0.0.0 

This is an impossible shape for a tile. Note by the final tileAngles line that angle 4 must be zero. This combined with the fact that edges 3 and 4 have the same length implies that the boundary of the tile must intersect itself.


The program starts with the edges that are defined by the boundaries between two tiles. We then choose to split these edges into a certain number of other edges. This makes it possible to have a tiling that is topologically formed by n-gons and m-gons for n not equal to m, but still have the tiling be monohedral.

Currently, I am looking though the lists of tiles. Many tiles can also tile isohedrally. Many tiles are impossible to create or tile with. Some tiles are 2-anisohedral. These last ones are the ones that interest me. I wish that there was some way to computerize the final steps in the process.

You can find the Java code here. You can find the tile starting information here. You can find a sample of many pages of output here.


This page designed by John Berglund.
You can reach me by email.