The constraint model of designing provides a means of demonstrating and exploring the computability of design. Designing is understood as a process of incrementally defining an initially ill-defined question, and concurrently proposing and testing possible answers. That is, not finding THE solution to A problem, but finding A solution to THE problem. Articulating (including inventing and modifying) the question, and exploring possible alternative answers (or designs), are two fundamental activities which can be supported by computers and the constraint model. The authors discuss the use of constraints to explicate design questions, circumscribe feasible regions and specify proposed solutions, and examine the processes of search and scrutiny within a region. Naming, solving history-keeping, block-structuring, identifying and resolving conflicts are among tasks identified that can be rendered to a computer. Questions of knowledge representation and inference making with ambiguity and imprecision are discussed. Examples of the application of the constraint model to design problems in architecture and site planning are illustrated by brief scenarios