An aperiodic tiling discovery
Much excitement last week with the publication by David Smith, Joseph Myers, Craig Kaplan and Chaim Goodman-Strauss of their discovery of a single tile which tiles aperiodically. Not only that but it does not need any supplementary rules, as Penrose's dart/kite pair do, to ensure aperiodicity. Christian Lawson-Perfect wrote about the story in aPeriodical. Later: There is now an excellent online talk by Craig and Chaim on the discovery and its proof hosted by the National Museum of Mathematics in New York.
The shape was discovered by David Smith, a hobbyist geometer. There is a wealth of research in David's blog, which starts with the declaration "I am not a mathematician but I do like shapes, interesting symmetry, polyhedra, tessellations and geometric patterns. " Skimming though it, one can see the deep exporation of shapes which makes his discovery seem almost inevitable. I plan to read more of his blog for inspiration. Well done ye, David!
The mathematical work of proving that the tile is aperiodic is a masterful exercise, clearly explained. A truly inspiring collaboration between a tinkerer, acedemic mathematicians and computer scientists.
OpenSCAD
Naturally I had a look at this with my OpenSCAD tiling tools.
tl:dr: A customizer on Thingiverse.allows both kinds of tiles in normal or mirror forms and all intermediate tiles to be printed or laser-cut.
I began by defining the perimeter as a sequence of sides each defined by side length and interior angle taken from the diagram, where we see up of 16 right triangular segments ( 8 kites) of adjacent hexagons. In this formulation, r is the long side of the triangle, a and b the other sides.
function hat_peri(r) =
// r is the radius of the base hexagon
// returns perimeter as a sequence of [side length,internal angle]
let (a = r * sin(60), b = r*cos(60) )
[[b,180],[b,120],[b,270],[a,120],[a,90],[b,120],[b,270],[a,120],
[a,90],[b,240],[b,90],[a,240],[a,90],[b,120]];
The first two sides form a straight line but for the purposes of tiling are distinct edges.
The perimeter is converted to a sequence of points using turtle-like geometry:
function peri_to_points(peri,pos=[0,0],dir=0,i=0) =
i == len(peri)
? [pos]
: let(side = peri[i])
let (distance = side[0])
let (newpos = pos + distance* [cos(dir), sin(dir)])
let (angle = side[1])
let (newdir = dir + (180 - angle))
concat([pos],peri_to_points(peri,newpos,newdir,i+1))
;
Tiling with this shape requires the use of the mirror image of the base tile:
function reverse(l) =
[for (i=[1:len(l)]) l[len(l)-i]];
function mirror_peri(q) =
let(p=reverse(q))
[for (i=[0:len(p)-1])
[p[ (i - 1 + len(p) ) %len(p)].x,p[i].y]
];
[This is a bit of a pity. Penrose's tiles are symmetric so the question doesnt arise but the search continues for a monotiling which does not require the use of reflections.]
My library of OpenSCAD functions supports the creation of tilings by defining a sequence of edge-to-edge placements. ATM this list is created manually. Each line specifies the alignment of one of the base tiles and edge to a tile and edge in the assembly.
hat_assembly_6 = [
[[0,0]]
,[[0,0],[0,1]]
,[[0,5],[0,2]]
,[[0,3],[0,4]]
,[[0,13],[0,6]]
,[[1,1],[0,9]]
,[[0,7],[0,12]]
];
module hat_tile_6(d) {
p = hat_peri (10,d);
t=peri_to_points(p);
m=peri_to_points(mirror(p));
unit=group_tiles([t,m],hat_assembly_6);
fill_tiles(unit,["red","green","blue","yellow","pink","black","coral"]);
}
Parametric tiles
More amazingly still, this tile turns out to be one of a family of aperiodic tiles, which in the limit are simple periodic tiles. They are beautifully animated here. The parametric perimeter description enables all members of this family to be constructed:
function hat_peri_family(r,d) =
// r is the radius of the base hexagon
// d is the angle which varies from 0 to 90
// returns perimeter as a sequence of [side,internal angle]
let (a = r * sin(d), b = r * cos(d) )
[[b,180],[b,120],[b,270],[a,120],[a,90],[b,120],[b,270],[a,120],
[a,90],[b,240],[b,90],[a,240],[a,90],[b,120]]);
At the limits , the tiles tesselate:
d=0 (nicknamed the comet)
d=45
d=90 (nicknamed the chevron)
All the tiles inbetween are aperiodic:
The Turtle
David also discovered a second tile he called the turtle. Defined as a perimeter, this also has 14 sides and is a family of tiles:
function turtle_peri(r,d) =
// r is the radius of the base hexagon
// returns perimeter as a sequence of [side,internal angle]
let (a = r * sin(d), b = r * cos(d) )
[[a,240],[a,90],[b,240],[b,90],[a,120],[a,180],[a,120],[a,270],[b,120],[b,90],[a,120],[a,270],[b,120],[b,90]];
d=60
The periodic endpoints d=0 and d=90 are the same as for the hat.
This is a small section of a tiling in David's blog:
No mirroed tiles in this example.
turtle_assembly_6 = [
[[0,0]]
,[[0,12],[0,13]]
,[[0,13],[0,2]]
,[[0,5],[0,6]]
,[[0,4],[0,7]]
,[[0,5],[0,10]]
,[[0,10],[0,11]]
];
To do
I'd like to add a couple of the suggested decorations.
A big task is to automate the tile placement to construct an assembly. Craig's software does this so I dont expect it to be easy! The approach I'd like to explore (perhaps it's the obvious appraoch?) is to start with the perimeter description of the base tile and extend this as each tile is added. The next tile can be placed by matching a subsequence of the tile perimeter to a subsequence of the expanding perimeter. Bit complicated to ensure that such a match will result in a fit especially with concave shapes.
Further
Veritasium has a nice youtube on the background to aperiodic tiling
Jaap Scherphuis created the PolyForm Puzzle software which was used by David in his explorations.
7 notes
·
View notes
Delta Scroll saw
I bought a scroll saw from the Hackspace where it was surplus equipment. There were two in an auction, both quite old and litlle used. I won one of them for £15 and chose the Delta model since it was the heavier and had a dust blower.
The model is 40-430, single speed. There is a manual for it on-line https://www.manualslib.com/manual/590720/Delta-40-530.html
The machine takes pinless blades of which I already had a few. Pinless blades are finer and come in greater variety than pined blades, which are faster to change. There is a custom tool for blade changing, with a long 4mm Allen key attached to a bar which slots into a hole on the blade holder, setting the key in the right position and locking the hinged holder. It was missing and its fiddly to change blades without, so I need to make a substitute.
Surprisingly the blower works - online advice says the bellows is usually perished.The connecting tube is stiff and should realy be replaced.
At first the machine was very rattley until I realized the the three bolts put though the holes in base were only needed if the machine was going to be permanently fixed to a bench. Much better without and its heavy enough to be stable although it would be better with rubber feet.
Once I'd attached a blade and got the tensioning right, I turned it on and it cut fine and true.
The saw was very dusty and hadn't been used in a while. I took it apart, happy to find all fittings were metric.
A few jobs to do:
free up the table so it tilts
lubricate the pivot bolts
remove the rusty table, sand and polish with wax
(x)replace gnarled cover screws
(x)replace worn blade holder socket head bolts
make the blade change tool with long hex 4mm tool (x) and 5mm threaded (x) bar with 3D-printed spacers
add rubber feet 12mm hole eg https://www.ebay.co.uk/itm/133246278952
x Bits ordered 28/01 £12.50
Blade change tool
I designed a spacer in OpenSCAD to align the long Allen key and a threaded guide bar with M5 nuts to hold it in place. Took a few iterations to get the sizing right but it works fine with three spacers, using lock nuts to fix the spacers in place. The OpenSCAD and STL files are on Thingiverse https://www.thingiverse.com/thing:6460819
Anti-vibration feet
Commercial mounts are surprisingly expensive so I made my own. I had a lot of large tap washers in stock so I made up a stack of one dished and two flat washers below the base, two more flat washers and a metal washer above the base, held together with an M8 coach bolt and nut. This works very well and the saw runs pretty quitely now.
The table
I sanded and oiled the table and it's much improved. Car polish is recommended so I'll do that.
Tilt lock handle
Now that the table has been freed up, the locking mechanism comes into play. It is an M6 bolt with a handle moulded onto it, but the moulding has failed so it can't be fully tightened. Fortunately, it also takes a 3mm Allen key and doesnt need to be adjusted quickly.
Looking better
1 note
·
View note