Content uploaded by Julien Nembrini

Author content

All content in this area was uploaded by Julien Nembrini on Dec 19, 2017

Content may be subject to copyright.

PrograMMing FraMeWorK

For arcHitectural design

ANAR+: object oriented geometry

GUILLAUME LABELLE, JULIEN NEMBRINI, JEFFREY HUANG

Media & Design Lab, EPFL, Lausanne, Switzerland

abstract: From the recent advent of scripting tools integrated into commercial CAAD

software and everyday design practice, the use of programming applied to an architectural

design process becomes a necessary eld of study. The presented research explores the

use of programming as explorative and reexive medium (Schön, 1983) through the

development of a programming framework for architectural design. Based on Java, the

ANAR+ library is a parametric geometry environment meant to be used as programming

interface by designers. Form exploration strategies based on parametric variations depend

on the internal logic description, a key role for form generation. In most commercial CAD

software, geometric data structures are often predened objects, thus constraining the

form exploration, whereas digital architectural research and teaching are in need for an

encompassing tool able to step beyond new software products limitations.

keywords: Parametric design, programming language, architectural Geometry, pro-

cessing

résumé : Depuis les récentes avancées en matière d’intégration dans les logiciels commerciaux

et les pratiques quotidiennes de langages de programmation, il est devenu nécessaire d’en faire

un domaine d’étude. La présente recherche étudie l’usage de la programmation pour l’explo-

ration et comme media réflectif (Schön 1983) au travers le développement d’un cadre de

programmation pour la conception architecturale. Basé sur Java, la librairie ANAR+ est un

environnement paramétrique géométrique destiné à être utilisé comme une interface de pro-

grammation par des concepteurs. Les stratégies d’exploration formelle basées sur des variations

paramétriques dépendent d’une description interne logique, un rôle clé pour la génération

formelle. Dans la plupart des logiciels commerciaux de CAO, les structures de données géomé-

triques sont souvent des objets prédéﬁnis, contraignant ainsi l’exploration formelle, alors que

la recherche et l’enseignement de la conception architecturale ont besoin d’un outil englobant

non assujetti aux limitations des nouveaux logiciels.

mots-clés : Design paramétrique, langage de programmation, géométrie architecturale,

processus

T. Tida and T. Dorta (eds)

Joining Languages, Cultures and Visions: CAADFutures 2009

© PUM, 2009

CAAD Futures 2009_compile.indd 771 27/05/09 10:47:17

772 G. LabeLLe • J. neMbrini • J. HuanG

1. ARCHITECTURE AND PROGRAMMING

1.1. Automated Drafting

Integration of advances in CAAD research has typically been only slowly and

gradually implemented within ordinary architectural practice, i.e. within com-

mercial CAD soware commonly used by architects. Several ideas originating

from the “Robot Drasman” project (RD aka SketchPAD (Sutherland 1963) )

can be seen as an important historical precedent (Mark 2008). is research

challenges the nature of the fundamental changes introduced by automated

draing tools in architectural design. A second reading of RD underlines many

key concepts for CAAD which are still sometimes presented as innovations

and helps to understand the fundamental change from handmade technical

drawings to automated process drawing.

Parametric design: the use of enclosures (“sub pictures”), geometric asso-

ciativity (“attachments”) and constraints—preﬁgures the deﬁnition of para-

metric design in which numerical variables are linked together to describe

geometrical relationship between entities.

Continuity of scale: the ﬂuidity between scales allows for the coexistence

in a single description of diﬀerent levels of details that were traditionally devel-

oped in separate drawings.

Geometric variations: automation of drawing production facilitates geo-

metric variations towards a creation of a family of forms.

Simulation: interfacing form deﬁnition with simulation provides the con-

frontation of design choices with approximations of reality.

Rationalisation: the use of computers for design implies the disambigua-

tion of form deﬁnition (Stiny 1993), which may precede or follow ideation.

is is referred as pre- or post-rationalization, whose implications CAAD

detractors have outlined.

At that time, RD emphasized the beneﬁts of an graphical interactive tool

for geometrical constructions. Today, most of current commercial CAD so-

ware can be seen as an extended development of RD concepts. e development

of the ANAR+ library retains key programming concepts from this precursor,

however decoupled from any graphical interface as a commonly adopted and

rarely questioned feature of CAD, in order to study the internal logic of forms

and the description of geometric relationship.

1.2. Code as Design Process

Following the precedent of SketchPad, interactive drawing interfaces represent

the initial penetration of computing in the architectural process. More recently,

the introduction of parametric modeling techniques outlined a need for a bet-

ter distinction between geometric representations and the logical structure of

form. Despite the recent proliferation of programming interfaces for geometry,

CAAD Futures 2009_compile.indd 772 27/05/09 10:47:17

773

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

programming for design is yet a challenging ﬁeld of study extending existing

computer tools for design.

Programming as a creative process: Processing.org is a open source Java

framework for designer and artists (Reas and Fry 2007). At the time of its

initial release, Processing proposed a diﬀerent attitude toward programming,

not anymore perceived as a purely technical matter , in advocating for a plural-

ity of personal formalisms as an act of creation. In response to a soware culture,

where a pre-deﬁned formalism is expected to be adopted by the user, Process-

ing.org proposed a minimal set of elementary functions stimulating the user

with the opportunity to deﬁne his own subjective formalism.

While the deﬁnition itself of a design problem is part of the creative process

(Akin 1986; Schön 1983; Simon 1990) and depends intrinsically on speciﬁcities

of project contexts. e designer, through his programming practice, deﬁnes,

reﬁnes, redeﬁnes his own formalism, describing more closely the nature of the

design problem. Programming, instead of drawing, also matches the nature of

the non-linear design process (Oxman 2006) made of reﬁnements where each

step could compromise the project as a whole.

1.3. Programming in Architecture

Due to the geometric nature of architecture, formal thinking has always been

part of the practice (Cache 1995; Mitchell 1990; Serres 1993). Despite the recent

proliferation of programming interfaces within popular CAAD soware, only

few examples introduced a structure intended to be primarily used through a

programming interface. We outline here three diﬀerent types of commonly

found programming integration:

Integrated Scripting: Scripting refers to a programming language relying

extensively on a speciﬁc platform (a CAD soware in this case). e script is

not independent of the targeted soware and cannot be executed outside of

the platform. ey are oen based on more generic programming languages

with possible variations from the original language. Scripting languages are

partially a transposition of a graphic interface into a programming equivalent.

Examples of scripting languages: MEL (Perl), RhinoScript (VisualBasic), Archi-

CAD’s GDL, AutoLISP.

Geometric Languages: Geometric Languages are mostly procedures

describing how a resulting geometry is created. The geometric languages

describe a geometric output through instructions, instead of end values as used

in ﬁle formats. As an example, instructions to describe curves geometry use

parameters interpreted by a procedure to create the geometrical element. File

formats instead, by describing each coordinates of points, faces, etc, usually

discretize curves into linear elements. e discretized objects don’t exist, they

are created by the interpreter.

CAAD Futures 2009_compile.indd 773 27/05/09 10:47:17

774 G. LabeLLe • J. neMbrini • J. HuanG

Examples of Geometric Languages: PovRAY (based on C language), VRML,

LOGO.

Geometric Library: Geometric libraries are meant to be used indepen-

dently from graphic-based speciﬁed interfaces. ey are based on a mid-level

programming languages such as C++, Java or LISP and provide functions and

algorithms for geometry manipulation. ey can be invoked within the user’s

own code. Examples: OpenGL (primarily meant for rendering).

e work presented here focuses on providing a geometric library to be

used either in conjunction or in the same attitude as the Processing.org project

for architectural design. It provides basic functions to manipulate geometrical

