Next Article in Journal
Asymmetric Post-Quantum Digital Signature Scheme with k-ary Verkle Trees
Previous Article in Journal
A Landscape-Aware Discrete Particle Swarm Optimization for the Influence Maximization Problem in Social Networks
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Symmetry-Based Enumeration of Polyominoes on C-Coloured Checkerboards

by
Marcus R. Garvie 
Department of Mathematics & Statistics, University of Guelph, Guelph, ON N1G 2W1, Canada
Symmetry 2025, 17(3), 436; https://doi.org/10.3390/sym17030436
Submission received: 10 February 2025 / Revised: 11 March 2025 / Accepted: 12 March 2025 / Published: 14 March 2025
(This article belongs to the Section Mathematics)

Abstract

:
Polyominoes are shapes formed by joining edge-connected unit squares in the square lattice. We review their symmetry classification using dihedral group actions and enumerate their distinct, coloured variants, called “chrominoes”, which arise when polyominoes are placed on a C-coloured checkerboard. This colouring method, defined via modular arithmetic, assigns colours cyclically in both directions. Our main theoretical result establishes that for C = 2 , a polyomino has either one or two chrominoes, depending on whether it has a colour-reversing symmetry. Additionally, we introduce a new classification of two-colour chrominoes into 15 symmetry-based classes. For C 3 , the number of chrominoes is a small integer multiple of C, determined by the polyomino’s symmetry class and the symmetries of the infinite C-coloured checkerboard plane. These findings have applications to integer linear programming methods for polyomino tiling problems. We validate our theoretical results through exhaustive search in MATLAB and illustrate them with examples.

1. Introduction and Background

Combinatorial geometry concerns the arrangement, combination, and enumeration of discrete geometric objects like points, lines, and polygons. It investigates how these objects interact through intersections, overlaps, and spatial organization. Modern combinatorial geometry, developed primarily in the 20th century, integrates classical geometry and combinatorial methods to study discrete structures [1,2].
This paper applies elementary group theory to analyse a combinatorial geometry problem, using symmetry and group actions to classify and enumerate distinct coloured polyomino variants. Group theory plays an important role in combinatorial geometry by providing a systematic framework for analysing symmetries, transformations, and counting arguments in discrete geometric structures. Many combinatorial problems, including those involving polyominoes, tilings, and lattice configurations, rely on group actions to classify equivalent objects under rotations and reflections [3,4]. Geometric group theory extends these ideas by treating groups as geometric objects, revealing connections between algebraic properties and spatial structures [5]. In particular, the use of group actions simplifies enumeration problems by partitioning sets into orbits, reducing computational complexity, and aiding in symmetry-based optimisation methods [6]. These techniques have been widely applied in combinatorial tiling problems [3,4], and in matroid theory (including Dowling geometries [7]), demonstrating the significant impact of group-theoretic methods in discrete mathematics.
We study a class of polyforms called polyominoes, constructed from a finite number of unit squares (cells) joined edge-to-edge in the planar square lattice [8]. We assume polyominoes are simply-connected, meaning any loop within the region can contract to a point without encountering holes. The number of squares in a polyomino is called the area. Polyominoes with areas 1 through 8 are called monominoes, dominoes, trominoes, tetrominoes, pentominoes, hexominoes, heptominoes, and octominoes, respectively. We classify polyominoes broadly into two types. A free polyomino can be translated, rotated, or reflected (‘flipped’), while a fixed polyomino can only be translated (there are also one-sided polyominoes, which can be translated and rotated but not reflected; however, they are not considered in this paper). Thus, fixed polyominoes have a fixed orientation. For instance, the four tetrominoes shown in Figure 1 represent different, fixed polyominoes, but each one is the same, free tetromino.
The number of free polyominoes grows rapidly with area; for example, there are 35 free hexominoes and 369 free octominoes. Unless stated otherwise in this paper, polyominoes are considered free. Polyominoes were introduced by Solomon Golomb in his 1965 book, revised in 1994 [8,9]. For more details, see [10] or essays edited by A.J. Guttman [11]. Recreational study of polyomino tiling gained popularity through Martin Gardner’s Scientific American papers [12,13,14], which also inspired rigorous mathematical research.
This paper contributes to an ongoing study that aims to improve the scalability of an integer linear programming (ILP) method for tiling finite plane regions with polyominoes [15] (further details are provided in the conclusion (Section 7)). The existing method uses a two-colour checkerboard colouring for both the polyominoes and the target region. The improved approach generalises this to a C-coloured checkerboard colouring in such a way that the colours cycle both vertically and horizontally. For example, a six-coloured checkerboard coloured 10 × 13 rectangle is illustrated in Figure 2.
The method requires us to determine the number of distinct C-coloured variants of each polyomino, which depends on the polyomino’s symmetries and the number of colours used. A related ILP approach has been applied to combinatorial tiling problems, including the Eternity Puzzle—demonstrating the flexibility of ILP-based tiling methods [16].
The method for counting the number of coloured variants of a polyomino is illustrated here, with a rigorous description using modular arithmetic and group theory provided in later sections. Consider the tetromino in Figure 1 with four colours. To determine the number of distinct coloured variants, we examine all possible placements of the tetromino on a four-coloured checkerboard-patterned plane. It is assumed that the squares of the tetromino inherit the colours of the squares they cover. A coloured polyomino created in this way is referred to as a chromino (pl. chrominoes). Since polyominoes are assumed to be free, chrominoes are also considered to be free. A chromino can be thought of as a physical coloured puzzle piece that can be picked up, rotated, moved to different locations, and flipped. Thus, the yellow-outlined tetrominoes placed in the four-coloured, checkerboard-patterned 7 × 7 square of Figure 3, both represent the same chromino and are different from the chromino outlined in blue. Each of the four orientations of the tetromino has at most four associated chrominoes, obtained by cycling the colours in the following order:
black grey red green ( black ) , etc .
After the fourth cycle, we obtain our original chromino. Thus, the number of distinct chrominoes is no more than 4 × 4 = 16 . However, depending on the symmetries of the polyomino and the plane some of the chrominoes will be equivalent. The enumeration problem then depends on identifying and excluding the ‘duplicate’ chrominoes. Using an appropriate computer program, such as MATLAB, we find through exhaustive search that with four colours there is a total of eight distinct chrominoes associated with the tetromino, shown in Figure 4 with a standard position.
The general enumeration problem of determining the number of distinct chrominoes is a non-trivial combinatorial geometry problem and the main focus of this paper. This task involves elementary group theory and a detailed analysis of polyomino symmetries and the symmetries of the C-coloured plane.
The paper is organised as follows. Section 2 classifies polyominoes according to their symmetry using dihedral group actions. Section 3 introduces a modular arithmetic-based method for applying a C-coloured checkerboard pattern to polyominoes and defines the resulting chrominoes. Section 4 concerns the symmetry properties of the C-coloured checkerboard pattern when extended to the entire plane. Section 5 presents the main theoretical result: a formula for enumerating distinct free chrominoes based on C 2  colours and the polyomino symmetry classes. Section 6 verifies the theoretical results numerically using MATLAB (see Appendix A) and illustrates some examples. Finally, in Section 7, we make some concluding remarks and give possible directions for future research.

2. Classification of Polyominoes by Symmetry

