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