simon-git: tilings (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Wed Jun 12 19:53:17 BST 2024


TL;DR:
  d40beff Add a description of the Ammann-Beenker tiling.
  7998ae3 Add a transducer-capable version of HTPF.

Repository:     https://git.tartarus.org/simon/tilings.git
On the web:     https://git.tartarus.org/?p=simon/tilings.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2024-06-12 19:53:17

commit d40beff7025e4b67ff52e7ee52fbe3bb6a33ab03
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=d40beff7025e4b67ff52e7ee52fbe3bb6a33ab03;hp=644dae22c8d267782d6ff7fc5ac189bbe54a5f6c
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed Jun 12 19:44:10 2024 +0100

    Add a description of the Ammann-Beenker tiling.
    
    I ran across this on Wikipedia and didn't see any reason not to add it
    to the hoard. If nothing else, all tilings make good regression tests
    for any later attempts to tinker with the code.

 ammann-beenker.tl | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 toplevel.sage     |  1 +
 2 files changed, 66 insertions(+)

commit 7998ae3ea65610cc054386f7578cc7da9ee5c351
web diff https://git.tartarus.org/?p=simon/tilings.git;a=commitdiff;h=7998ae3ea65610cc054386f7578cc7da9ee5c351;hp=d40beff7025e4b67ff52e7ee52fbe3bb6a33ab03
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed Jun 12 19:45:02 2024 +0100

    Add a transducer-capable version of HTPF.
    
    I derived this by matching up the 10-hex system (which admits a
    transducer) to the HTPF system and seeing how they differed. This
    system is midway between the two, with the same shapes of tile as HTPF
    and an obvious mapping back to HTPF (more or less just forget the
    multiple types of H and F), and also an exact correspondence to
    10-hex (each of these tiles corresponds to a fixed cluster of hexes).
    
    In the same commit, I've modified the 10-hex system by further
    refining the set of edge types: the previous 'delta' edge is separated
    into two kinds which never meet each other. The new type 'DELTA' is
    used for precisely the joins where two hexes meet that together
    correspond to a P or F in the HTPF system. This demonstrates that any
    tiling of the plane with 10-hex hexes can be partitioned in a unique
    way into clusters corresponding to these tiles, and so can its
    supertile structure, with the two (or more) layers preserving their
    correspondence. Hence, any hat layout that 10-hex can generate, so can
    this, and hence (via the forgetful map) so can original HTPF.
    
    To convert in the other direction, starting from a layout of real
    HTPF, you'd need to find its metatile structure first, so that you
    could colour the Hs and Fs depending on their parent. Most of them can
    be done by looking only one level up: just knowing the parent tile
    type and this tile's position within it is enough to choose which
    colour it ought to be. The exceptions are:
    
     - an F that's child #0 of an H: you need to know the colour of the H
       in turn, which requires looking just one level further up to see if
       it's child #8 of another H
    
     - an F that's child #0 or #5 of another F: you might need to know the
       colour of the parent F, which in turn might require you to look
       further up until you run out of Fs and find a different kind of
       tile. Or, in an infinite supertile with an endless ascending chain
       of Fs, you might _never_ find an unambiguous right colour, and you
       might have to make a choice about which supertile you wanted it to
       be.
    
    Incidentally, the _layout_ change in this tiling isn't necessary to
    make the transducer work. You could put that part back to the way
    hats-htpf.tl has it, by using the old version of the meta-to-meta
    expansion of the 'orange' edge type, reinstating child #1 of the H
    tile (the same in both versions), and deleting children #1,#2 of T and
    child #5 of P. The result is still transducer-capable. But this way
    there's also a nice direct bijection with 10-hex.

 hat10.tl        |  25 ++++-
 hats-hhtpfff.tl | 306 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 toplevel.sage   |   1 +
 3 files changed, 327 insertions(+), 5 deletions(-)



More information about the tartarus-commits mailing list