In this paper, we consider transformations of polyominoes that are isometries. An isometry is a transformation σ : R 2 R 2 that preserves distances between pairs of points, i.e., the following condition holds for all points p 1 ,   p 2 of a polyomino P:
d ( σ ( p 1 ) , σ ( p 2 ) ) = d ( p 1 , p 2 ) ,
where d ( p , q ) represents the distance between points p and q [17]. As a result, the size and shape of a transformed polyomino remain unchanged, although its location or orientation may differ. Isometries include translations, rotations, reflections, and glide reflections. The eight isometries that we are concerned with are defined in Table 1, along with their corresponding descriptions.
The methods developed in this paper depend on our ability to classify polyominoes according to their symmetries and the number of associated fixed polyominoes. If P is a polyomino and σ is an isometry, then we denote the image of P under the transformation σ as σ ( P ) . Then, by a symmetry of P, we mean an isometry σ that leaves the polyomino invariant, i.e., σ ( P ) = P [17]. The only symmetries we are interested in are rotations and reflections.
To the best of our knowledge, polyominoes were first classified according to their symmetries over fifty years ago by W.F. Lunnon in an edited volume devoted to computing and number theory [18] (see also [19]). The same polyomino classes are also stated in a classic work by Redelmeier [20] on a polyomino enumeration method, but without justification or attributing the earlier works. The classification system used by W.F. Lunnon is based on elementary group theory, and as minimal details are provided, we give a more complete development below. The group theory we use can be found in many books, for example [21,22,23]. More recently, the enumeration of symmetry classes was extended to parallelogram polyominoes, providing explicit formulas for their generating functions [24].
Free polyominoes can be mathematically described as equivalence classes of fixed polyominoes under the group actions of the dihedral group D 4 of order eight. D 4 is the symmetry group of the square [21] (p. 75) and its group elements consist of the four rotations and four reflections that leave the square invariant, namely:
{ I , rot 90 , rot 180 , rot 270 , flip h , flip v , flip d , flip a } .
The Cayley table for D 4 is given in Table 2, where the symbol ∘ denotes group composition [22] (p. 135).
We observe from this table that the entire group D 4 is generated by just two elements, namely rot 90 and flip v , i.e.,
rot 90 rot 90 = rot 180 , rot 90 rot 180 = rot 270 , rot 90 rot 270 = I , rot 90 flip v = flip d , rot 90 flip d = flip h , rot 90 flip h = flip a .
To classify the symmetry types of polyominoes, we determine the stabiliser subgroup, Stab ( P ) D 4 , which consists of all elements of D 4 that leave the polyomino unchanged. The stabiliser subgroup determines the number of distinct orientations of a polyomino under the group action. By the ‘Orbit-Stabilizer Theorem’ [23], the number of distinct orientations of a polyomino P is given by
Number of orientations = | D 4 | | Stab ( P ) | .
Since | D 4 | = 8 , the possible values for | Stab ( P ) | are 1, 2, 4, or 8, yielding 8, 4, 2, or 1 distinct orientations, respectively.
To determine these stabiliser subgroups, we identify all possible subsets of D 4 that are closed under composition, contain the identity, and include inverses for each element. This yields the following ten subgroups:
1. { I } 6. { I , flip a }
2. { I , rot 180 } 7. { I , flip d }
3. { I , rot 90 , rot 180 , rot 270 } 8. { I , flip v , flip h , rot 180 }
4. { I , flip h } 9. { I , flip d , flip a , rot 180 }
5. { I , flip v } 10. { I , rot 90 , rot 180 , rot 270 , flip h , flip v , flip d , flip a }
Since the stabiliser subgroup determines the symmetries of a polyomino, two polyominoes with the same stabiliser subgroup belong to the same symmetry class. We observe that the pairs of subgroups 4 and 5, and 6 and 7, are isomorphic and can be combined into a single symmetry type. This is because the polyomino is free, meaning it can be rotated, which makes a vertical reflection ( flip v ) equivalent to a horizontal reflection ( flip h ) and a diagonal reflection ( flip d ) equivalent to an anti-diagonal reflection ( flip a ). As a result, there are eight distinct symmetry classes. Table 3 summarises our classification system for free polyominoes based on these eight symmetry classes.
The possible orientations of a free polyomino are represented by:
I ( P ) , rot 90 ( P ) , rot 180 ( P ) , rot 270 ( P ) , flip v ( P ) , rot 90 flip v ( P ) , rot 180 flip v ( P ) , rot 270 flip v ( P ) .
The symmetries in Stab ( P ) eliminate duplicate orientations, leaving only the distinct orientations of the polyomino, illustrated in Example 1.
Example 1. 
Consider the hexomino
                                            Symmetry 17 00436 i009
which is invariant under the isometry flip a , i.e., flip a ( P ) = I ( P ) . According to Table 3, the hexomino will have four distinct orientations. Using the symmetry of the hexomino we find that the last four orientations in (2) simply repeat the first four orientations:
flip v ( P ) = flip v flip a ( P ) = rot 90 ( P ) , rot 90 flip v ( P ) = rot 90 rot 90 ( P ) = rot 180 ( P ) , rot 180 flip v ( P ) = rot 180 rot 90 ( P ) = rot 270 ( P ) , rot 270 flip v ( P ) = rot 270 rot 90 ( P ) = I ( P ) ,
leading to just four distinct orientations of the hexomino, illustrated in Figure 5:

3. Colouring Polyominoes Using Modular Arithmetic

To describe how a coloured checkerboard pattern is assigned to a polyomino, we first introduce some definitions. Note that we use ( j ˜ , i ˜ ) as integer coordinates, where j ˜ (the x-axis) is the horizontal index and i ˜ (the y-axis) is the vertical index.
Definition 1. 
The square tiling of the plane, denoted Π, refers to the set of edge-to-edge connected unit squares [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] covering the Euclidean plane R 2 , given by
Π : = i ˜ , j ˜ Z [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] .
To colour the squares of any given polyomino P, we initially apply a colouring scheme to the infinite square tiling Π . To this end, we define a function that associates each point ( x , y ) Π with the integer coordinates ( j ˜ , i ˜ ) of the square [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] that contains it. This uniquely identifies each square within the tiling.
Definition 2. 
The ceiling map is the function h : Π Z 2 defined by
h ( x , y ) : = ( x , y ) ,
where z denotes the ceiling function, which maps z to the smallest integer greater than or equal to z.
Thus, every point in the square [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] satisfies h ( x , y ) = ( j ˜ , i ˜ ) , associating the square with its integer indices.
We assign a finite number of colours to the integer coordinates ( j ˜ , i ˜ ) of the squares in  Π .
Definition 3. 
A colour index is an integer in { 1 , 2 , , C } with C 2 , uniquely identifying a colour.
The illustrations in this paper use the following colour assignments: black (1), grey (2), red (3), green (4), yellow (5), and purple (6).
We assign the C colours to the squares of Π using a cyclic pattern governed by the permutation ( 1 , 2 , , C ) , an element of the symmetric group S C [23]. The formula for generating the colour indices for the squares in Π is given by
s 1 ( j , i ) : = ( i + j ) ( mod C ) + 1 ,
where j = j ˜ , i = C + 1 i ˜ and ( j ˜ , i ˜ ) Z 2 .
Here, the ‘ + 1 ’ in (4a) shifts the indices from a zero-based to a one-based system, ensuring they range from 1 to C, which aligns more naturally with colour counting. The change of variable in (4b) reverses the vertical order of colours, ensuring that indices cycle left-to-right while also following a top-to-bottom progression in the square tiling Π . This adjustment is motivated by practical considerations, including the later matrix representation of finite regions.
Definition 4. 
A coloured square tiling of the plane, denoted Π C , is obtained by applying Equations (3) and (4) to assign cyclic colour indices to the squares of Π.
We now define the coloured polyominoes that are the focus of this study.
Definition 5. 
Let P be a polyomino and let Π C be a C-coloured checkerboard tiling (see Definition 4). When P is placed onto Π C , each of its squares inherits the colour of the corresponding square in Π C that it covers. The resulting coloured polyomino is called a chromino (pl. chrominoes).
If P is free, two chrominoes are equivalent if one can be transformed into the other by a translation, rotation, or reflection that preserves the colouring. If P is fixed, only translations are allowed. Thus, a chromino inherits the free or fixed property from the polyomino used to generate it.
With this setup, there are C possible coloured variants of a fixed polyomino. Once we have any given coloured variant, the other C 1 variants are obtained by translating the polyomino either horizontally or vertically, cycling the colours of the cells. We give a mathematical expression for these fixed chrominoes, indexed by k, by generalizing the function s 1 in (4). Let S R 2 be the set of integer points ( j ˜ , i ˜ ) corresponding to the squares [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] of P (see (3)). Then define
s k ( j , i ) : = ( i + j + k 1 ) ( mod C ) + 1 , for k = 1 , 2 , , C ,
where j = j ˜ , i = C + 1 i ˜ and ( j ˜ , i ˜ ) S .
Note that Equation (5) reverts to (4) when k = 1 and S = Z 2 . The k-th checkerboard coloured fixed polyomino P is denoted P k .
Definition 6. 
Let P k be the k-th fixed chromino of a polyomino P, coloured with C colours (see Definition 5). Denote by [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] each unit square in the smallest bounding rectangle of P, and define
j : = j ˜ , i : = C + 1 i ˜ .
The colour matrix of P k , denoted A = ( a i , j ) , is given by
a i , j = s k ( j , i ) , if [ j ˜ 1 , j ˜ ] × [ i ˜ 1 , i ˜ ] P , 0 , otherwise .
Hence a i , j { 1 , 2 , , C } if the corresponding square belongs to P and a i , j = 0 if it lies outside P but inside its bounding rectangle.
The steps needed to apply a three-coloured checkerboard pattern (with k = 1 ) to a P-shaped pentomino are illustrated in Figure 6.

