POLYOMINO_MONOHEDRAL_VARIANTS, a MATLAB program which computes the distinct variants of a polyomino under reflection and 90 degree rotations.
A polyomino is a shape formed by connecting unit squares. It can be described by an MxN binary matrix. The matrix is assumed to be "tight", that is, there must be a 1 in the first and last rows, and first and last columns, of the matrix.
A polyomino can be rotated by 90, 180, or 270 degrees, and it can be reflected. There are 8 combinations of these transformations possible, so there are 8 variations of a given polyomino. However, because of symmetry, there may be 1, 2, 4, or 8 distinct variations.
This program accepts a binary matrix describing a polyomino, generates the 8 variations, and returns those which are distinct.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.