Fixed polyomino 2026-11-05
A fixed polyomino is a polyomino considered up to translation only. Moving a finite side-connected square-lattice shape does not change it, but rotating or reflecting it may produce a different fixed shape.
There are two fixed dominoes, horizontal and vertical, although they form one free polyomino class. A fixed square tetromino remains the same under quarter-turn rotation because it already has that symmetry. Thus the word fixed records which transformations are identified, rather than prohibiting a shape from having symmetries.
One can represent a fixed polyomino by a finite set of lattice cells and translate it so the minimum horizontal and vertical coordinates are both zero. This removes positional redundancy for enumeration; connectivity along whole cell sides remains part of the polyomino definition.
Free polyomino 2026-11-05
A free polyomino is a polyomino considered up to translations, rotations, and reflections of the square lattice. Thus two finite side-connected unions of unit squares represent the same free shape whenever a lattice symmetry carries one to the other. Its absolute position and orientation are discarded.
For example, a two-square horizontal domino and a two-square vertical domino are the same free polyomino. A reflected L-shaped polyomino is also identified with its original. Under the fixed polyomino convention, translation is still ignored but rotation and reflection are not, so more shapes are distinguished. A shape with its own symmetries need not have eight distinct orientations: the orbit-stabilizer theorem accounts for the repetitions.
Redelmeier's algorithm Created 2026-10-20 Updated 2026-11-05
Redelmeier's algorithm enumerates fixed polyominoes, identifying translations while retaining different orientations. Put the leftmost cell of the bottom row at the origin. Allowed cells lie above the horizontal axis, or on it at nonnegative horizontal coordinates.
Maintain the occupied set of cells, an untried frontier of adjacent cells, and exclusions inherited from earlier branches. Remove a frontier cell , occupy it, and add neighbours newly exposed by . Recurse with a copy of the updated frontier. On returning, undo those new neighbours and remove from the occupied set, but keep excluded from later sibling branches.
The exclusion prevents a later branch from reconstructing a polyomino already assigned to the branch containing . Requiring new cells to touch the occupied set preserves connectivity; every canonical polyomino has a branch determined by its first available frontier choice. Thus each fixed polyomino is visited once.
At size two there are two fixed polyominoes, horizontal and vertical, but one free polyomino after identifying rotations. Counting free polyominoes needs an additional treatment of symmetry.[ref]
Tromino Created 2026-10-20 Updated 2026-11-05
A tromino is a polyomino made of three unit squares joined along whole sides. Up to translation, rotation and reflection, its two shapes are the straight three-square strip and the L shape. Their area is three, so a board tiled by trominoes must have area divisible by three; that condition alone need not ensure a board tiling. For example, a rectangle admits two straight trominoes.