4. Symmetry Groups of the Plane

Since the arguments in Section 5 depend on the symmetries of the checkerboard plane Π C , we briefly review them here.
The 17 finite symmetry groups of the plane are known as plane crystallographic groups or wallpaper groups [17,25,26]. Simple classification systems for the wallpaper groups are given in [25] (p. 474) and [26] (p. 128), which yields that Π 2 belongs to the symmetry group p4m, while Π C 3 belongs to pm (the notation used for the wallpaper groups is the IUC (International Union of Crystallography) Notation [27]).
When C = 2 , the checkerboard Π 2 has all the symmetries of the dihedral group D 4 (order 8), including rot 90 ( Π 2 ) = Π 2 and flip v ( Π 2 ) = Π 2 . It has rotational symmetry of 90° around the centre of each square and 180° around each vertex. Additionally, Π 2 has reflection symmetry along the diagonals (slopes 1 and + 1 ) and along the horizontal and vertical bisectors of the squares.
When Π 2 is coloured with black and grey squares, its symmetries preserve colouring, meaning each black square maps to a black square and each grey square maps to a grey square. Mathematically, a colour-preserving symmetry of a polyomino P is an isometry σ of Π 2 that satisfies the following conditions [28]:
(i)
σ ( P ) = P ,
(ii)
f ( σ ( p ) ) = f ( p ) for all points p P ,
Where f : R 2 { 1 , 2 } is the colour map defined using (3) and (4) that maps every point in the Euclidean plane to its unique colour index (combining these formulas yields the explicit form f ( x , y ) : = ( 3 y + x ) ( mod 2 ) + 1 for all ( x , y ) R 2 ).
Condition (i) ensures that the isometry σ is a symmetry of P, while condition (ii) guarantees that σ preserves the colours of its points.
In addition to colour-preserving symmetries, there are colour-reversing symmetries, which swap black and grey squares. For example, 90° rotations about a vertex and reflections across horizontal or vertical grid lines in Z 2 are colour-reversing symmetries.
We define a colour-reversing symmetry of a polyomino P as an isometry σ acting on the plane Π 2 that satisfies the following conditions [28]:
(i)
σ ( P ) = P
(ii)
f ( σ ( p ) ) = 3 f ( p ) for all points p P
Condition (ii) ensures that σ swaps black and grey squares, since black corresponds to f ( p ) = 1 and grey to f ( p ) = 2 .
Distinguishing between colour-preserving and colour-reversing symmetries will be important when enumerating and classifying chrominoes with two colours (see Table 4). We note that there are no colour-reversing symmetries corresponding to reflections along a diagonal or anti-diagonal line.
For C 3 , the set of symmetries is significantly reduced. The only non-trivial symmetry of the checkerboard planes Π C 3 , apart from translations and glide reflections, is flip d , i.e., flip d ( Π C 3 ) = Π C 3 . Reflections occur along diagonal lines of slope 1 passing through the squares. This reflection symmetry preserves colours and the concept of a colour-reversing symmetry makes no sense when there are three or more colours.

5. Enumeration of Coloured Polyominoes

The enumeration results in this section assumes an infinite checkerboard-coloured plane but also applies to sufficiently large finite regions. This holds as long as each polyomino can be placed in all necessary positions without crossing the boundary, ensuring all distinct chrominoes are generated. Under these conditions, the enumeration formulas remain valid.
Since the polyominoes are free, the corresponding chrominoes are also free (see Definition 5). For example, consider two L-shaped tetrominoes placed on a four-coloured checkerboard square, as shown in Figure 7 (outlined in black). Denote these chrominoes by P i and P j . The only non-trivial symmetry of Π 4 is flip d , which changes a chromino’s orientation, so flip d ( P j ) = P i . Thus, P i and P j represent the same free chromino.
Let N P C be the number of distinct chrominoes of a (free) polyomino P using C colours. The set of chrominoes indexed by j is
{ P j j = 1 , 2 , , N P C } .
The following result provides a formula for N P C based on the symmetry of P and the number of colours C, forming the main theoretical result of this paper.
Theorem 1. 
For C = 2 , the number of distinct chrominoes, N P 2 , is given by
N P 2 = 1 i f a n d o n l y i f P 1 = P 2 ( i . e . , a c o l o u r - r e v e r s i n g s y m m e t r y e x i s t s ) 2 o t h e r w i s e .
Furthermore, the chrominoes can be classified into 15 two-colour symmetry classes (see Table 5).
For C 3 , N P C depends on the symmetry classes (see Table 3) of P and is given by
N P C = C i f P i s o f c l a s s # 5 , 6 , or 8 2 C i f P i s o f c l a s s # 2 , 3 , or 7 3 C i f P i s o f c l a s s # 4 4 C i f P i s o f c l a s s # 1 .
Proof. 
For each symmetry class in Table 3 we must determine the number of distinct chrominoes formed by placing a polyomino P on the checkerboard-coloured plane Π C . This count depends on the number of orientations of P and whether different orientations yield equivalent chrominoes. We also determine when different translations of P produce equivalent chrominoes. Equivalent chrominoes indicate duplicates, which must be excluded from the total count.
Consider placing a polyomino P on Π C . The resulting chromino has colour indices determined by the indexed modulo Formula (5). Without loss of generality, let this chromino be P 1 , corresponding to k = 1 in Equation (5). Keeping the orientation of P fixed, translating it one square right (or downward) shifts the colour indices forward by one step, yielding a new chromino P 2 . Each step forward produces a new chromino until, after C steps, the original chromino P 1 reappears. Further translations repeat this cycle, while reversing the translation direction reverses the colour index cycle. Thus, for each orientation of P, the chrominoes cycle through at most C distinct variants: { P 1 , P 2 , , P C } . With O orientations, this gives at most C O free chrominoes.
The remainder of the proof identifies duplicate chrominoes based on the symmetries of the polyomino and the embedding plane. We treat C = 2 and C 3 separately, as Π 2 has colour-reversing symmetries not present in Π C 3 .
  • Case C = 2 :
This case is simpler than C 3 to analyse, as every isometry of a polyomino placed in Π 2 —whether a translation or a transformation in D 4 —either preserves or reverses the colouring of its squares. As a result, each polyomino generates at most two chrominoes, P 1 and P 2 , which may or may not be distinct. If a chromino possesses a colour-reversing symmetry, then P 1 = P 2 , meaning there is only one distinct chromino. If only colour-preserving symmetries exist, then P 1 P 2 , i.e., there are two distinct chrominoes. The two-colour symmetries of Π 2 are defined in Table 4, and Table 5 summarises the analysis, classifying chrominoes into 15 two-colour symmetry classes.
For example, a class # 1 polyomino in Table 3 is asymmetric, so P 1 and P 2 are always distinct. Chrominoes are also distinct for class # 4 and class # 7 polyominoes, since flip d and flip a are always colour-preserving. All other classes include chrominoes with both colour-preserving and colour-reversing symmetries.
If P 1 = P 2 , then the chromino is ‘balanced’ [8], meaning it contains an equal number of black and grey squares. However, the converse does not hold; there exist balanced chrominoes with P 1 P 2 .
  • Case C 3 :
Unlike the C = 2 case, where colour-reversing symmetries create equivalences, the cyclic nature of three or more colour indices and the fact that the only symmetry of Π C for C 3 is flip d ensure that the fixed chrominoes { P 1 , P 2 , , P C } are distinct. In other words, a fixed polyomino yields exactly C distinct chrominoes.
However, two chrominoes with different orientations may still be equivalent under the diagonal reflection flip d . An example of this was illustrated in Figure 7. To determine which orientations of a polyomino yield equivalent chrominoes, we analyse each symmetry class in Table 3. Using the dihedral group actions listed in Table 2, we first identify the distinct orientations of a polyomino P by checking whether any of its eight possible orientations in (2) are equivalent. This process is demonstrated in Example 1. Since it is straightforward, we omit the details and directly list the unique orientations for each symmetry class. We then apply flip d to each orientation, again using the dihedral group actions, to determine which ones yield the same chrominoes.
  • Class #1:
For an asymmetric polyomino P of class #1 in Table 3, the eight possible orientations are shown in Figure 8, illustrated with a representative example.
Using Table 2 and applying the symmetry flip d yields the following correspondences:
flip d rot 90 flip v ( P ) = flip d flip d ( P ) = I ( P ) , flip d flip v ( P ) = rot 90 ( P ) , flip d rot 270 flip v ( P ) = flip d flip a ( P ) = rot 180 ( P ) , flip d rot 180 flip v ( P ) = flip d flip h ( P ) = rot 270 ( P ) ,
i.e., the pairs (f) and (a), (e) and (b), (h) and (c), and (g) and (d) are equivalent for chromino generation. Therefore, class #1 polyominoes always yield N P C = 4 C chrominoes.
  • Class #2:
For a polyomino P of class #2 in Table 3 with symmetry rot 180 , the four possible orientations are given in Figure 9, illustrated with a representative example.
Using Table 2 we apply the symmetry flip d and obtain the following correspondences:
flip d rot 90 flip v ( P ) = flip d flip d ( P ) = I ( P ) , flip d flip v ( P ) = rot 90 ( P ) .
Thus, orientations (a) and (d), and (b) and (c), are equivalent for chromino generation. So class #2 polyominoes yield N P C = 2 C chrominoes.
  • Class #3:
For a polyomino P of class #3 in Table 3 with symmetry flip v , the four possible orientations are shown in Figure 10, illustrated with a representative example.
Using Table 2, we apply the symmetry flip d and obtain the following correspondences:
flip d rot 90 ( P ) = flip v ( P ) = I ( P ) , flip d rot 270 ( P ) = flip h ( P ) = rot 180 flip v ( P ) = rot 180 ( P ) .
Thus, orientations (a) and (b), and (c) and (d), are equivalent for chromino generation. Therefore, class #3 polyominoes with symmetry flip v yield N P C = 2 C chrominoes. The argument for polyominoes of class #3 with symmetry flip h is similar and gives the same N P C count.
  • Class #4:
For a given polyomino P of class #4 in Table 3 with the symmetry flip a , the four possible orientations are given in Figure 11 and illustrated for a representative example.
Using Table 2 and applying the symmetry flip d yields the following correspondences:
flip d rot 180 ( P ) = flip a ( P ) = I ( P ) , flip d rot 270 ( P ) = flip h ( P ) , flip d rot 90 ( P ) = flip v ( P ) .
Thus, the pairs (a) and (c), are equivalent orientations as far as generating chrominoes is concerned; however, orientations (b) and (d) are different. Thus, polyominoes P with the symmetry flip a belonging to class #4 always yield a total of N P C = 3 C chrominoes when placed in the checkerboard region Π C 3 . The argument for a polyomino belonging to class #4 with the symmetry flip d is similar and yields the same total counts for N P C .
  • Class #5:
For a polyomino P of class #5 in Table 3 with symmetry rot 90 , the two possible orientations are shown in Figure 12, illustrated with a representative example.
Using Table 2 and applying the symmetry flip d , we obtain the following correspondence:
flip d flip v ( P ) = rot 90 ( P ) = I ( P ) .
Thus, the two orientations of a class #5 polyomino always yield a total of N P C = C chrominoes.
  • Class #6:
For a polyomino P of class #6 in Table 3 with symmetries flip v and flip h , the two possible orientations are shown in Figure 13, illustrated with a representative example.
Using Table 2 and applying the symmetry flip d , we obtain the following correspondence:
flip d rot 90 ( P ) = flip v ( P ) = I ( P ) .
Thus, the two orientations of a class #6 polyomino always yield a total of N P C = C chrominoes.
  • Class #7:
For a polyomino P of class #7 in Table 3 with symmetries flip d and flip a , the two possible orientations are shown in Figure 14, illustrated with a representative example.
Using Table 2 and applying the symmetry flip d , we obtain:
flip d rot 90 ( P ) = flip v ( P ) I ( P ) .
Thus, the two orientations of a class #7 polyomino are different and always yield a total of N P C = 2 C chrominoes.
  • Class #8:
For a polyomino P of class #8 in Table 3 with all the symmetries of D 4 , the single orientation is shown in Figure 15, illustrated with a representative example.
Different placements of a polyomino of class #8 in the checkerboard region Π C 3 yield a total of N P C = C chrominoes.    □

6. Numerical Verification

