Tiling Histogram Results
Our project provides the results of numerical computations of the empirical distributions for the pair correlation, tiling point angles, and corresponding gap distributions of several well-known tilings of the plane. In particular, given the lattice points of a tiling, \(\mathbb{L}_n\), we use computations of numerical histogram plots to study the empirical statistical distributions corresponding to the (squared) pair correlation between points defined by $$(x_1-x_2)^2+(y_1-y_2)^2 \text{ for } x_i, y_i \in \mathbb{L}_n,$$ and the gap distributions $$\vartheta_{i+1} - \vartheta_{i} \text{ for } 1 \leq i < |\mathbb{L}_n| = N(R),$$ and $$s_{i+1}-s_i \text{ for } 1 \leq i < |\mathbb{L}_n|,$$ where \(\vartheta_1 < \vartheta_2 < \cdots < \vartheta_{N(R)}\) denote the angles of the tiling points and \(s_i := y_i / x_i\) denote the ordered slopes of the tiling points.
The project looks at the distributions of these statistics for both a fixed size tile that recurses inwards by repeated inflation / deflation / substitution operations, and also for a fixed dimension tiling that yields vertex points within some large radius R (e.g., the Pentagon tilings in the results below). We surmise that these two methods are equivalent.
The source code for the project is released under and open source license for non-commercial purposes. The program we provide contains implementations of many different tilings. The implementations of the tilings we provide in the program are easily extended in the python source code we provide with the program. Researchers and experimental mathematicians looking to compute other plots or numerically experiment with the tiling vertices we provide here are easily able to interface to our program in Sage and python. Please contact Maxie or Jayadev if you implement any new tiling variations so we can include that source within our program.
The program is run on the command line using the Sage command, or within the SageMathCloud terminal application as
sage -python tiling_pc_plots.py -t <TILING-NAME> -n <NUM_STEPS> [options],
where the optional command options are given by -q to compute pair correlation plots of the squared Euclidean distances between points, -a to compute angles of the tiling points, -d to compute the sorted angle gaps, -l to compute the tiling point slope histograms, and -g to compute the plots of the sorted slope gaps between tiling points. Alternately, a set of summary pdfs for a given tiling in the table below is generated by running the included script
$ ./generate-tiling-pdfs.sh <TILING-NAME> <NLOWER> <NUPPER>
on the Sage Cloud terminal or from a bash shell on Linux (requires pdfjam).
Tiling | Description | Tiling Images | Results | Source Code | CDF Demo * | Comments |
---|---|---|---|---|---|---|
AmmannA3 | The Ammann A3 tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | The dimensions for the Ammann A3 tiling are found in Tilings and Patterns by B. Grunbaum and G. C. Shephard (Second, Edition, 2016). Images of 3D-printed stacked blocks for the tiling can be found here and here. |
| |
AmmannA4 | The Ammann A4 tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | The dimensions (and see here) for the Ammann A4 tiling are found in Tilings and Patterns by B. Grunbaum and G. C. Shephard (Second, Edition, 2016). |
| |
AmmannChair | The Ammann A2 chair tiling whose dimensions are described at this link. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | The dimensions for the Ammann chair tiling are found in Tilings and Patterns by B. Grunbaum and G. C. Shephard (Second, Edition, 2016). Images of 3D-printed stacked blocks for the tiling can be found here and here. | |
AmmannChair2 | A second 4-tile variation of the chair tiling described in this paper for comparison with the Ammann A2 chair tiling results. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | cdf | ||
AmmannEightStar | Ammann-Beenker tiling for an initial 8-star tile. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
AmmannOctagon | Ammann-Beenker tiling for an initial octagonal tile. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
AmmannRhomb | Ammann-Beenker tiling for an initial rhomb tile. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
AmmannSquare | Ammann-Beenker tiling for an initial square tile. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
AmmannTriangle | Ammann-Beenker tiling for an initial triangular tile. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Armchair | A 4-tile L-shaped chair variant called the armchair tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Cesi | An implementation of Cesi's substitution tiling. This tiling provides an example where the tiles occur in infinitely many orientations. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Chair3 | The third (9-tile) chair tiling variant described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | cdf | ||
Danzer7Fold | The original variation of Danzer's 7-fold tiling which exhibits 7-fold symmetry. See also this related Danzer tiling variant. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
DiamondTriangle | The diamond triangle tiling which provides another example of a triangular-related substitution tiling for comparison with the results in the form below. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Domino | The domino tiling described here. See also this related domino tiling variant. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Domino-9Tile | The 9-tile domino tiling variant. This substitution tiling is related to the imbalanced orientations tiling and is implemented similarly by an extension of the python source for this example. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Equithirds | The equithirds tiling with triangle-shaped prototiles. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Fibonacci2D | The two-dimensional Fibonacci times Fibonacci tiling, which is the Cartesian product of two of the famous one-dimensional Fibonacci tilings. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
GoldenTriangle | The golden triangle tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | cdf | ||
GRTriangle | The golden rhomboid triangle tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
IntegerLattice | Implements an integer lattice in the first quadrant for testing purposes (\(1 < y < x \leq 350\)). | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
IntegerLattice3D | Implements an integer lattice in the first octant for testing purposes (\(0 < z < y < x \leq 125\)). | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
MiniTangram | A variant of the mini-tangram tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | cdf | ||
Octagonal1225 | The octagonal 1-2-2-5 tiling which answers a question posed by L. Danzer of whether there is a substitution tiling with substituion matrix entries of 1-2-2-5. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | We used the square root of the largest eigenvalue, \(1 + \sqrt{2}\), of the substitution matrix, [ [1, 2], [2, 5]], to determine the scaling / inflation factors for this tiling implementation. | |
PChairs | Another chair tiling variant called the pregnant chairs (variant) tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Penrose | The Penrose rhomb tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
PenroseKD | The Penrose kite-dart tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Pentagon1 | The first pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon2 | The second pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon3 | The third pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon4 | The fourth pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon5 | The fifth pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon8 | The eighth pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon10 | The tenth pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon11 | The eleventh pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
Pentagon15 | The fifteenth pentagon tiling from the demo described here. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | [link][sagews] | ||
Pentomino | A pentomino substitution tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Pinwheel | The pinwheel tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | link | ||
SaddleConnGoldenL | Statistics for saddle connections on the Golden L (see the gap distributions paper linked here). | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
SDHouse | The semi-detached house substitution tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Sphinx | The sphinx tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Squares | A periodic squares mock tiling for comparison. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
STPinwheel | A square triangle pinwheel tiling variant. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
T2000Triangle | The limit-periodic T2000 triangle tiling involving 30-120-30 triangular tiles. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Tetris | The first variant of the tetris substitution tiling in the Tilings Encyclopedia. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Triangles | A periodic triangle mock tiling for comparison. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
Trihex | A limit-periodic semi-hexagonal 30-60-90 triangular (trihex) tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
TriTriangle | The tri-triangle tiling with triangular prototiles. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | ||
TubingenTriangle | The Tubingen triangle tiling with two isoceles triangular-shaped prototiles with edge length ratio of \(\varphi\):1:\(\varphi\) and 1:\(\varphi\):1 where \(\varphi \approx 1.618\) denotes the golden ratio. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | See also this article for more information about the gap distributions of this and several other tilings. This Sage script is used to study the symmetry groups of the Tubingen triangle and its orbits under the Hecke \((2, 5, \infty)\) triangle group. | |
WaltonChair | The Walton chair tiling. | [angles] [angle gaps] [slopes] [slope gaps] [pc-edist] [pc-edistsq] | Python source | X | See this link for more information on the dimensions of this chair tiling variant. |
The numerical computations of the empirical distributions for these tilings we present in our findings above, and in our paper, only scratch the surface of comparisons that can be made between the underlying theoretical distributions for these (and related classes of) tilings. We encourage experiemental mathematicians to compare the results of our statistical and gap distributions plots using the form below. A few classes of related tilings implemented by our software are suggested as starting points: