Computational Design I: Theory and Applications