Tiling diagnostics

What this page demonstrates. Every tile has a canonical id and a canonical frame, both functions of the tile itself rather than of the route the camera took to reach it. The frame is the lexicographically least element of the tile’s coset under its stabilizer Cm (m = frameSymmetry), computed in exact integer arithmetic, and the id is that frame’s tile center. So tile art may be fully asymmetric and may depend on the tile id, at any distance, and it will not move when you scroll.

How to check it by eye. Select asymmetric and color by id hash, then drag. Every tile then shows a single hooked stroke and a color of its own, so nothing can hide a tile that has been turned about its own center or handed a different name. Nothing may change discontinuously as the camera crosses a tile boundary. The self-checks below measure the same thing: check 9 isolates one boundary crossing to a hundredth of a pixel, and check 10 scrolls a full tile spacing in a hundred steps.

The default artwork is a pinwheel: one wedge of 2π/m carrying a curved blade and an off-axis dot, repeated m times by exact rotation. Being Cm-symmetric, it is precisely the motif that cannot reveal a frame rotation, so it is the control rather than the test.

The property to check by eye: a regular tiling is homogeneous, so however far you scroll, the picture should look exactly as it did at the origin. Use the distance buttons to jump hundreds of tiles out and compare. max|V| in the readout is the number that matters underneath: it must stay near 1 forever.

tiling
artwork
jump (tiles from here)
self-checks