Learning from the previous discussion (1)(2) about hat tiles, we can easily study other polygon tiles with similar idea by grow function, especially other relatives of the hat tile. Here we try to study the promising vertex configurations for “spectre tile”, which is notated as Tile(1,1) in the original paper while hat tile is
Tile(1,
3
)
. The reason will be shown later here.
Tile Family Introduction
The hat tile has three different length of edges - 1, 2 and
3
. In fact, there is only one edge of length 2, which is the longest edge of the hat tile. We can turn hat tile from 13-polygon into 14-polygon by splitting its longest edge into two on its middle point, which adds one more vertex with angle 1/2 (Pi). Then, two arguments of edge length can determine a shape of tile as following:
Out[]=
​
m
n
Ratio
m
n
=0.577367
And there is a family of this kind of tiles:
Out[]=
Tile(1,0)
Tile(1,0)
Tile1,
3

Tile1,
3

Tile(1,1)
Tile(1,1)
Tile
3
,1
Tile
3
,1
Tile(0,1)
Tile(0,1)
​
​
The Tile(1,0) and Tile(0,1) are degenerate since edge length zero causing some of the vertices merge together.
Tile(1,
3
)
is the hat tile and Tile(1,1) is the spectre. Additionally,
Tile(
3
,1)
is another interesting tile named “turtle”.
​
According to the original paper, Tile(1,1), which is the “spectre”, admits more vertex configurations since two equal length of edges. Permitting reflection, Tile(1,1) can tile the plane periodically or aperiodically, but if reflection is forbidden, it only admits aperiodic tilings.
​
Here we are going to study the vertex configurations of Tile(1,1) “Spectre” when reflected tiles are forbidden:
Basic Study
In[]:=
AppendTo[$Path,NotebookDirectory[]];​​Get["HappyTile.wl"]
The idea is the same as what we did to hat tiles in the previous discussion (1)(2). Here are the details:

1/3+1/3+1/3

In[]:=
oneThirdVertices
Out[]=
{2,4,6,12,14}
In[]:=
cases=Tuples[{oneThirdVertices,Range[0,11],oneThirdVertices}];
In[]:=
cases={{{0,0},0,False,#1},{{0,0},#2,False,#3}}&@@@cases;
res1=With[​​{​​res=PlanarPolygonFragmentation@@(spectre@@@({#1,#2}&@@#))​​},​​If[Total[Length/@res]==3,#,Nothing]​​]&/@cases;
In[]:=
res1//Length
Out[]=
77
In[]:=
pointToAngle = Association[​​ 1->{12,1,2,3,4,5,6,7,8},​​ 2->{2,3,4,5},​​ 3->{5,6,7},​​ 4->{7,8,9,10},​​ 5->{4,5,6,7,8,9,10,11,12},​​ 6->{6,7,8,9},​​ 7->{9,10,11},​​ 8->{7,8,9,10,11,12,1,2},​​ 9->{10,11,12},​​ 10->{8,9,10,11,12,1,2,3},​​ 11->{11,12,1},​​ 12->{1,2,3,4},​​ 13->{1,2,3,4,5,6},​​ 14->{3,4,5,6}​​];​​getPointsOccupation[tile_] := Mod[(1-2Boole[#2])(pointToAngle[#3]+#1)+7(Boole[#2]),12,1]&@@tile/;Length[tile]==3​​getPointsOccupation[tile_] := Mod[(1-2Boole[#2])(pointToAngle[#3]+#1)+7(Boole[#2]),12,1]&@@tile[[2;;]]/;Length[tile]==4
In[]:=
clusterPoints=Function[list,​​Block[{p},​​If[list==Range[12],​​{Range[12]},DeleteDuplicates[MapThread[Union,{Most[NestWhileList[Mod[#+1,12,1]&,#,MemberQ[list,#]&]]&/@list,Most[NestWhileList[Mod[#-1,12,1]&,#,MemberQ[list,#]&]]&/@list}],#1==#2&]]]];
In[]:=
res2=Select[res1,​​AllTrue[Length/@clusterPoints[Complement[Range[12],Union@@(getPointsOccupation/@#)]],#>=3&]&];
In[]:=
res3=Union[##,SameTest->(Sort[#1]Sort[#2]&)]&@@​​Outer[​​If[IntersectingQ[Union@@(getPointsOccupation/@#1),getPointsOccupation[#2]],Nothing,Append[#1,#2]]&,​​res2​​,​​Tuples[{{{0,0}},Range[0,11],{False},oneThirdVertices}],​​1​​];
In[]:=
res3//Length
Out[]=
112
AbsoluteTiming[​​res4=If[​​AllTrue[PlanarPolygonFragmentation@@@Subsets[spectre@@@#,{2}],Total[Length/@#]==3&],​​#,​​Nothing​​]&/@​​res3;​​]
Out[]=
{11.6624,Null}
In[]:=
res4//Length
Out[]=
20
In[]:=
res5=DeleteDuplicates[res4,MemberQ[Sort[Sort/@allRoatationsofTiles[#1[[All,2;;]]]],Sort[#2[[All,2;;]]]]&];
In[]:=
GraphicsGrid[Transpose[{show[#,step->{1,1}],show[#]}&/@res5],ImageSize->Full,Frame->{All,False}]
Out[]=
It’s the same as the result of hat tile.
In[]:=
Iconize[res5]
Out[]=
Head: List
Dimensions: {10,3,4}
Byte count: 7320
Uniconize
More Eliminations Details
Conclusion
Here is the conclusion summary, with reflection forbidden:
All of them show up in the tiling cluster, which means the elimination has been done completely.
CITE THIS NOTEBOOK
Spectre tiling: vertex configuration study​
by Bowen Ping​
Wolfram Community, STAFF PICKS, July 26, 2023
​https://community.wolfram.com/groups/-/m/t/2976698