I have decided to do something very stupid…

Trying to create a tiled surface of spectre aperiodic chiral monotiles, in code. Generating svg…

I sure others have, but trying to solve it myself.

I am pondering a coordinate system that is a sum of integer multiples of 0.5 plus integer multiples of sin60.

https://en.wikipedia.org/wiki/Einstein_problem#/media/File%3AMonotilePolygon.svg

Einstein problem - Wikipedia

OK I cannot simply place tiles randomly touching existing tiles as they can leave non tile shaped gaps.

I have to work out allowed ways to place tiles somehow.

Back to drawing board.

@revk I know you're working it out for yourself, but if you get stuck, Simon Tatham (@simontatham) has written in detail about some of the algorithms used for aperiodic tilings on his home page: https://www.chiark.greenend.org.uk/~sgtatham/
Simon Tatham's Home Page

@darkling @simontatham All good, until I get to this - until now all angles multiples of 30 degrees, so easy to make a sort of complex int*sin60+int*cos60 system, but this appears to be 15 degrees. Arrrg!

@revk @darkling only because I rotated the Spectre to that angle for aesthetic purposes, so that it was possible to have a Spectre with its head pointing directly upwards.

All the edges in a Spectre tiling are at angles that are multiples of 30° relative to each other. In that picture I show them at odd multiples of 15°, but you can make them even multiples just as easily.

Sorry – it hadn't occurred to me that that would be confusing!

@simontatham @darkling OK I'll see if this is a simple misunderstanding then, sorry.

Thanks for commenting. That means I may be able to get the hang of it...

Close to having code to make this myself.

Stupid question, how do I work out the actual orientation of these mappings from that, sorry to be thick. I see the origin mapping point.

Oh, and struggling to map the spectre unit length to length between hex meta tiles.

@revk @darkling "how do I work out the actual orientation of these mappings" – you mean the relative orientation of the hexagon and the Spectre? There is no right orientation. It doesn't matter at all. You can choose any relative orientation you like.

The same goes for the mapping between lengths in the hexagon tiling and lengths in the Spectre tiling. Pick whatever you want. It won't matter.

With these combinatorial algorithms, the idea is that once you've finished implementing, the code never has to actually work out any coordinates or lengths in the hexagon tiling. For each Spectre tile, you store a sequence of its parent hexagons with child indices, but you never need to work out where in the plane those hexagons live, unless you actually want to plot them as an extra output diagram.

@simontatham @darkling OK I'll try and get my head around tomorrow.

But things do matter, if the lowest level has a unit length of 1mm for the tile, what is now the length between each next level meta tile. I do not see that in the paper, and obviously need to know to position tiles.

Same for orientation, if a meta tile has a tile - where exactly, and in what orientation, do I place that. If wrong, all the tiles will be rotated and not touch each other properly.

Sorry if I am being thick.

@simontatham @darkling This is coding, not putting tiles on a floor, so yes, I need to know these things 🙂