The shapes are gameObjects with physics bodies and colliders attached to them. I'm using the built-in 2D physics engine in Unity. The physics components are attached to the GameObjects in the Unity GUI, and then controlled by the Piece and PieceSet behaviors.