Constraining 3D meshes to restricted classes is necessary in architectural and industrial design, but it can be very challenging to manipulate meshes while staying within these classes. Specifically, polyhedral meshes—those having planar faces—are very important, but also notoriously difficult to generate and manipulate efficiently. We describe an interactive method for computing, optimizing and editing polyhedral meshes. Efficiency is achieved thanks to a numerical procedure combining an alternating least-squares approach with the penalty method. This approach is generalized to manipulate other subsets of polyhedral meshes, as defined by a variety of other constraints.