We numerically verified the theoretical results of Theorem 1 using MATLAB R2023a on a MacBook Pro (2021) with an Apple M1 Max chip, 64 GB RAM, running macOS Sonoma 14.5.
The MATLAB code (see Appendix A) performs an exhaustive search to determine all free chrominoes for a given polyomino and a fixed number of colours. The process begins by representing the polyomino as a binary matrix, where cells of the polyomino are marked with ‘1’s and all other cells within the smallest bounding rectangle with ‘0’s, as shown in Figure 16.
A polyomino generally has 8, 4, 2, or 1 distinct orientations. However, for simplicity in the MATLAB program, we generate colour matrices for all eight orientations by applying counter-clockwise 90-degree rotations and horizontal reflections to its binary matrix representation. We then apply the modular arithmetic Formula (5) for k = 1 , 2 , , C and use Definition 6 to construct C colour matrices per orientation. Each coloured variant is mapped back to the polyomino’s standard position before further processing. Finally, duplicate colour matrices are removed, leaving only the unique ones corresponding to the distinct free chrominoes.
Using the MATLAB program, we validated examples from all symmetry classes in Theorem 1 for both C = 2 and C 3 . We illustrate two examples below.
Example 2. 
Using C = 3 colours find all possible chrominoes for the tromino
                                                                                                                                                                            Symmetry 17 00436 i025
From Table 3 we see that this polyomino belongs to symmetry class # 4 and thus from Theorem 1 there will be exactly 3 C = 9 distinct chrominoes associated with this polyomino, illustrated in Figure 17.
Example 3. 
Using C = 4 colours find all possible chrominoes for the pentomino
                                                                                                                                                                            Symmetry 17 00436 i026
From Table 3, we see that this polyomino belongs to symmetry class # 1 and thus from Theorem 1 there will be exactly 4 C = 16 distinct chrominoes associated with this polyomino, illustrated in Figure 18.

7. Conclusions and Further Research

This work introduced a group-theoretic framework for enumerating distinct checkerboard-coloured polyominoes, called chrominoes. We classified polyominoes using dihedral group actions and applied a modular arithmetic-based scheme to define the checkerboard colouring. By analysing the symmetries of both the polyominoes and the infinite checkerboard-coloured plane in which they are placed, we determined how these symmetries interact. This led to explicit formulas for the number of distinct chrominoes as a function of the polyomino’s symmetry class and the number of colours C.
We also provided a MATLAB program that validated the formulas using exhaustive search and illustrated them with examples.
Beyond its theoretical contributions, our work has practical applications in integer linear programming (ILP) methods for tiling problems, with the aim of generalizing the method in [15]. The approach begins by applying a fixed checkerboard colouring with C colours to the target region and identifying all possible chrominoes associated with each polyomino. The first ILP formulation assigns a variable to each chromino and enforces constraints ensuring that the total number of squares of each colour in the target region matches the total number of corresponding coloured squares of the selected chrominoes. It also ensures that the required counts of each polyomino are met. Solving this ILP provides a feasible set of chrominoes that may yield a tiling. The second ILP formulation assigns a variable to each valid chromino placement, ensuring that each chromino fits within the region and that its coloured squares align with the checkerboard colouring. Since this two-stage approach first determines feasible chromino combinations before enumerating their placements, it often eliminates certain tile placements, reducing the number of tile-placement variables in the second ILP. This is beneficial because the general problem of tiling finite regions with polyominoes is NP -complete [29], making large instances intractable. Reducing the number of variables yields smaller ILP models, which can improve solver runtimes with high-performance optimisers such as CPLEX [30] and Gurobi [31]. However, the extent of these improvements depends on the problem structure and solver heuristics.
Several directions for future research remain open. One possibility is to extend these methods to three-dimensional analogues, such as polycubes, where symmetry considerations become more complex [19]. Another avenue is to explore alternative colouring schemes beyond cyclic checkerboard patterns, potentially leading to new combinatorial classifications.
An additional line of inquiry concerns digital plane rotations that provide insights into how lattice points behave under discrete transformations [32]. While our study focuses on dihedral symmetries of polyominoes, this work examines how rounding affects lattice points under rotation, proving that these transformations are generally neither injective nor surjective. Though their work does not address polyominoes or checkerboard colouring, their framework for discrete rotations may offer tools for studying how such transformations affect colour patterns on a lattice. This remains speculative but presents a potential direction for future research in combinatorial geometry.
By combining combinatorial geometry, modular arithmetic, and group theory, this work offers a structured methodology for counting and classifying chrominoes, with implications for both theoretical and applied mathematics.

Funding

This research received no external funding.

Data Availability Statement

Data is contained within the article.

Acknowledgments

I gratefully acknowledge Rajesh Pereira (University of Guelph, Guelph, ON, Canada) for his insightful comments on group theory. I also thank John Burkardt (University of Pittsburgh, Pittsburgh, PA, USA) for suggesting the term “chrominoes”. Additionally, I appreciate Cavan Coffee (Guelph, OH, Canada) for providing office space and excellent coffee—where much of this paper was written. I also thank the four anonymous reviewers for their constructive comments, which have significantly contributed to the quality of this manuscript.

Conflicts of Interest

The author declares no conflicts of interest.

Appendix A. MATLAB Code for Computing Chrominoes

