| c o n t e n t s | |||||||||||||||||
| r e s e a r c h | |||||||||||||||||
| C o n s t r u c t i n g D e s i g n C o n c e p t s : A Computational Approach to the Synthesis of Architectural Form Kotsopoulos S, Ph.D. Dissertation, Massachusetts Institute of Technology, 2005 |
|||||||||||||||||
| V. A Studio Exercise in Rule Based Composition 3.1 THE DIGITAL INTERPRETER A shape grammar interpreter (Liew 2003) is used for the digital part of the exercise. The interpreter, written in VisualLISP, uses a scripting language based on LISP to describe a rule. Each rule has four parts: left-hand schema, right-hand schema, transformation mapping, and variable mapping. A vector description format (Nagakura 1995) is used to describe the geometry and variables of a schema. The transformation mapping determines any transformation changes between the left-hand schema and the right-hand schema. The variable mappings define a relationship between the parameters of both schemata. A schema is composed of two parts, the geometry and the constraints on the geometry variables. The geometry of a schema is described using a series of vector displacements. Each vector has 3 components: action, vector and label. The action component determines if the shape is a line or a point. The vector component describes the x and y displacement of the shape. The label component determines the name of the label. For example, a horizontal parti line that is 5 units long is described as: |
|||||||||||||||||
| (( action "line") (vector 5 0) (label "parti")) | |||||||||||||||||
| A shape is described as a series of vector displacements that are connected from end to end. For example, the following describes a “parti” square that is 5 units by 5 units in size. |
|||||||||||||||||
| (((action "line") (vector 5 0) (label "parti"))
((action "line") (vector 0 5) (label "parti")) ((action "line") (vector -5 0) (label "parti")) ((action "line") (vector 0 -5) (label "parti"))) |
|||||||||||||||||
| To describe a parametric shape, the numbers in the vector displacement description are substituted with variables.hape is described as a series of vector displacements that are connected from end to end. The following describes a schema that finds all parti rectangles. |
|||||||||||||||||
| (((action "line") (vector l 0) (label "parti"))
((action "line") (vector 0 w) (label "parti")) ((action "line") (vector (- l) 0) (label "parti")) ((action "line") (vector 0 (- w)) (label "parti"))) |
|||||||||||||||||
| Restrictions can be set on the geometry variables to limit the type of sub-shapes found. Theses restrictions are added in the binding-constraints component of the schema. The following example restricts the size of the square to be less than 10 units. |
|||||||||||||||||
| ((binding-constraints
(l (< l 10)) (w (< w 10))) |
|||||||||||||||||