Abstract: One of the goals of design research is the creation of systems that can be active participants in the design process, in contrast to many current systems that are primarily passive repositories of information. A number of techniques have been employed for these purposes, including constraint satisfaction, synthesis by analogy, prototype refinement and search in a space of designs; the last of these is the subject of this paper. Two formalisms for search in a geometric design space, structure grammars and solid grammars, are introduced. This work has been supported by the Engineering Design Research Center, an NSF Engineering Research Center, University Libraries Carnegie Mellon University Pittsburgh, Pennsylvania 15213 Geometric Design Spaces Robert F. Woodbury/ Chris N. Carlson, Jeff A, Heisserman Department of Architecture Carnegie-Mellon University Pittsburgh, Pa. USA, 15213 One of the goals of CAD research is the creation of systems that can be active participants in the design process, in contrast to many current systems which are primarily passive repositories of information. This active role can occur in a variety of ways [Galle81, Woodbury87], from the automated evaluation of designs to complete design automation, with more elaborate tlieoretical foundations required as complete automation is approached. A significant boundary is crossed in this spectrum when a machine is used to suggest alternatives; to generate configurations that may satisfy a design problem. A number of techniques have been employed for these purposes, including constraint satisfaction, sysnthesis by analogy, prototype refinement and search in a space of designs. The last of these, search in a space of designs, is the subject of this paper. This paper has three major parts in which are discussed: 1) search in a design space, 2) structure grammars, and 3) solid grammars. 1 Search in a design space Design can be conceived of as search in a space of possible designs. In this paradigm an agent (human or machine) performs design by applying operators to representational states to produce new representational states, until some criterion for completion has been satisfied. The search is incremental, in the sense that the design agent makes only small changes to the representation content on any particular state transition. A design space consists of (in analogy to thejproblem space of Newell and Simon [Newell72]): A representation scheme for designed artifacts. This representation scheme ideally is syntactically well-formed (or valid), that is, every representation within the scheme denotes a realistic artifact and every realistic artifact may be denoted by a representation within the scheme. A representation scheme may also be based upon classes rather than instances. In this case, a representation within the scheme denotes not a single realistic artifact, but an entire family of similar artifacts. A set of constructive operators on the representation scheme. These operators should be both closed and complete, that is, every application of an operator produces a well-formed output (consistent with the representation scheme) if given * First author's telephone number (412) 268-8853, and email address rw@cad.cs.cmu.edu. a well-formed input and every well-formed representation may be produced by a series of operators. A less formal, but crucial, condition on the operators is that they have semantic relevance to the design process ar hand; that each operator corresponds to a meaningful state transition in the space of representations. Several other properties of operators are useful depending upon the type of search used. If the operators are monotonic, that is the application of an operator does not change any previously established facts in a representation, then a pruning strategy based on representational state can be used. If die operators are non-redundant y that is that any particular point in the design space can be reached by only one sequence of operators, then the efficiency of an exhaustive search strategy can be improved. An initial state of a design problem. This is an instance (or set of instances) of a well-formed representation and is taken as a starting point for the search. A design problem, which is specified as a statement of goals that a solution must satisfy if it is to be considered successful. In most real design problems these goals may be quite vague. Since the goals describe conditions that must be met in a design state, evaluating the goals against a state implies an ability to ask questions of a design representation. These take the form of a set of queries on the design representation. These queries, though limited by the information carried in the design representation, should be able to supply all information relevant to goal evaluation. A set of knowledge which may be applied to a given design problem. This knowledge is used (and maintained) by the design agent in determining control of the search. Its use depends upon the same set of queries that is used to compare a design state against a set of goals. Design spaces that display these properties are usually not simple to find, although a wellestablished paradgim for them has been developed in the domain of architectural floor layout (Flemming85). Those parts of the representation and operators that pertain to geometry usually present the largest difficulty in development of a design space. In this paper we present two approaches to the development of geometrically based design spaces: one based on entities we call spatial structures, and the other based upon the well-known paradigm of solids modeling. Spatial structures describe spatial relationships between point sets while solids models provide a means of representation for point sets in two and three dimensional space. 2 Spatial Structure Grammars 2.1 Prologue The spatial structure of an object is embodied in the spatial relationships between its parts. Spatial structure grammars provide a formalism for representing structure as abstracted from the constitutions of component parts, and a production system mechanism for generating families of spatial structures. A spatial structure is an unordered set of ordered pairs. The first member of each pair is a symbol that represents a part, and the second a transformation that specifies the orientation of the part with respect to a common reference. This representation, sufficient to represent an arbitrary N-dimensional spatial configuration of discrete parts, is closed with respect to the standard set operations such as union and set difference, and with respect to the transformation functions that relate substructures. Transformations may be broadly defined to include shape-distorting and non-Euclidean functions. A language of structures is defined procedurally by the action of a set of productions, formulated as rewrite rules, on an initial structure. When the left-hand side of a production matches a substructure in a structure, the substructure is replaced by the production's righthand structure . Any structure that can be derived by the application of some sequence of productions in the grammar to the initial structure is a member of the language, provided it contains only "terminal" parts. The structure grammar formalism provides a basis for characterizing classes of structures that is analogous to Chomsky's phrase structure grammars for symbol strings. Much of the experience gained with implementations of production systems in other domains may be directly applicable to implementations of structure grammar interpreters. It is hoped that fast algorithms and symbolic processing hardware will eventually make interactive graphic tools for structure space explorations a practicaility. 2.2 Definitions and notation Spatial Structures A spatial structure a is a finite set of structure elements: ex = {(aj, / i ) , (a2,/2) (an,/n)J. Each element in the structure is an ordered pair consisting of a symbol aj taken from an alphabet S, and a transformation/i which together express the identity and orientation of a part of the structure. A realization of a structure is obtained by mapping its symbols into point sets in some N-dimensional space, R. By taking the union of these point sets under their corresponding orientation transformations, a new point set is obtained that may be interpreted as ink on a page, or the material makeup of a three-dimensional object, according to the dimensionality of the space. Realization of structures is made precise with the following definitions. Let^ be a mapping of the symbols of S into their corresponding point sets. Then the realization of a structure a is the point set