eternity_hexity


eternity_hexity, a MATLAB code which evaluates and manipulates a six-fold parity quantity associated with grids and tiles used in the Eternity puzzle.

The Eternity puzzle can be regarded as being composed of hexagons that have been split into 12 triangles that march counterclockwise like the hours on a clock face. We number these triangles 1, -6, 2, -5, 3, -4, 4, -3, 5, -2, 6, -1. In this way, each pair of triangles with positive and negative labels are reflections up and down. Each 60 degree clockwise rotation moves from a triangle with given label to a corresponding triangle whose label has increased by 1, although labels wrap around after reaching 6.

Any Eternity object, such as the entire grid, or an tile, and given a fixed position relative to the hexagon grid, has a "hexity" vector, which counts the number of triangular elements of labels 1 through 6, and -6 through -1. The hexity vector changes if the object is reflected or rotated, and these changes can be computed directly from the hexity vector itself and the specification of whether a reflection was applied, and how many 60 degree rotations were performed.

In a tiling problem, a grid must be covered by tiles which have been reflected and rotated from some standard starting position. It should be obvious that the hexity of the grid must equal the sum of the hexities of the reflected, rotated tiles that constitute a tiling. The specification of these 12 hexity constraints can be used to eliminate certain tile configurations without the necessity of specifying a specific translation as well.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

eternity_hexity is available in a MATLAB version.

Related Data and Programs:

eternity_hexity_test

boat, a MATLAB code which considers the boat tiling puzzle, a smaller version of the eternity puzzle. The boat puzzle specifies a region R composed of 756 30-60-90 triangles, and a set of 21 "tiles", each consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

boomerang, a MATLAB code which considers the boomerang tiling puzzle, a smaller version of the eternity puzzle. The puzzle specifies a region R composed of 2376 30-60-90 triangles, and a set of 66 "tiles", each consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

boundary_word_drafter, a MATLAB code which describes the outline of an object on a grid of drafters, or 30-60-90 triangles, using a string of symbols that represent the sequence of steps tracing out the boundary.

eternity, a MATLAB code which considers the eternity puzzle, which considers an irregular dodecagon shape that is to be tiled by 209 distinct pieces, each formed by 36 contiguous 30-60-90 triangles, known as polydrafters.

eternity_tile, a MATLAB code which considers the individual tiles of the eternity puzzle, 209 distinct pieces, each formed by 36 contiguous 30-60-90 triangles, known as polydrafters.

pram, a MATLAB code which considers the pram puzzle, a smaller version of the eternity puzzle. The pram puzzle specifies a region R composed of 2304 30-60-90 triangles, and a set of 64 "tiles", consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

serenity, a MATLAB code which considers the serenity puzzle, a smaller version of the eternity puzzle. The serenity puzzle specifies a dodecagonal region R composed of 288 30-60-90 triangles, and a set of 8 "tiles", each consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

tortoise, a MATLAB code which considers the tortoise tiling puzzle, a smaller version of the eternity puzzle. The tortoise puzzle specifies a region R composed of 1620 30-60-90 triangles, and a set of 45 "tiles", each consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

trinity, a MATLAB code which considers the trinity puzzle, a smaller version of the eternity puzzle. The trinity puzzle specifies a region R composed of 144 30-60-90 triangles, and a set of 4 "tiles", T1, T2, T3 and T4, each consisting of 36 30-60-90 triangles, and seeks an arrangement of the four tiles that exactly covers the region.

whale, a MATLAB code which considers the whale tiling puzzle, a smaller version of the eternity puzzle. The whale puzzle specifies a region R composed of 288 30-60-90 triangles, and a set of 8 "tiles", each consisting of 36 30-60-90 triangles, and seeks an arrangement of the tiles that exactly covers the region.

Reference:

  1. Marcus Garvie, John Burkardt,
    A new mathematical model for tiling finite regions of the plane with polyominoes,
    Contributions to Discrete Mathematics,
    Volume 15, Number 2, July 2020.
  2. Solomon Golomb,
    Polyominoes: Puzzles, Patterns, Problems, and Packings,
    Princeton University Press, 1996,
    ISBN: 9780691024448
  3. Ed Pegg,
    Polyform Patterns,
    in Tribute to a Mathemagician,
    Barry Cipra, Erik Demaine, Martin Demaine, editors,
    pages 119-125, A K Peters, 2005.
  4. Mark Wainwright,
    Prize specimens,
    Plus magazine,
    01 January 2001,
    https://plus.maths.org/content/prize-specimens

Source code:


Last revised on 04 March 2022.