Design is the computation of shape information that is needed to guide fabrication or construction of artifacts. But it is not so straightforward as, say, the computation of numerical information required to balance a checkbook. This is partly because algebras of shapes are not as well understood and precisely formalized as algebras of numbers, partly because the rules for carrying out shape computations tend to be fluid and ill defined and partly because the predicates that must be satisfied to achieve successful termination are often complex and difficult to specify. For centuries architects have carried out shape computations by hand, using informal procedures and the simplest of tools. Over the last two decades though, they have made in...