Find and draw free polyominoes (or square animals)

A polyomino is a plane geometric figure formed by joining one or more equal squares edge to edge. It is a polyform whose cells are squares. It may be regarded as a finite subset of the regular square tiling.

Free polyominoes are distinct when none is a rigid transformation (translation, rotation, reflection or glide reflection) of another (pieces that can be picked up and flipped over). Translating, rotating, reflecting, or glide reflecting a free polyomino does not change its shape.

In this page I calculate the free polyominoes in real time with a simple (and relatively inneficient) algorythm. The polyominoes of the generation N + 1 are calculated from the generation N. For each polyomino of the generation N we try to add a square in every possible positions in order to create a new element for the generation N + 1. The polyomino created (and all its equivalent form found by translation, rotation, reflection) is compared to the polyominoes already found to determine if it's a new element.

Source code on Github
Log:

1 cell: found 1 free polyominoes in 0 s

1 cell: 1 free polyominoe

1.0