elements and aims at enabling the designer to establish his own speciﬁc formal-

ism for digital architectural design.

2. ANAR+: OBJECT ORIENTED GEOMETRY

Initiated by interests in exploring automatic form generation algorithms such

as genetic algorithms or L-systems, the ANAR+ geometric library presented

here was developed with the underlying aim to provide ways to control the

amount of parameters deﬁning a form, e.g the degrees of freedom of a form.

e intent is to explicitly leave the designer choose which dimensions are to

be automatically explored and which are deﬁned in relationship to these free

dimensions. It results in a formalization framework providing more space to

formulate design intents to be further elaborated by an automated form explo-

ration technique (form ﬁnding).

ﬁgure 1. representations; visual and logical.

2.1. Logical and Visual representations

e study bases itself upon the observation that processes leading to geo-

metrical results represent singular form thinking and should be expressed

diﬀerently than a strictly descriptive model. Moreover, the design process

embeds implicit design choices that oen tend to be hidden in common CAAD

soware. e process of form deﬁnition is believed to be highly personal,

revealing how the form is thought (Mitchell 1990; Stiny 1993).

CAAD Futures 2009_compile.indd 774 27/05/09 10:47:17

775

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

In order to facilitate a variety of design processes to coexist, an open for-

malism is proposed built on well established elementary geometric concepts.

Aiming to combine parametric (e.g. CATIA), dynamic (Cinderella) and pro-

cedural (LOGO) geometries, the ANAR+ library oﬀers basic 3-dimensional

environment and interaction, allowing designers to concentrate on form deﬁ-

nition. Variations can be easily explored through the use of built-in graphical

interface, in the form of sliders, controlling implicitly extracted parameters.

Based on the combination of transformations of elementary geometric entities,

the model better describes the constructional process and design intents which

represent a particular and subjective perspective on an evolving problem con-

text .

Built on a similar programming for non programmers attitude as the open-

source framework Processing.org (Reas and Fry 2007), the formalism introduces

careful simpliﬁcations to ease form deﬁnition, while allowing the invocation

of extended components of a full-ﬂedged object-oriented programming lan-

guage. However easily used in independence as a geometric library, the frame-

work is developed as an extension for the Processing.org environment (IDE).

It provides a minimal framework (camera, texturing, OpenGL functions, etc.)

for testing, learning and sketching. Conceived independently to a graphic

interface, the library is autonomous and does not rely on external libraries. e

geometrical description is based on linear algebra, well documented and widely

used in computer graphics and CAD soware. In order to allow the use of the

created design in usual architectural practice, the library includes exporters to

several CAAD scripting languages and popular geometrical ﬁle formats.

As a direct eﬀect of the introduction of computers in the process of archi-

tectural design—primarily to help with technical representations and drawings

—no clear distinction have been made between the representational model

and the logic behind a representation. e study presented here aims at explor-

ing the design potential of strongly decoupling description from representation.

is conceptual aim is achieved through the use of coding alone to formally

describe the form. If a graphical representation is used to evaluate the outcome

of the formal description, modiﬁcations in the structure of the geometrical

construction may only happen through code modiﬁcation. It must be empha-

sized here that the presented research does not advocate for an exclusive use

of programming in architectural design but for the necessity to explore con-

structional formalisms for their speciﬁc beneﬁts to the design process.

e following sections elaborate on the topological structures and the

parametric implementation mechanism implemented in the ANAR+ library.

2.2. Primitives

e following section outlines geometric entities provided as primitives. Using

the JAVA inheritance structure, primitives could easily be extended to create

CAAD Futures 2009_compile.indd 775 27/05/09 10:47:17

776 G. LabeLLe • J. neMbrini • J. HuanG

more specific elements while providing a common modular structure for

similar objects.

Parametric Framework: To create dynamic geometric structures, every

geometric instance needs to share a common mechanism where a single

