ArticlePDF Available

Programming framework for architectural design ANAR+: Object oriented geometry


Abstract and Figures

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 field of study. The presented research explores the use of programming as explorative and reflexive 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 predefined 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.
Content may be subject to copyright.
PrograMMing FraMeWorK
For arcHitectural design
ANAR+: object oriented geometry
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 reexive 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 predened 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-
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éfinis, 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,
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.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 soware commonly used by architects. Several ideas originating
from the “Robot Drasman 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
draing 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—prefigures the definition of para-
metric design in which numerical variables are linked together to describe
geometrical relationship between entities.
Continuity of scale: the fluidity between scales allows for the coexistence
in a single description of different 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 definition 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 definition (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 benefits 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
ProGraMMinG fraMeWorK for arcHitecturaL desiGn
programming for design is yet a challenging field of study extending existing
computer tools for design.
Programming as a creative process: is a open source Java
framework for designer and artists (Reas and Fry 2007). At the time of its
initial release, Processing proposed a different 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 soware culture,
where a pre-defined formalism is expected to be adopted by the user, Process- proposed a minimal set of elementary functions stimulating the user
with the opportunity to define his own subjective formalism.
While the definition itself of a design problem is part of the creative process
(Akin 1986; Schön 1983; Simon 1990) and depends intrinsically on specificities
of project contexts. e designer, through his programming practice, defines,
refines, redefines 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 refinements 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 soware, only
few examples introduced a structure intended to be primarily used through a
programming interface. We outline here three different types of commonly
found programming integration:
Integrated Scripting: Scripting refers to a programming language relying
extensively on a specific platform (a CAD soware in this case). e script is
not independent of the targeted soware and cannot be executed outside of
the platform. ey are oen 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-
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 file 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,
Geometric Library: Geometric libraries are meant to be used indepen-
dently from graphic-based specified 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 project
for architectural design. It provides basic functions to manipulate geometrical
elements and aims at enabling the designer to establish his own specific formal-
ism for digital architectural design.
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 defining 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 defined 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 finding).
figure 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
differently than a strictly descriptive model. Moreover, the design process
embeds implicit design choices that oen tend to be hidden in common CAAD
soware. e process of form definition 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
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 offers basic 3-dimensional
environment and interaction, allowing designers to concentrate on form defi-
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 (Reas and Fry 2007), the formalism introduces
careful simplifications to ease form definition, while allowing the invocation
of extended components of a full-fledged object-oriented programming lan-
guage. However easily used in independence as a geometric library, the frame-
work is developed as an extension for the 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 soware. 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 file formats.
As a direct effect 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, modifications in the structure of the geometrical
construction may only happen through code modification. 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 specific benefits 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
modification 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 modification
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 different 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 refined aerward. 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 flexibility 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 different form where geometric characteristics are kept.
Implicitly, through the formalization of an object, all parameters are extracted,
providing different ways to interact with the form. is structure creates an
enclosure where the description of local conditions influences the resulting
form .
Interaction with parameters: Parameters provide a generalized way to
describe numerical values. e influence of parameters can be interactively
CAAD Futures 2009_compile.indd 776 27/05/09 10:47:17
ProGraMMinG fraMeWorK for arcHitecturaL desiGn
explored by the manual modification 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 different
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 modified 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
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 different behaviors. e major distinction between
face and multilines is in their displaying procedures: faces will act as closed
filled 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.
figure 2. three different geometrical constructions leading to the similar representation of a
square, the resulting representations and examples of refinements for each constructions.
CAAD Futures 2009_compile.indd 777 27/05/09 10:47:17
778 G. LabeLLe • J. neMbrini • J. HuanG
Transformations: are oen expressed in the form of push and pop matrix
stacking1. While it provides an efficient way to combine matrices, it tends to
make it more difficult 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 finite 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 reflect 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 different geometrical constructions. A simple
square is used as a point of comparison between different geometrical construc-
1. OpenGL reference:
CAAD Futures 2009_compile.indd 778 27/05/09 10:47:17
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 soware and for
formats still commonly used today in the architectural practice (DXF, OBJ),
this structure describes a geometry without any internal relationship between
figure 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 first point with a translation. e translation
describes the relationship between two points on one edge. e first 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
figure 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 different
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 infinity of edges).
figure 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
ProGraMMinG fraMeWorK for arcHitecturaL desiGn
figure 6. similar construction as previous fig. with a smaller angle and more edges.
e previous examples show how a different geoconstructional process
leads to different meanings and behaviors for each construction. In fact, the
list of different combinations could be extended infinitely. e formalism based
on the predefined 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.
figure 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
figure 8. geometrical construction for a concave form based on translations
in different directions.
figure 9. architectural example of a complex geometric construction.
CAAD Futures 2009_compile.indd 782 27/05/09 10:47:18
ProGraMMinG fraMeWorK for arcHitecturaL desiGn
figure 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);
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();
for(int i=0; i<24; i++){
Face oor = star.copy().apply(complex);
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 floor. e corresponding graph of
internal parametric relationship displays a complex structure where the num-
ber of parameters is kept to only a few different 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, oen 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 specific soware peculiarities. (Nembrini
et al. 2009)
Behind the geometric representation, the logic of a geometric construction is
expressed through a minimal formalism. While a representation could share
many different geometric constructions, the logic might have different 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 specific 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
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 Office for Culture), Switzerland.
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., Koutsofios, 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.
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 aer
four decades, in eCAADe 2008 “architecture in computro, p. 169, Antwerp.
CAAD Futures 2009_compile.indd 784 27/05/09 10:47:18
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,
Reas, C. and Fry, B., 2007, Processing: A Programming Handbook for Visual Designers and
Artists, MIT Press, Cambridge, MA.
Schön, D., 1983, e Reflexive 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 Artificial, MIT Press, Cambridge,
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
... No entanto, uma vez que esta dimensão é descrita principalmente através do viés notacional da linguagem, faremos um paralelo entre Operações Mentais Difíceis e a característica geralmente reconhecida de que modelos paramétricos descritos em VPL possuem complexidade visual, resultante da representação complexa do código, com quantidade numerosa de nós e fios de fluxo de dados (LABELLE;NEMBRINI;HUANG, 2009;DINO, 2012;DAVIS, 2013) Davis (2013) aborda essa característica como Cegueira a Mudança (Change Blindness). Em modelos complexos, o projetista muitas vezes pode não perceber visualmente mudanças nos códigos. ...
... No entanto, uma vez que esta dimensão é descrita principalmente através do viés notacional da linguagem, faremos um paralelo entre Operações Mentais Difíceis e a característica geralmente reconhecida de que modelos paramétricos descritos em VPL possuem complexidade visual, resultante da representação complexa do código, com quantidade numerosa de nós e fios de fluxo de dados (LABELLE;NEMBRINI;HUANG, 2009;DINO, 2012;DAVIS, 2013) Davis (2013) aborda essa característica como Cegueira a Mudança (Change Blindness). Em modelos complexos, o projetista muitas vezes pode não perceber visualmente mudanças nos códigos. ...
... No entanto, uma vez que esta dimensão é descrita principalmente através do viés notacional da linguagem, faremos um paralelo entre Operações Mentais Difíceis e a característica geralmente reconhecida de que modelos paramétricos descritos em VPL possuem complexidade visual, resultante da representação complexa do código, com quantidade numerosa de nós e fios de fluxo de dados (LABELLE;NEMBRINI;HUANG, 2009;DINO, 2012;DAVIS, 2013) Davis (2013) aborda essa característica como Cegueira a Mudança (Change Blindness). Em modelos complexos, o projetista muitas vezes pode não perceber visualmente mudanças nos códigos. ...
Full-text available
A pesquisa está inserida no contexto do Design Computacional, área que explora a computação como uma ferramenta de projeto de arquitetura. Para declarar e desenvolver projetos, é comum a utilização de linguagens de programação visual. No entanto, limitações no uso de linguagens visuais são reconhecidas, como as restrições encontradas na flexibilidade e escalabilidade dos códigos. Para estender o acesso à métodos de resolução de problemas nesses sistemas, usuários frequentemente recorrem ao uso de linguagens de programação textual, que permitem a utilização de mais estruturas de controle. Ainda assim, é comum que arquitetos sejam induzidos a realizar mudanças nos processos para acomodar a falta de controle e resultados inesperados de projeto. Isso acontece em parte pela falta de clareza em como utilizar a programação e todo o potencial dos métodos computacionais. Além disso, há uma falta de evidências empíricas usando projetos reais de arquitetura que apoiem discussões sobre o futuro das ferramentas de programação para arquitetos. Esta pesquisa investiga a comparação entre o uso de linguagens de programação visual e textual e visa sugerir diretrizes para melhorar as interfaces de programação utilizadas atualmente na área. Para isso, realizamos análises baseadas em métricas de avaliação de linguagens de programação e nas Dimensões Cognitivas (GREEN; PETRE, 1996). Adicionalmente, exploramos como estudo de aplicação um Projeto Orientado ao Desempenho, o Vancouver Academic Building do escritório americano Perkins+Will. O escritório implementou inicialmente o projeto usando a linguagem visual Grasshopper, com o objetivo de otimizar o design de uma fachada explorando o equilíbrio entre aspectos de iluminância e eficiência energética. Reimplementamos o estudo de aplicação utilizando uma linguagem textual e o ambiente de programação Rosetta (LOPES; LEITÃO, 2011). À medida que procuramos solucionar a lacuna existente na comparação dos fluxos de trabalho entre linguagens visuais e textuais recorrendo a um projeto real, selecionamos este estudo de aplicação porque ele abrange um processo orientado ao desempenho em vez de um projeto apenas paramétrico. Existem diferenças fundamentais encontradas entre estes dois fluxos de trabalho em relação a estratégias de escalabilidade e fluxo de dados, pois o orientado ao desempenho requer mais estruturas de controle como iteração e recursão. Identificamos diferenças relevantes entre ambas as linguagens e o potencial no uso das textuais no aumento significativo da escalabilidade do código e do modelo; aumento da confiabilidade dos resultados de desempenho do projeto e maior controle e clareza do processo utilizado. Apontamos também para as qualidades de interação e expressividade inerente das linguagens visuais. A partir do cruzamento teórico-prático, indicamos diretrizes que compõem em que medida o uso preferencial de linguagens textuais e linguagens híbridas (que integram ambas) podem melhorar a confiabilidade do Projeto Orientado ao Desempenho, assim como a possibilidade de aplicar métodos mais claros e eficazes no desenvolvimento do Projeto Algorítmico.
... By applying changes on the code rather than on the representation, designers are engaged in a reflexive process in the sense of [26]. From experience gained in design studios, the approach encourages designers to question, make precise and simplify their intentions by themselves [27]. ...
... To achieve the desired characteristics, the proposed method makes use of the prototype framework part of ANAR+, an open source parametric scripting tool used in architectural design studios [27,28]. Implemented as a library extension to the popular coding framework, the framework allows geometry definition through JAVA object-oriented language instructions (the parametric script of Fig. 1). ...
Full-text available
This paper discusses the advantages of using a coding interface both to describe form and run performance simulations in the context of architectural design. It outlines the relevance of combining recent interest in the design community for parametric scripting with available expert-level Building Performance Simulation. This approach enables designers to address performance-related design questions at the early design stage. Pitfalls when considering non-standard solutions and the potential of the approach to circumvent such difficulties are exemplified through a housing building case study, emphasizing the under-evaluated role of the analysis tool in steering design decisions. To circumvent the difficulty for non-expert users to interpret simulation results and transform them into design moves, the use of sensitivity analysis is proposed for its specific interplay with parametric scripting. Its potential for classifying parameters in order of importance is presented in the context of a design problem. The contribution outlines how providing designers with exploratory tools allows to consider sustainable construction in a systemic manner.
... The research presented here proposes a prototype framework meant to represent a proof of concept of the potential of parametric scripting in the context of early design performance assessment. This framework builds on an open source parametric scripting modeling tool developed by the authors and used in architectural design studios [4,5]. Its main characteristic is to concentrate on geometry definition through written code instructions (the parametric script of Figure 1). ...
... The graphical user interface allows continuous alterations of parameters through sliders (as presented in Lagios et al [6]), whereas topological transformations must happen through code modifications. This approach decouples definition from representation and forces the designer to "think before modeling" [4]. ...
The research presents the potential of a new design approach prevalent among architects to address the notoriously difficult early design stage building performance assessment. Through the use of computer code (e.g. scripting), designers are becoming more and more able to automate the geometric description of architectural form. By extending this paradigm to Building Performance Simulation (BPS), it becomes possible for a non-expert user to generate sufficient construction details and building usage information to run full-featured BPS tests. Although limited in their relevance by the users' lack of expertise, such tests can provide early insight in the influence of key parameters on the overall performance. When the scripting approach additionally provides an opportunity for real-time parameter update (e.g. parametric scripting), the parameter space can be dynamically and extensively explored allowing the designer to easily modify the simulation information for interactive comparison of design alternatives. In the paper, the authors present the approach by describing an experimental toolset taking the form of a parametric scripting engine with a set of interfaces to validated expert-level BPS tools, and explain how the toolset integrates into the design process. The potential of the approach for performance assessment is demonstrated through a simple housing case study addressing daylighting, thermal gains and natural ventilation questions. These inherently conflicting aims can be tested for a given set of design con-straints, allowing the designer to make informed choices between differing design solutions. This new design paradigm is relevant in terms of next generation BPS tool development by providing an alternative to current user interfaces traditionally difficult to learn. It also questions the current role definition between BPS expert and designer in transferring a significant part of simulation information definition to the designer, possibly to the benefit of both parts. Last but not least, the approach enables the early assessment of building performance even in the case of partly undefined designs.
... org [1] which has proven very successful in introducing programming to designers. If the library itself has many geometric capabilities already reported elsewhere (Labelle 2009), we will concentrate here on the specific implementation of LOGO that is included in it. This implementation does not claim to replicate the whole LOGO language but instead focuses on a reduced set of instructions which we believe are crucial to introduce core computation concepts to designers. ...
... To achieve the desired characteristics, the proposed method makes use of the prototype framework part of ANAR+, an open source parametric scripting tool used in architectural design studios (LaBelle et al. 2009(LaBelle et al. , 2010. Implemented as a library extension to the popular coding framework, the framework allows geometry definition through JAVA object-oriented language instructions. ...
... During the last decade, it has been discussed how far programming courses support the architecture students' way of thinking. Researchers state that it improves understanding of descriptive geometry when it comes to representations and relations between the entities (Bourdakis, 2010, Burry, Datta and Anson, 2000, LaBelle, Nembrini and Huang, 2009, Kajima and Panagiotis, 2008. Typically, programming in the architecture domain is performed by writing code (e.g. ...
Conference Paper
Full-text available
Computer programming in architecture seems to be commonplace throughout the eCAADe Community. Yet, a critical evaluation of a programming course as seen from a student's side is still missing. During a week-long programming workshop in a fellow university, we have been assessing subjective parameters such as mood, quality of presentation and comprehensibility, comparing these to the actual topics that were covered at this instance. Our results contribute to understanding architecture students in their quest towards algorithmical thinking. We are convinced that the discussion given in this paper will help other teachers to further increase the quality of their lectures. Furthermore, the structure of our approach may serve as basis for further research into recording student behavior during programming courses.
... A promising example of integrating parametric modeling into several modeling tools can be seen in the ANAR+ modeling library [14]. This library is written for Processing [15], an Open Source environment for the coding of interactive applications. ...
Conference Paper
Full-text available
The use of digital tools has become a tremendous aid in the creation of digital, historical reconstructions of architectural projects. While common visualization techniques focus on pre-rendered graphics, it is possible to apply Game Engines for real-time architectural visualization. This article presents the results of different reconstruction case studies, using a variety of design applications and techniques. Specific focus is placed on the use of Building Information Modeling software and on the inherent complexity and limitations in the process of translating an active, evolving model into an environment suitable for use in a real-time system.
... The Open Source ANAR+ system (Labelle et al, 2009) generates scripts from a parametric model in Processing (Reas & Fry, 2007) and includes an option to define native model definitions for a BIM system, in the form of GDL-compatible scripts that are used when defining parametric objects in ArchiCAD. This approach is thus not exchanging geometry, but the underlying recipe to re-create this geometry in the receiving application. ...
Conference Paper
Full-text available
This article discusses some of the limitations in Building Information Modeling, by positioning and comparing it with Parametric Modeling. While inherently parametric, the common approach of utilizing BIM is mainly through labor-intensive modeling. The usability of BIM throughout the design process is strengthened, by improving the integration between both approaches.
This book publishes the peer-reviewed proceeding of the third Design Modeling Symposium Berlin . The conference constitutes a platform for dialogue on experimental practice and research within the field of computationally informed architectural design. More than 60 leading experts the computational processes within the field of computationally informed architectural design to develop a broader and less exotic building practice that bears more subtle but powerful traces of the complex tool set and approaches we have developed and studied over recent years. The outcome are new strategies for a reasonable and innovative implementation of digital potential in truly innovative and radical design guided by both responsibility towards processes and the consequences they initiate.
Conference Paper
By combining parametric scripting with building performance simulations, this work presents how sensitivity analysis can help in the early stages of the design process. By providing quantitative analysis of parameters that influence chosen performance metrics, we can increases the capacity of designers to arbitrate between conflicting performance and design goals. Using a scripted environment linked with EnergyPlus and by using the Morris screening method, we present our approach through a case study. Experiments show the influence of model simplifications and the number of trajectories on accuracy. Qualitative results enable the singling out of specific parameter effects on performance, thereby representing effective design assistance.
It has been more than twenty years since desktop publishing reinvented design, and it's clear that there is a growing need for designers and artists to learn programming skills to fill the widening gap between their ideas and the capability of their purchased software. This book is an introduction to the concepts of computer programming within the context of the visual arts. It offers a comprehensive reference and text for Processing (, an open-source programming language that can be used by students, artists, designers, architects, researchers, and anyone who wants to program images, animation, and interactivity. The ideas in Processing have been tested in classrooms, workshops, and arts institutions, including UCLA, Carnegie Mellon, New York University, and Harvard University. Tutorial units make up the bulk of the book and introduce the syntax and concepts of software (including variables, functions, and object-oriented programming), cover such topics as photography and drawing in relation to software, and feature many short, prototypical example programs with related images and explanations. More advanced professional projects from such domains as animation, performance, and typography are discussed in interviews with their creators. "Extensions" present concise introductions to further areas of investigation, including computer vision, sound, and electronics. Appendixes, references to other material, and a glossary contain additional technical details. Processing can be used by reading each unit in order, or by following each category from the beginning of the book to the end. The Processing software and all of the code presented can be downloaded and run for future exploration. With essays by: Alexander R. Galloway, Golan Levin, R. Luke DuBois, Simon Greenwold, Francis Li, and Hernando Barragán and interviews with Jared Tarbell, Martin Wattenberg, James Paterson, Erik van Blockland, Ed Burton, Josh On, Jürg Lehni, Auriea Harvey and Michaël Samyn, Mathew Cullen and Grady Hall, Bob Sabiston, Jennifer Steinkamp, Ruth Jarman and Joseph Gerhardt, Sue Costabile, Chris Csikszentmihályi, Golan Levin and Zachary Lieberman, and Mark Hansen.
Contents: Professional Knowledge and Reflection-in-Action: The crisis of confidence in professional knowledge From technical rationality to reflection-in-action. Professional Contexts for Reflection-in-Action: Design as a reflective conversation with the situation Psychotherapy: The patient as a universe of one The structure of reflection-in-action Reflective practice in the science-based professions Town planning: Limits to reflection-in-action The art of managing: Reflection-in-action within an organizational learning system Patterns and limits of reflection-in-action across the professions. Conclusion: Implications for the professions and their place in society.
1 Graphical modeling using L-systems.- 1.1 Rewriting systems.- 1.2 DOL-systems.- 1.3 Turtle interpretation of strings.- 1.4 Synthesis of DOL-systems.- 1.4.1 Edge rewriting.- 1.4.2 Node rewriting.- 1.4.3 Relationship between edge and node rewriting.- 1.5 Modeling in three dimensions.- 1.6 Branching structures.- 1.6.1 Axial trees.- 1.6.2 Tree OL-systems.- 1.6.3 Bracketed OL-systems.- 1.7 Stochastic L-systems.- 1.8 Context-sensitive L-systems.- 1.9 Growth functions.- 1.10 Parametric L-systems.- 1.10.1 Parametric OL-systems.- 1.10.2 Parametric 2L-systems.- 1.10.3 Turtle interpretation of parametric words.- 2 Modeling of trees.- 3 Developmental models of herbaceous plants.- 3.1 Levels of model specification.- 3.1.1 Partial L-systems.- 3.1.2 Control mechanisms in plants.- 3.1.3 Complete models.- 3.2 Branching patterns.- 3.3 Models of inflorescences.- 3.3.1 Monopodial inflorescences.- 3.3.2 Sympodial inflorescences.- 3.3.3 Polypodial inflorescences.- 3.3.4 Modified racemes.- 4 Phyllotaxis.- 4.1 The planar model.- 4.2 The cylindrical model.- 5 Models of plant organs.- 5.1 Predefined surfaces.- 5.2 Developmental surface models.- 5.3 Models of compound leaves.- 6 Animation of plant development.- 6.1 Timed DOL-systems.- 6.2 Selection of growth functions.- 6.2.1 Development of nonbranching filaments.- 6.2.2 Development of branching structures.- 7 Modeling of cellular layers.- 7.1 Map L-systems.- 7.2 Graphical interpretation of maps.- 7.3 Microsorium linguaeforme.- 7.4 Dryopteris thelypteris.- 7.5 Modeling spherical cell layers.- 7.6 Modeling 3D cellular structures.- 8 Fractal properties of plants.- 8.1 Symmetry and self-similarity.- 8.2 Plant models and iterated function systems.- Epilogue.- Appendix A Software environment for plant modeling.- A.1 A virtual laboratory in botany.- A.2 List of laboratory programs.- Appendix B About the figures.- Turtle interpretation of symbols.
Standard topological devices can be adapted for shapes, and then used to establish the continuity of computations in a shape grammar. This explains how shapes are structured in relation to one another as rules are applied in computations, even when emergence plays a crucial role.
The architectural studio framework presented here is based on the use of programming as central form generation reflexive medium (Schon, 1983). Its aim is to teach architectural design while introducing a different approach toward computer tools by enabling students to fully explore variations in their designs through the use of coding for form definition. It proposes the students to reflect on their design process through its confrontation to algorithmic formalization (Mitchell 1990). This results in exercising the synthetic re-thinking of their initial sketch intents to comply with the difficult task of fitting the language syntax. With the proliferation and constant replacement of computer tools among the architectural practice, a shift appears in the attitude towards introducing students to different tools: studio teaching is branded by specific software platforms advocated by the teaching team. A lack of generalized view, independent of commercial CAD software, is problematic for the definition of new teaching tools suited for this constantly evolving situation (Terzidis, 2006).