eternity, an Octave 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.

The region R can be decomposed into a coarse grid of hexagons, some of which are only partially contained in R, or a fine grid of 30-60-90 triangles, completely contained in R. We refer to these as the grid and the "subgrid". The grid can be drawn by bounding R by 90 nodes, and then connecting certain pairs, resulting in grid lines in 3 directions. The subgrid can be drawn by 180 boundary "subnodes", connecting certain pairs, and resulting in grid lines in 6 directions.

The subgrid is formed by 209 * 12 = 2508 congruent 30-60-90 triangles. To find a tiling of R, we can write 2,508 linear equations. Linear equation #I expresses the condition that triangle #I must be covered exactly once by one of the 209 shapes, in one of its possibly 12 orientations (involving rotations, reflections, and mirror imaging and a variable number of possible translations. The resulting underdetermined linear system can be treated as a linear programming (LP) problem, using optimization software such as CPLEX, GUROBI, or SCIP.


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


eternity is available in a MATLAB version and an Octave version.

Related Data and Programs:


eternity_tile, an Octave 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.

pariomino, an Octave code which considers pariominoes, which are polyominoes with a checkerboard parity, and the determination of tilings of a region using a specific set of pariominoes.

polyiamonds, an Octave code which considers polyiamonds, simple connected shapes constructed from equilateral triangles connected edgewise.

polyominoes, an Octave code which defines, solves, and plots a variety of polyomino tiling problems, which are solved by a direct algebraic approach involving the reduced row echelon form (RREF) of a specific matrix, instead of the more typical brute-force or backtracking methods.

trinity, an Octave 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.


  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,

Source code:

Last revised on 23 May 2021.