modiﬁcation to an element propagates through all dependent objects. Also

called scene graph, this mechanism remains simple and is applied indiscrimi-

nately to all objects of the library. As minimal mechanism, each modiﬁcation

to an entity triggers the rebuild of the objects that are based on it (children).

Each entities have their own build methods with local values and could be

rebuilt on demand according to diﬀerent sets of initial values.

Remaining minimal, this solution ensures a uniform way to interact with

objects while preserving the overall parametric coherence.

Constructional Process: e expression of a variety of form thinking is

kept inside the logic formulation of the form. Every decision is embedded in

the parametric framework where original instances are kept intact. e history

of this process can be reﬁned aerward. e description done through enclo-

sures of finite sets of local condition provides an independence between

instances. is is helpful for reusing or concurrent process.

Numbers - Design with Ratios: In ANAR+, distinct numbers are conceived

as parameters of a form. Relationship among parameters ensure to keep the

amount of parameters as low as possible. Replacing measurements by a set of

simple mathematical relationship is the basic associativity mechanism. is

mechanism can be reproduced when parent parameters are updated and

parameters are chained from one to the other, recursively. e addition of

simple relationship based on local conditions creates complex structures that

can in turn express more complex relationship. is is done in order to reduce

the use of static geometric descriptions while providing a way to keep intact

the process of geometrical construction . e substitution of numbers by ratios

improves the ﬂexibility of geometric constructions enabling conditions to be

easily be updated.

For example (Figure 2), a square could be expressed using only one value

(the length of one side). If the same length is reused through the construction,

the proper ties of a square are kept. A rectangle can be described with two length

for each side, but it could also be described with two values: the ratio of its sides

and the scaling factor. Changes to the parameters, i.e. changing the original

values, will create a diﬀerent form where geometric characteristics are kept.

Implicitly, through the formalization of an object, all parameters are extracted,

providing diﬀerent ways to interact with the form. is structure creates an

enclosure where the description of local conditions inﬂuences the resulting

form .

Interaction with parameters: Parameters provide a generalized way to

describe numerical values. e inﬂuence of parameters can be interactively

CAAD Futures 2009_compile.indd 776 27/05/09 10:47:17

777

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

explored by the manual modiﬁcation of values. On a simplest form, parameters

are represented as graphical sliders through a built-in process. As every param-

eter provide a similar structure, this structure can easily be adapted to diﬀerent

kind of physical interfaces or can be controlled by an automated process.

Absolute Points: Points combine n parameters (representing each coordi-

nates values) according to the dimension of a point. 2 parameters is considered

as 2D point, 3 parameters is considered as 3D, ... nD. A point could contain the

same parameter twice resulting in a constrained point on x=y slope.

Derived points: Derived points are depending on their parents, contrary

to absolute points, they cannot be modiﬁed directly as they are the result of a

relationship. ey enable the expression of relationship such as points in the

middle of two points, intersection between two lines or three planes, center of

a face, transformed point (see Transform primitives), points constrained on a

line.

Points List and Faces: lines (segments), multilines (polylines) and faces

share a common data structure. e structure relies on a list of points. Depend-

ing on the object, they have diﬀerent behaviors. e major distinction between

face and multilines is in their displaying procedures: faces will act as closed

ﬁlled polylines, by assuming that the user is careful in ensuring their planarity.

Non-planar cases are only handled by the display method.

Object: is a combination of faces, points and lines. In ANAR+, while the

primary focus is a logic representation, the Object doesn’t have prescriptive

structures such as BREP data structures with normals orientations. An object

could be composed of a point 1D or line 2D.

ﬁgure 2. three different geometrical constructions leading to the similar representation of a

square, the resulting representations and examples of reﬁnements for each constructions.

CAAD Futures 2009_compile.indd 777 27/05/09 10:47:17

778 G. LabeLLe • J. neMbrini • J. HuanG

Transformations: are oen expressed in the form of push and pop matrix

stacking1. While it provides an eﬃcient way to combine matrices, it tends to

make it more diﬃcult to evaluate the actual position of a vertex . is is due to

the OpenGL optimized calculations where real-time renderings are crucial.

One of the drawback of this approach is that the evaluation of points coordi-

nates is only created for a short period, at the time of rendering. is is prob-

lematic for procedures relying on coordinates such area calculations, distance

between points. In CAD systems, on the other hand, point coordinates are kept

into a database and do not represent the process of generation. Such a geom-

etry without generative process is denoted as an orphaned geometry, in which

the geometry cannot be transformed by updating process parameters.ANAR+

library combines both strategies by creating intermediary geometries while

keeping the constructional process. is provides a mechanism closer to the

traditional CAD structure. Each construction steps result into a geometry that

can be reused in a further process only. e proposed approach combining

generation process and homogeneous geometrical structures inside a single

framework is done by a generalization of transformation operators in such a

way that each needed steps through the creation of an object are kept. e

combination of transformations is the geoconstructional process.

2.3. Geometrical Relationship

e following section explains the formalism in ANAR+ describing the rela-

tionship between geometrical primitives. e primitives as inputs (parents) are

combined together to create a new derived primitive as output (children). In

programming terms, using object-oriented structure, the object have internal

procedures describing how a geometric result could be obtained derived from

the given inputs. is programming structure reduces a geometrical problem

into a ﬁnite set of elements and can be reprocessed when the conditions change

resulting in a propagation behavior. Resulting objects are themselves primitives

and could be reused as parent for a new object, creating more complex struc-

tures. This simple recursive structure is enough to describe a parametric

ge ometry.

A simple example is a point(M) between two points(A,B). e analytical

relationship is the distance between the points(A,B) divided by two. (M) is the

result of (A,B), if (A) or (B) is updated, (M) should reﬂect the new conditions.

(M) could be himself used to calculate (N), the middle point between (A,M).

Simple shape: e next examples detail the representations of the cases

presented in (Figure 2) using diﬀerent geometrical constructions. A simple

square is used as a point of comparison between diﬀerent geometrical construc-

1. OpenGL reference: http://www.opengl.org/sdk/docs/man/

CAAD Futures 2009_compile.indd 778 27/05/09 10:47:17

779

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

tions for the same representation. As outlined by (Stiny 1993), even a minimal

shape is subject to many logical interpretations.

In (Figure 3), the shape is described by the 2D coordinates of the square

vertices. e resulting shape family consists in deformed polygons, with regu-

lar polygons as special cases. e shape is composed of four points without

relations. As seen, this geometrical construction is referred as an orphan geo-

metrical description and is similar to a drawing without geometrical relation-

ship, except to an referential coordinate system. If one point is moved, the other

points remains at the same position. Found in early CAD soware and for

formats still commonly used today in the architectural practice (DXF, OBJ),

this structure describes a geometry without any internal relationship between

elements.

ﬁgure 3. geometrical construction of the square 1 based on absolute coordinates references.

The construction have 8 parameters representing xy coordinates of the form.

e next construction (Figure 4) introduce transformations. e resulting

family of shape includes rectangles, squares or sheared rectangles. In this case,

the points are derived from a ﬁrst point with a translation. e translation

describes the relationship between two points on one edge. e ﬁrst translation

has only one parameter which constrains the point movement to one axis. e

second transformation has two parameters which describe the potential move-

ment of the second two p oints to the XY plane. In this construction, interaction

with the system is done through the change of one point (the origin of the

shape) or through the lengths of each side (translation in X or Y). A shear

behavior is achieved with the 3rd parameter on the second translation.

CAAD Futures 2009_compile.indd 779 27/05/09 10:47:18

780 G. LabeLLe • J. neMbrini • J. HuanG

ﬁgure 4. geometrical construction of the square 2 based on translations. the construction

have 5 parameters: 2 for coordinates and 3 for the transformations.

e third construction (Figure 5 and Figure 6) is based on two diﬀerent

types of transformation in the same construction; translation and rotation. e

resulting family of shape obtained is equilateral triangle, square, regular poly-

gons (Figure 6), circle (with an inﬁnity of edges).

ﬁgure 5. geometrical construction of the square 2 based on rotations and translations.

the construction have 3 parameters.

CAAD Futures 2009_compile.indd 780 27/05/09 10:47:18

781

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

ﬁgure 6. similar construction as previous ﬁg. with a smaller angle and more edges.

e previous examples show how a diﬀerent geoconstructional process

leads to diﬀerent meanings and behaviors for each construction. In fact, the

list of diﬀerent combinations could be extended inﬁnitely. e formalism based

on the predeﬁned primitives allows comparisons to be drawn and outlines the

logical structure of the construction of the geometry.

2.4. Architectural examples

Since the parametric relationships have a tree topology in graph-theoretic

terms, abstracting this information and graphically represent it using the graph

visualization algorithm twopi (part of the graphviz graph layout suite (Ellson

et al. 2001)) enables the representation of the modeling strategies used in

moderately complex examples.

ﬁgure 7. ruled surface construction example. the surface is obtained through a rotation of a

non parallel line around an axis. right, corresponding geometric construction.

CAAD Futures 2009_compile.indd 781 27/05/09 10:47:18

782 G. LabeLLe • J. neMbrini • J. HuanG

ﬁgure 8. geometrical construction for a concave form based on translations

in different directions.

ﬁgure 9. architectural example of a complex geometric construction.

CAAD Futures 2009_compile.indd 782 27/05/09 10:47:18

783

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

ﬁgure 10. code excerpt from the example tower.

Face star = new Face();

int numberOfSides = 5;

Param w1 = new Param(50,0,100);

Param w2 = new Param(50,0,100);

Transform rz = new RotateZ(PI/numberOfSides);

Pt a = Pt.create(0,0,0).translateX(w1);

Pt b = a.copy().translateX(w2).apply(rz);

for(int i=0; i<5; i++)

{

a = a.copy().apply(rz).apply(rz);

b = b.copy().apply(rz).apply(rz);

star.add(a,b);

}

Param height = new Param(5,0,30);

Param d = new Param(100,80,110).tag(“%”);

Param sx = new Param(95,90,110).div(d);

Param sy = new Param(94,90,110).div(d);

Param sz = new Param(104,90,110).div(d);

Param r2 = new Param(6,-20,20).div(d);

Transform complex = new Transform();

complex.translateZ(height);

complex.scale(sx,sy,sz);

complex.rotateZ(r2);

for(int i=0; i<24; i++){

Face oor = star.copy().apply(complex);

Anar.add(oor);

star = oor;

}

In (Figure 10), a more complex formal construction represents the archi-

tectural skeleton of a building depicted in (Figure 9). The programming

sequence remains simple. From this basic construction is derived the structural

elements and inside walls on every second ﬂoor. e corresponding graph of

internal parametric relationship displays a complex structure where the num-

ber of parameters is kept to only a few diﬀerent values.

2.5. Use of the ANAR+ Library

is library has been confronted to various practical contexts: Within the

Phototropic Architecture (LaBelle et al. 2008; Nembrini et al. 2009) project, the

aim is to instantiate an integrated system combining form generation and

simulation in a continuous automation, oen described as a feedback loop. e

ANAR+ library consists on a substantial part of a more general aim to better

CAAD Futures 2009_compile.indd 783 27/05/09 10:47:18

784 G. LabeLLe • J. neMbrini • J. HuanG

integrate form generation, automated exploration, simulation and fabrication

in a compound model (Oxman 2006).

e framework has also been used in teaching to introduce digital design

thinking in general terms, away from speciﬁc soware peculiarities. (Nembrini

et al. 2009)

