We use de Bruijn’s multigrid method to construct aperiodic rhombic tilings in the plane exhibiting 7-fold rotational symmetry. A more detailed explanation of the construction method is warranted and a proper write-up is forthcoming. For now we present the code for generating the plots and make it available for other to use.

Aperiodic 7-Fold Tilings

In[]:=
Manipulate[​​Module[{gridShifts,range,gridCount,gridVectors,tileTypeGridIndices,tileTypeCount,tileTypeGridVectors,tileTypeAreas,tileTypeColors,gridLineNumbers,tileTypeGraphics,gridIndices,gridLineIntersectionPoints,tileCornerLatticeCoordinates,tileCornerVertices,gridVector1,gridVector2,tileVertices},​​gridShifts={γ1,γ2,γ3,γ4,γ5,γ6,γ7};​​gridCount=Length[gridShifts];​​(*preservetilingclass*)​​gridShifts=gridCount(gridShifts-Mean[gridShifts])+tilingClass;​​range=tileRange;​​gridVectors=CirclePoints[gridCount];​​gridVectors=gridVectors//N;​​tileTypeGridIndices=Subsets[Range[gridCount],{2}];​​tileTypeGridIndices=Select[tileTypeGridIndices,Function[Unequal[Chop[Det[N[gridVectors[[#]]]]],0]]];​​tileTypeCount=Length[tileTypeGridIndices];​​tileTypeGridVectors=gridVectors[[#]]&/@tileTypeGridIndices;​​tileTypeAreas=Abs[Map[Det,tileTypeGridVectors]];​​tileTypeColors=Map[Function[Blend[{tileColor1,tileColor2},#]],Rescale[Round[tileTypeAreas,10.^-10]]];​​gridLineNumbers=Table[Range[-range,range],gridCount];​​tileTypeGraphics=​​Table[​​gridIndices=tileTypeGridIndices[[tileTypeIndex]];​​gridLineIntersectionPoints=Dot[Transpose[Transpose[Tuples[gridLineNumbers[[gridIndices]]]]-gridShifts[[gridIndices]]],Transpose[Inverse[gridVectors[[gridIndices]]]]];​​tileCornerLatticeCoordinates=Transpose[Ceiling[Dot[gridVectors,Transpose[gridLineIntersectionPoints]]+gridShifts]];​​tileCornerLatticeCoordinates[[All,gridIndices]]=Tuples[gridLineNumbers[[gridIndices]]];​​tileCornerVertices=Dot[Transpose[Transpose[tileCornerLatticeCoordinates]-gridShifts],gridVectors];​​{gridVector1,gridVector2}=gridVectors[[gridIndices]];​​tileVertices=Transpose[{tileCornerVertices,(tileCornerVertices+gridVector1),(tileCornerVertices+gridVector1+gridVector2),(tileCornerVertices+gridVector2)}];​​{FaceForm[tileTypeColors[[tileTypeIndex]]],Polygon[tileVertices]}​​,{tileTypeIndex,tileTypeCount}​​];​​Graphics[{EdgeForm[Opacity[edgeOpacity]],tileTypeGraphics},PlotRange->plotRange,ImageSize->400]​​]​​​​,{{tilingClass,0.5},0,1}​​,{{γ1,0.0},0,1}​​,{{γ2,0.0},0,1}​​,{{γ3,0.0},0,1}​​,{{γ4,0.0},0,1}​​,{{γ5,0.0},0,1}​​,{{γ6,0.0},0,1}​​,{{γ7,0.0},0,1}​​,Delimiter​​,{{edgeOpacity,.2},0,1}​​,{tileColor1,GrayLevel[.3]}​​,{tileColor2,GrayLevel[.9]}​​,{{tileRange,7},1,30,1}​​,{{plotRange,20},5,30}​​,ControlPlacement->Top​​,TrackedSymbols:>{tilingClass,γ1,γ2,γ3,γ4,γ5,γ6,γ7,edgeOpacity,tileColor1,tileColor2,tileRange,plotRange}​​,SaveDefinitions->False​​]
Out[]=
​
tilingClass
γ1
γ2
γ3
γ4
γ5
γ6
γ7
edgeOpacity
tileColor1
tileColor2
tileRange
plotRange

CITE THIS NOTEBOOK

Aperiodic rhombic tilings with 7-fold rotational symmetry​
by Dugan Hammock​
Wolfram Community, STAFF PICKS, August 17, 2023
​https://community.wolfram.com/groups/-/m/t/2992328