A Survey of Algorithmic Shapes