3. CONCLUSION AND OUTLOOK

Behind the geometric representation, the logic of a geometric construction is

expressed through a minimal formalism. While a representation could share

many diﬀerent geometric constructions, the logic might have diﬀerent mean-

ings depending on the process context. In the ANAR+ library, a formalism is

set to describe and keep an history of logical structures.

Providing a representation of the logical process enable the possibility to

develop speciﬁc operations on the logical representation itself. e modularity

of the geometric library is intended to be used with growth algorithms (such

as Genetic Programming or L-Systems (Prusinkiewicz and Lindenmayer 1990))

and to study combinatorial permutations in complex logical structures. Also,

the restructuring of the geometrical construction could provide promising

avenues for parameters reduction, allowing for instance to constrain the search

space for optimization techniques such as genetic algorithms

ACKNOWLEDGEMENTS

is research has been supported by the Swiss National Science Foundation,

KID grant number K-12K1-118078 and by the SiteMapping media art program

of ProHelvetia (Federal Oﬃce for Culture), Switzerland.

REFERENCES

Abelson, H. and diSessa, A., 1980, Turtle Geometry: e Computer as a Medium for Exploring

Mathematics, MIT Press, Cambridge MA.

Akin, Ö., 1986, Psychology of architectural design, Pion Limited, London.

Cache, B., 1995, Earth Moves: e Furnishing of Territories, MIT Press, Cambridge, MA.

Ellson, J., Gansner, E., Koutsoﬁos, L., Stephen, N., and Woodhull, G., 2001, Graphviz- open

source graph drawing tools, in G. Goos, J. Hartmanis and J. van Leeuwen (eds), Graph

Algorithms, vol. 2265 of Lecture Notes on Computer Science, pp. 594-597, Vienna.

Springer.

LaBelle, G., Nembrini, J., Huang, J., 2008, Simulation-Driven Design System [Phototropic

Architecture], in eCAADe 2008 “architecture in computro”, p. 469, Antwerp.

Mark, E., Gross, M. and Goldschmidt, G., 2008, A perspective on computer aided design aer

four decades, in eCAADe 2008 “architecture in computro”, p. 169, Antwerp.

CAAD Futures 2009_compile.indd 784 27/05/09 10:47:18

785

ProGraMMinG fraMeWorK for arcHitecturaL desiGn

Mitchell, W.J., 1990, e Logic of Architecture [Design, Computation, And Cognition] e MIT

Press, Cambridge, MA.

Nembrini, J. and LaBelle, G., 2009, Architectural Design and Building Simulation, in CISBAT

2009, L aus anne .

Nembrini, J., LaBelle, G., Meagher, M., Zuelzke, N. and Huang, J., 2009, Source studio: teach-

ing programming for architectural design,CAADFutures 2009.

Oxman, R., 2006, eory and Design in the First Digital Age, Design Studies, 27(3):229–265.

Prusinkiewicz, P. and Lindenmayer, A., 1990, e Algorithmic Beauty of Plants, Springer,

NewYork.

Reas, C. and Fry, B., 2007, Processing: A Programming Handbook for Visual Designers and

Artists, MIT Press, Cambridge, MA.

Schön, D., 1983, e Reﬂexive Practitioner: How Professionals ink in Action, Basic Books.

Serres, M., 1993, Les origines de la Geometrie, Éditions Flammarion, Paris.

Simon, H.A., 1969 (3rd edition 1990), e Sciences of e Artiﬁcial, MIT Press, Cambridge,

MA.

Stiny, G: 1993, Emergence and Continuity in Shape Grammars, In CAADFutures’93, pp. 37-54,

Amesterdam, Elsevier Science Publishers.

Sutherland, I. E., 1963, Sketchpad: A Man-Machine Graphical Communication System, PhD

thesis, MIT, Cambridge, MA.

CAAD Futures 2009_compile.indd 785 27/05/09 10:47:18