The following MATLAB code computes all possible free chrominoes for a given polyomino and a specified number of colours.
  • function chrom = FindAllChromPlot(mat, C)
  • % FINDALLCHROMPLOT computes all chrominoes using C colours for a given binary polyomino
  • % and produces a multi-subplot figure representing the chrominoes.
  •  
  • %  Inputs:
  • %   mat - Binary matrix representing the polyomino
  • %   C - the number of colours used in the colouring procedure
  •  
  • %  Output:
  • %   variants - A 3D array of colour matrices representing the distinct chrominoes
  •  
  • %  Element    RGB triplet             Colour
  • %    0      [1 1 1]              White
  • %    1      [0 0 0]              Black
  • %    2      [0.7 0.7 0.7]           Gray
  • %    3      [1 0 0]              Red
  • %    4      [0 1 0]              Green
  • %    5      [1 1 0]              Yellow
  • %    6      [0 0 1]              Blue
  • %    7      [1 0 1]              Magenta
  •  
  • %  Licensing:
  • %   This code is distributed under the GNU LGPL license.
  •  
  • %  Modified:
  • %   5 March 2025
  •  
  • %  Author:
  • %   Marcus Garvie

  • [rows, cols] = size(mat);

  • % Initialize array to store variants
  • orients = cell(1, 8);

  • % Find all possible orientations of the polyomino using rotations and flips.
  • % Note: at this stage we allow duplicate orientations. Duplicate
  • % chrominoes are removed at the very end.

  • % Add original matrix to variants array
  • orients{1} = mat;

  • % Generate rotated variants (90, 180, 270 degrees)
  • for i = 2:4
  •   orients{i} = rot90(orients{i-1});
  • end

  • % Flip original matrix horizontally
  • orients{5} = fliplr(mat);

  • % Generate rotated variants from the flipped matrix
  • for i = 6:8
  •   orients{i} = rot90(orients{i-1});
  • end

  • % Create variants for each orientation
  • variants1 = colour_C_variants(orients{1}, C);  % 0 deg
  • variants2 = colour_C_variants(orients{2}, C);  % 90 deg
  • variants3 = colour_C_variants(orients{3}, C);  % 180 deg
  • variants4 = colour_C_variants(orients{4}, C);  % 270 deg
  • variants5 = colour_C_variants(orients{5}, C);  % Flip horizontal
  • variants6 = colour_C_variants(orients{6}, C);  % Flip horiz + 90 deg
  • variants7 = colour_C_variants(orients{7}, C);  % Flip horiz + 180 deg
  • variants8 = colour_C_variants(orients{8}, C);  % Flip horiz + 270 deg

  • % Initialize transformed variants
  • for page = 1:C
  •    var1(:,:,page) = zeros(rows, cols);
  •    var2(:,:,page) = zeros(rows, cols);
  •    var3(:,:,page) = zeros(rows, cols);
  •    var4(:,:,page) = zeros(rows, cols);
  •    var5(:,:,page) = zeros(rows, cols);
  •    var6(:,:,page) = zeros(rows, cols);
  •    var7(:,:,page) = zeros(rows, cols);
  •    var8(:,:,page) = zeros(rows, cols);
  • end

  • % Undo transformations in each variant
  • var1 = variants1;
  • for j = 1:C
  •    var2(:,:,j) = rot90(variants2(:,:,j), -1);
  •    var3(:,:,j) = rot90(variants3(:,:,j), -2);
  •    var4(:,:,j) = rot90(variants4(:,:,j), -3);
  •    var5(:,:,j) = fliplr(variants5(:,:,j));
  •    var6(:,:,j) = fliplr(rot90(variants6(:,:,j), -1));
  •    var7(:,:,j) = fliplr(rot90(variants7(:,:,j), -2));
  •    var8(:,:,j) = fliplr(rot90(variants8(:,:,j), -3));
  • end

  • % Now pack them all into VARIANTS
  • for page = 1:8*C
  •   variants(:,:,page) = zeros(rows, cols);
  • end

  • % Note: The next line concatenates the 3D arrays along the third
  • % dimension to create the resulting variants array.
  • variants = cat(3, var1, var2, var3, var4, var5, var6, var7, var8);

  • % Convert variants to a cell array so that we can use a function
  • % to find unique matrices
  • for page = 1:8*C
  •   var_cell{page} = variants(:,:,page);
  • end

  • % Remove duplicate matrices
  • unique_mats = unique_iso(var_cell);

  • % Find how many unique matrices remain
  • left = numel(unique_mats);

  • % Initialize chrom array
  • for page = 1:left
  •   chrom(:,:,page) = zeros(rows, cols);
  • end

  • % Convert matrices back to 3D array
  • for mx = 1:left
  •   chrom(:,:,mx) = unique_mats{mx};
  • end

  • % Output colour counts
  • for page = 1:left
  •   fprintf(’Variant %d \n’, page);
  •   for colour = 1:C
  •     num = nnz(chrom(:,:,page) == colour); % Faster than ’length(find(…))’
  •     fprintf(’# squares of colour %d = %d \n’, colour, num);
  •   end
  •   fprintf(’\n’);
  • end

  • % Store all possible RGB triplets
  • index = cat(3, [1 1 1], [0 0 0], [0.7 0.7 0.7], …
  •         [1 0 0], [0 1 0], [1 1 0], [0 0 1], [1 0 1]);

  • % Compute the colormap for each variant and plot
  • % all subplots into a rectangular plot array
  • sqSize = ceil(sqrt(left));

  • for page = 1:left
  •   array = chrom(:,:,page);
  •   unq = unique(array);
  •   ind = unq + 1;
  •   len = length(ind);

  •   % Construct colormap
  •   cmap = [];
  •   for i = 1:len
  •     cmap = [cmap; index(:,:,ind(i))];
  •   end

  •   % Scale array values for visualization
  •   [~, ~, arrayscaled] = unique(array);
  •   arrayscaled = reshape(arrayscaled, size(array));

  •   % Plot each variant
  •   subplot(sqSize, sqSize, page);
  •   hAxes = gca;
  •   imagesc(hAxes, arrayscaled);
  •   colormap(hAxes, cmap);
  •   set(gcf, ’color’, ’w’);
  •   title(sprintf(’Chromino #%d’, page));
  •   axis equal tight off;
  • end

References

  1. Pach, J.; Agarwal, P.K. Combinatorial Geometry; Wiley-Interscience: New York, NY, USA, 1995. [Google Scholar] [CrossRef]
  2. Boltyanski, V.; Martini, H.; Soltan, P.S. Excursions into Combinatorial Geometry; Springer: Berlin/Heidelberg, Germany, 1997. [Google Scholar] [CrossRef]
  3. Conway, J.; Lagarias, J. Tiling with polyominoes and combinatorial group theory. J. Comb. Theory Ser. A 1990, 53, 183–208. [Google Scholar] [CrossRef]
  4. Kisisel, A.U.O. Polyomino Convolutions and Tiling Problems. J. Comb. Theory Ser. A 2001, 95, 373–380. [Google Scholar] [CrossRef]
  5. Bridson, M.R. The Geometry of the Word Problem. In Invitations to Geometry and Topology; Oxford Graduate Texts in Mathematics; Oxford University Press: Oxford, UK, 2002; Volume 7, pp. 29–91. [Google Scholar] [CrossRef]
  6. Cameron, P.J. Combinatorics: Topics, Techniques, Algorithms; Cambridge University Press: Cambridge, UK, 1994. [Google Scholar] [CrossRef]
  7. Dowling, T.A. A Class of Geometric Lattices Based on Finite Groups. J. Comb. Theory Ser. B 1973, 14, 61–86. [Google Scholar] [CrossRef]
  8. Golomb, S. Polyominoes, 2nd ed.; Princeton University Press: Princeton, NJ, USA, 1994. [Google Scholar] [CrossRef]
  9. Golomb, S. Polyominoes; Scribner: New York, NY, USA, 1965. [Google Scholar]
  10. Barequet, G.; Golomb, S.; Klarner, D. Polyominoes. In Handbook of Discrete and Computational Geometry, 3rd ed.; Tóth, C., O’Rourke, J., Goodman, J., Eds.; Chapman and Hall/CRC: New York, NY, USA, 2017; pp. 359–380. [Google Scholar] [CrossRef]
  11. Guttman, A. History and introduction to polygon models and polyominoes. In Polygons, Polyominoes and Polycubes; Lecture Notes in Physics; Guttman, A., Ed.; Springer: Dordrecht, The Netherlands, 2009; Volume 775, pp. 1–21. [Google Scholar] [CrossRef]
  12. Gardner, M. Time Travel and Other Mathematical Bewilderments; W. H. Freeman and Company: New York, NY, USA, 1988. [Google Scholar]
  13. Gardner, M. Hexaflexagons, Probability Paradoxes, and the Tower of Hanoi. Martin Gardner’s First Book of Mathematical Puzzles and Games; New Martin Gardner Mathematical Library; Cambridge University Press: Cambridge, UK, 2009; Volume 1. [Google Scholar]
  14. Gardner, M. Sphere Packing, Lewis Carroll, and Reversi. Martin Gardner’s New Mathematical Diversions; New Martin Gardner Mathematical Library; Cambridge University Press: Cambridge, UK, 2009; Volume 3. [Google Scholar]
  15. Garvie, M.R.; Burkardt, J. A Parallelizable Integer Linear Programming Approach for Tiling Finite Regions of the Plane with Polyominoes. Algorithms 2022, 15, 164. [Google Scholar] [CrossRef]
  16. Burkardt, J.; Garvie, M.R. An integer linear programming approach to solving the Eternity Puzzle. Theor. Comput. Sci. 2023, 975, 114138. [Google Scholar] [CrossRef]
  17. Grünbaum, B.; Shephard, G. Tilings and Patterns; W. H. Freeman and Company: New York, NY, USA, 1987; Chapter 9. [Google Scholar]
  18. Lunnon, W. Counting polyominoes. In Computers in Number Theory; Atkin, A., Birch, B., Eds.; Academic Press: London, UK; New York, NY, USA, 1971; pp. 347–372. [Google Scholar]
  19. Lunnon, W. Symmetry of cubical and general polyominoes. In Graph Theory and Computing; Read, R., Ed.; Academic Press: London, UK; New York, NY, USA, 1972; pp. 101–108. [Google Scholar] [CrossRef]
  20. Redelmeier, D. Counting polyominoes: Yet another attack. Discret. Math. 1981, 36, 191–203. [Google Scholar] [CrossRef]
  21. Baumslag, B.; Chandler, B. Theory and Problems of Group Theory, 1st ed.; Schaum’s outline Series; McGraw-Hill: New York, NY, USA, 1968. [Google Scholar]
  22. Birkhoff, G.; Mac Lane, S. A Survey of Modern Algebra, 4th ed.; Macmillan Publishing Co., Inc.: New York, NY, USA, 1977. [Google Scholar]
  23. Ledermann, W.; Weir, A.J. Introduction to Group Theory, 2nd ed.; Longman Mathematical Series; Addison Wesley Longman Ltd.: New York, NY, USA, 1996. [Google Scholar] [CrossRef]
  24. Leroux, P.; Rassart, E. Enumeration of Symmetry Classes of Parallelogram Polyominoes. arXiv 1999, arXiv:math/9901135. [Google Scholar] [CrossRef]
  25. Gallian, J.A. Contemporary Abstract Algebra, 7th ed.; Brooks/Cole: Salt Lake City, UT, USA, 2010. [Google Scholar]
  26. Washburn, D.K.; Crowe, D.W. Symmetries of Culture: Theory and Practice of Plane Pattern Analysis; Dover Publications, Inc.: Garden City, NY, USA, 2020. [Google Scholar]
  27. International Union of Crystallography. International Union of Crystallography. Available online: https://www.iucr.org/ (accessed on 1 March 2025).
  28. Farris, F.A. Creating Symmetry: The Artful Mathematics of Wallpaper Patterns; Princeton University Press: Princeton, NJ, USA, 2015. [Google Scholar]
  29. Demaine, E.; Demaine, M. Jigsaw Puzzles, Edge Matching, and Polyomino Packing: Connections and Complexity. Graphs Comb. 2007, 23, 195–208. [Google Scholar] [CrossRef]
  30. IBM ILOG. IBM ILOG CPLEX Optimization Studio. 2025. Available online: https://www.ibm.com/products/ilog-cplex-optimization-studio (accessed on 1 March 2025).
  31. Gurobi Optimization, LLC. GUROBI 12.0. 2024. Available online: https://www.gurobi.com/ (accessed on 1 March 2025).
  32. Hannusch, C.; Pethő, A. Rotation on the digital plane. Period. Math. Hung. 2023, 86, 564–577. [Google Scholar] [CrossRef]
Figure 1. The four orientations of a tetromino representing the same free polyomino.
Figure 1. The four orientations of a tetromino representing the same free polyomino.
Symmetry 17 00436 g001
Figure 2. A six-coloured checkerboard 10 × 13 rectangle using the colours black, grey, red, green, yellow, and purple.
Figure 2. A six-coloured checkerboard 10 × 13 rectangle using the colours black, grey, red, green, yellow, and purple.
Symmetry 17 00436 g002
Figure 3. Three placements of a tetromino in a square checkerboard coloured square using four colours, namely, black, grey, red and green. The tetrominoes outlined in yellow represent the same chromino, which are different from the chromino outlined in blue.
Figure 3. Three placements of a tetromino in a square checkerboard coloured square using four colours, namely, black, grey, red and green. The tetrominoes outlined in yellow represent the same chromino, which are different from the chromino outlined in blue.
Symmetry 17 00436 g003
Figure 4. The eight free chrominoes using four colours associated with the tetromino illustrated in Figure 1, displayed in a standard position.
Figure 4. The eight free chrominoes using four colours associated with the tetromino illustrated in Figure 1, displayed in a standard position.
Symmetry 17 00436 g004
Figure 5. The four distinct orientations of a hexomino P.
Figure 5. The four distinct orientations of a hexomino P.
Symmetry 17 00436 g005
Figure 6. Steps required to apply a three-coloured checkerboard pattern to a P-shaped pentomino: (a) ( x , y ) coordinates mapped to integer ( j ˜ , i ˜ ) using (3); (b) ( j ˜ , i ˜ ) mapped to colour indices using (5); (c) the colour matrix of the pentomino via Definition 6; (d) the coloured pentomino where 1 ,   2 ,   3 represent black, grey, and red.
Figure 6. Steps required to apply a three-coloured checkerboard pattern to a P-shaped pentomino: (a) ( x , y ) coordinates mapped to integer ( j ˜ , i ˜ ) using (3); (b) ( j ˜ , i ˜ ) mapped to colour indices using (5); (c) the colour matrix of the pentomino via Definition 6; (d) the coloured pentomino where 1 ,   2 ,   3 represent black, grey, and red.
Symmetry 17 00436 g006
Figure 7. Two placements of an L-shaped polyomino in a four-coloured checkerboard square, representing the same chromino. The chrominoes are outlined in black.
Figure 7. Two placements of an L-shaped polyomino in a four-coloured checkerboard square, representing the same chromino. The chrominoes are outlined in black.
Symmetry 17 00436 g007
Figure 8. The eight orientations of a polyomino belonging to class #1 of Table 3, illustrated with an asymmetric pentomino.
Figure 8. The eight orientations of a polyomino belonging to class #1 of Table 3, illustrated with an asymmetric pentomino.
Symmetry 17 00436 g008
Figure 9. The four orientations of a polyomino belonging to class #2 of Table 3, illustrated with a tetromino.
Figure 9. The four orientations of a polyomino belonging to class #2 of Table 3, illustrated with a tetromino.
Symmetry 17 00436 g009
Figure 10. The four orientations of a polyomino belonging to class #3 of Table 3, illustrated with a tetromino.
Figure 10. The four orientations of a polyomino belonging to class #3 of Table 3, illustrated with a tetromino.
Symmetry 17 00436 g010
Figure 11. The four orientations of a polyomino belonging to class #4 of Table 3, illustrated with a tromino.
Figure 11. The four orientations of a polyomino belonging to class #4 of Table 3, illustrated with a tromino.
Symmetry 17 00436 g011
Figure 12. The two orientations of a polyomino belonging to class #5 of Table 3, illustrated with an octomino.
Figure 12. The two orientations of a polyomino belonging to class #5 of Table 3, illustrated with an octomino.
Symmetry 17 00436 g012
Figure 13. The two orientations of a polyomino belonging to class #6 of Table 3, illustrated with a domino.
Figure 13. The two orientations of a polyomino belonging to class #6 of Table 3, illustrated with a domino.
Symmetry 17 00436 g013
Figure 14. The two orientations of a polyomino belonging to class #7 of Table 3, illustrated with an octomino.
Figure 14. The two orientations of a polyomino belonging to class #7 of Table 3, illustrated with an octomino.
Symmetry 17 00436 g014
Figure 15. The single orientation of a polyomino belonging to class #8 of Table 3, illustrated with a pentomino.
Figure 15. The single orientation of a polyomino belonging to class #8 of Table 3, illustrated with a pentomino.
Symmetry 17 00436 g015
Figure 16. A pentomino and its corresponding binary matrix representation.
Figure 16. A pentomino and its corresponding binary matrix representation.
Symmetry 17 00436 g016
Figure 17. The nine free chrominoes using three colours associated with a tromino, displayed in standard position.
Figure 17. The nine free chrominoes using three colours associated with a tromino, displayed in standard position.
Symmetry 17 00436 g017
Figure 18. The sixteen free chrominoes using four colours associated with a pentomino, displayed in standard position.
Figure 18. The sixteen free chrominoes using four colours associated with a pentomino, displayed in standard position.
Symmetry 17 00436 g018
Table 1. Eight isometries and their descriptions.
Table 1. Eight isometries and their descriptions.
IsometryDescription
IIdentity transformation
rot 90 Rotation by 90° counter-clockwise
rot 180 Rotation by 180° counter-clockwise
rot 270 Rotation by 270° counter-clockwise
flip h Reflection in the horizontal axis
flip v Reflection in the vertical axis
flip d Reflection in the diagonal
   (north-west corner to south-east corner)
flip a Reflection in the anti-diagonal
   (south-west corner to the north-east corner)
Table 2. The Cayley table for the dihedral group D 4 of order 8. Group composition is denoted by ∘, and the order of a composition is right-to-left, for example, flip h rot 90 = flip d indicates that a rotation of 90 degrees followed by a reflection in the horizontal axis is equivalent to a reflection in the diagonal.
Table 2. The Cayley table for the dihedral group D 4 of order 8. Group composition is denoted by ∘, and the order of a composition is right-to-left, for example, flip h rot 90 = flip d indicates that a rotation of 90 degrees followed by a reflection in the horizontal axis is equivalent to a reflection in the diagonal.
I rot 90 rot 180 rot 270 flip h flip v flip d flip a
II rot 90 rot 180 rot 270 flip h flip v flip d flip a
rot 90 rot 90 rot 180 rot 270 I flip a flip d flip h flip v
rot 180 rot 180 rot 270 I rot 90 flip v flip h flip a flip d
rot 270 rot 270 I rot 90 rot 180 flip d flip a flip v flip h
flip h flip h flip d flip v flip a I rot 180 rot 90 rot 270
flip v flip v flip a flip h flip d rot 180 I rot 270 rot 90
flip d flip d flip v flip a flip h rot 270 rot 90 I rot 180
flip a flip a flip h flip d flip v rot 90 rot 270 rot 180 I
Table 3. The table shows the eight symmetry classes of a free polyomino. The index of each symmetry class corresponds to the number of associated fixed polyominoes, or the number of distinct orientations, determined by the Orbit-Stabilizer Theorem. A representative example for each class is provided with minimal area. The table is based on [20].
Table 3. The table shows the eight symmetry classes of a free polyomino. The index of each symmetry class corresponds to the number of associated fixed polyominoes, or the number of distinct orientations, determined by the Orbit-Stabilizer Theorem. A representative example for each class is provided with minimal area. The table is based on [20].
Class #SymmetriesExampleIndex
1noneSymmetry 17 00436 i0018
2 rot 180 Symmetry 17 00436 i0024
3 flip h or flip v Symmetry 17 00436 i0034
4 flip d or flip a Symmetry 17 00436 i0044
5 rot 90 (implies rot 180 and rot 270 )Symmetry 17 00436 i0052
6 flip v and flip h (implies rot 180 )Symmetry 17 00436 i0062
7 flip d and flip a (implies rot 180 )Symmetry 17 00436 i0072
8all of the above symmetriesSymmetry 17 00436 i0081
Table 4. The two-colour rotation and reflection symmetries of Π 2 . The asterisked isometries are colour-reversing, while the non-asterisked versions are colour-preserving.
Table 4. The two-colour rotation and reflection symmetries of Π 2 . The asterisked isometries are colour-reversing, while the non-asterisked versions are colour-preserving.
IsometryDescription
rot 90 Rotation by 90° counter-clockwise about the centre of a square
rot 90  *Rotation by 90° counter-clockwise about a vertex
rot 180 Rotation by 180° counter-clockwise about either a square centre or a vertex
rot 180  *Rotation by 180° counter-clockwise about the midpoint of an edge
rot 270 Rotation by 270° counter-clockwise about the centre of a square
rot 270  *Rotation by 270° counter-clockwise about a vertex
flip h Reflection in a horizontal line that bisects squares
flip h  *Reflection in a horizontal line passing through edges of squares
flip v Reflection in a vertical line that bisects squares
flip v  *Reflection in a vertical line passing through edges of squares
flip d Reflection in a diagonal line through squares
flip a Reflection in an anti-diagonal line through squares
Table 5. The table lists the 15 two-colour symmetry classes of chrominoes classified by their colour-preserving symmetries (‘non-asterisked’) and colour-reversing symmetries (‘asterisked’). Each class corresponds to a subgroup of D 4 . Additionally, the table includes representative examples for each class and indicates whether there are one ( P 1 = P 2 ) or two ( P 1 P 2 ) distinct chrominoes in each case.
Table 5. The table lists the 15 two-colour symmetry classes of chrominoes classified by their colour-preserving symmetries (‘non-asterisked’) and colour-reversing symmetries (‘asterisked’). Each class corresponds to a subgroup of D 4 . Additionally, the table includes representative examples for each class and indicates whether there are one ( P 1 = P 2 ) or two ( P 1 P 2 ) distinct chrominoes in each case.
Class #SymmetriesExample N P 2
1noneSymmetry 17 00436 i0102
2(a) rot 180 Symmetry 17 00436 i0112
2(b) rot 180  *Symmetry 17 00436 i0121
3(a) flip h or flip v Symmetry 17 00436 i0132
3(b) flip h  * or flip v  *Symmetry 17 00436 i0141
4 flip d or flip a Symmetry 17 00436 i0152
5(a) rot 90 (implies rot 180 and rot 270 )Symmetry 17 00436 i0162
5(b) rot 90  * (implies rot 180 and rot 270  *)Symmetry 17 00436 i0171
6(a) flip v and flip h (implies rot 180 )Symmetry 17 00436 i0182
6(b) flip v and flip h  * (implies rot 180  *)Symmetry 17 00436 i0191
6(c) flip v  * and flip h (implies rot 180  *)Symmetry 17 00436 i0201
6(d) flip v  * and flip h  * (implies rot 180 )Symmetry 17 00436 i0211
7 flip d and flip a (implies rot 180 )Symmetry 17 00436 i0222
8(a) rot 90  *, (implies rot 180 and rot 270  *), flip v  *, flip h *, flip a , and flip d Symmetry 17 00436 i0231
8(b)all colour preserving symmetriesSymmetry 17 00436 i0242
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Garvie , M.R. Symmetry-Based Enumeration of Polyominoes on C-Coloured Checkerboards. Symmetry 2025, 17, 436. https://doi.org/10.3390/sym17030436

AMA Style

Garvie  MR. Symmetry-Based Enumeration of Polyominoes on C-Coloured Checkerboards. Symmetry. 2025; 17(3):436. https://doi.org/10.3390/sym17030436

Chicago/Turabian Style

Garvie , Marcus R. 2025. "Symmetry-Based Enumeration of Polyominoes on C-Coloured Checkerboards" Symmetry 17, no. 3: 436. https://doi.org/10.3390/sym17030436

APA Style

Garvie , M. R. (2025). Symmetry-Based Enumeration of Polyominoes on C-Coloured Checkerboards. Symmetry, 17(3), 436. https://doi.org/10.3390/sym17030436

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop