1. Architecture Procédurale
Martin Lafréchoux
ENSAV
22 Novembre 2011
Je vais vous faire une présentation sur une idée, l’architecture procédurale.
Je travaille au CNRS, et je fais une thèse en sciences du langage à Nanterre, dans un
laboratoire qui s’appelle MoDyCo.
---
Réf illus : http://www.rossracine.com/
2. Je fais du traitement automatisé du langage. Pour vous donner une idée, le TAL c’est des
choses comme les moteurs de recherche, la traduction automatique, les correcteurs
d’orthographe, etc.
Vous vous demandez sans doute quel rapport ça peut avoir avec l’architecture.
3. Pour commencer, je vais vous expliquer le terme ‘procédural’. Le plus souvent, on l’emploie
dans l’expression ‘génération procédurale’.
La génération procédurale, c’est, dans son essence, créer quelque chose indirectement. Au
lieu de créer directement la chose, on va designer un procédé par lequel la chose sera créée.
Je vous montre une petite vidéo : c’est ADA, une oeuvre d’une artiste allemande, Karina
Smigla-Bobinski.
Comme vous le voyez, ADA est un énorme ballon rempli d’hélium et couvert de picots qui
sont en fait des morceaux de charbon. Elle est enfermée dans une pièce, immobile, et les
visiteurs sont invités à la lancer pour que les picots laissent des traces sur les murs.
Ce qui est intéressant, d’après l’auteur, c’est de se demander où est l’oeuvre, là-dedans :
est-ce que c’est le ballon ? Est-ce que c’est la pièce ? Les deux ?
Qui est l’auteur ? L’artiste ? Mais ce sont les visiteurs qui poussent ADA contre les murs.
Et ADA ne se laisse pas faire.
L’oeuvre, c’est le procédé.
Sources : http://www.smigla-bobinski.com/ / http://www.youtube.com/watch?
v=OcNtvfALW1Y
4. 1. Grammaires
Ce qui fait le lien entre la linguistique (telle que je m’en occupe) et le petit domaine de
l’architecture dont je vais vous parler aujourd’hui, c’est ce qu’on appelle les grammaires
formelles, et plus spécifiquement les grammaires génératives.
Au niveau le plus simple, une grammaire est un ensemble de règles. Une grammaire formelle
est un ensemble de règles permettant de décrire toutes les phrases admissibles d’un langage
donné.
Ref illus : http://plagiarismisnecessary.tumblr.com/post/2157814810/florian-beigel-aru-london-paju-book
5. Grammaires formelles
Les grammaires formelles ont été proposées dans les années 1950 par un linguiste du nom
de Noam Chomsky, que vous connaissez peut-être pour d’autres raisons.
Le diagramme que vous voyez s’appelle un automate à état fini. Il permet de représenter de
manière synthétique toutes les séquences admises par la grammaire. Au lieu d’écrire toutes
les suites de lettres possibles, on fait un diagramme qui permet de les retrouver.
Dans l’exemple ci-dessus, le vocabulaire est composé de 4 lettres, M, X, V et R. Et les
phrases admissibles sont décrites par le diagramme.
On rentre par la flèche IN, et on suit les flèches jusqu’à tomber sur une flèche OUT. Entre les
deux, chaque flèche correspond à une lettre. Le parcours qu’on aura effectué correspond à
un terme appartenant au langage.
Par exemple, celle-ci : VRRRM. Cette séquence est grammaticale : elle fait partie de celles
produites par la grammaire représentée par le graphe à gauche de l’image.
Pour le vérifier, il suffit de parcourir le graphe.
Ref illus : http://www.pnas.org/content/93/24/13515.full
6. L-Systems
Les grammaires formelles ont très rapidement trouvé des applications dans d’autres champs
que la linguistique.
En 1968, le biologiste hongrois Lindenmayer utilise une grammaire formelle pour décrire les
processus de croissance des plantes et des bactéries. On appelle cette grammaire un L-
System. Au départ, il s’agissait de décrire de manière abstraite le développement des algues
et des levures.
(Image : article Müller)
7. L-Systems
Fondamentalement, les l-systems sont des grammaires de réécriture.
Les l-systems permettent de modéliser le caractère fractal de la croissance des plantes.
Ici un exemple simple avec deux règles, exprimées visuellement.
Application en vidéo : http://www.youtube.com/watch?v=yWRFCSIzej0
8. CityEngine
C’est pas grave si ça ne vous paraît pas très clair pour l’instant.
Pour remettre tout ça dans un contexte un peu plus concret, un premier exemple.
Dans les minutes qui suivent, je vais beaucoup vous parler de CityEngine, qui a été développé
en Suisse à la fin des années 90, et qui a été le premier logiciel vraiment complet et
commercialisé à proposé des grammaires de formes appliquées à l’architecture.
C’est un lieu commun de dire que les villes ont des caractéristiques organiques. Comme on
avait décrit des langages, puis des plantes avec des grammaires formelles, l’étape suivante,
c’est modéliser une ville en tant que processus.
9. Premier exemple, Pascal Müller a utilisé un L-System pour décrire la manière dont
s’organisent les réseaux de rues de différentes villes, à partir de variables comme la
configuration géographique, l’élévation du terrain, la densité de population, et des
spécificités locales (par ex. la tendance des villes américaines à être structurées en blocs).
10. La petite vidéo vous montre NYC.
(Ref : Procedural Modeling of Cities,
Yoav I H Parish (parish@imes.mavt.ethz.ch ETH Zürich, Switzerland)
Pascal Müller (pascal@centralpictures.com Central Pictures, Switzerland))
11. A gauche, le plan généré par le L-System.
A droite, le plan réel de Manhattan.
Il y a un certain nombre de différences, mais c’est tout de même très intéressant. Le
positionnement des ponts, par exemple, est assez remarquable.
12. Grammaires de forme
Un dernier concept à introduire : les grammaires de forme On peut appliquer l’idée de la
grammaire générative aux formes elles-mêmes.
En 1971, un article intitulé « Shape Grammar and the Generative Specification of Painting and
Sculpture » introduit l’idée de grammaire de formes, sur le modèle proposé par Chomsky
dans le cadre de la linguistique.
Les grammaires de formes utilisent un alphabet composé de formes simples et permettent, en
appliquant des règles, de les transformer et de les combiner pour créer des formes
complexes, les phrases.
13. On retrouve exactement la même idée dans CityEngine : les grammaires de forme. C’est un
système de règles qui permet de créer les différents aspects d’une ville
Ici, un exemple de règles pour créer une façade basique :
Les pièces (a) se divisent horizontalement en pièces (b)
Les pièces (b) se divisent verticalement pour donner des pièces (c)
Les pièces (c) sont remplacées par des pièces (d)
15. De la même manière, une fois que le plan des rues, CityEngine génère automatiquement des
blocs, puis des bâtiments.
16. En fonction de la parcelle, on applique des règles permettant de définir la forme générale du
bâtiment, puis on affine.
17. Le résultat.
En haut, les blocs en L, en U ou en H du slide précédent. En bas, vous pouvez voir un petit
effort pour reproduire de manière stylisée différents styles architecturaux présents à
Manhattan.
18. On peut aussi définir des grammaires spécifiques pour un bâtiment précis. Ci-dessus, le
Rockfeller Center.
19. CityEngine est aujourd’hui un produit commercial complet, qui a très nettement progressé en
10 ans.
Il permet de générer rapidement des villes, que ce soit à partir de rien ou en important des
plans, des bâtiments, des situations géographiques, réels ou fictifs, et de les importer
directement dans les logiciels de CAD.
Ref : http://www.procedural.com/showcases/showcase/marseilles.html
20. Conclusion
Voilà, c’était une longue introduction, avec des travaux assez anciens (CityEngine date de
1999-2000), et très théoriques.
Maintenant, vous vous posez peut-être la question des applications. Il y en a au moins une
que vous connaissez bien.
Ref illus : http://www.sq.ro/viewer.php?i=63
22. Liberty City New York
GTA IV (2008)
Vous pensez peut-être à quelque chose comme la modélisation extrêmement réaliste de NYC
dans GTA 4.
C’est très différent. Pour transformer NYC en Liberty City, il a fallu à Rockstar Games, le
créateur de GTA, des dizaines d’employés et de programmeurs travaillant pendant plusieurs
années à tout redessiner, à tout recréer, pour un coût total qui se chiffre en dizaines de
millions de dollars.
Si vous vous souvenez de ADA, le ballon couvert de picots — là Rockstar a créé le résultat, et
non un processus.
23. Oblivion (2006)
Un exemple simple de contenu procédural : SpeedTree. C’est un logiciel qui utilise les L-
systems pour générer de la végétation. Il est notamment utilisé dans Oblivion, Dragon Age,
etc.
C’est ce qui permet au jeu d’avoir une très grande surface : au lieu de dessiner un à un les
arbres d’une forêt, on génère automatiquement x km2 de sous-bois. Chaque arbre généré
correspond au modèle de son espèce, mais il est unique.
La génération procédurale est donc d’abord utilisée pour créer rapidement et à moindre coût
du contenu non-essentiel.
C’est loin d’être le seul contenu généré de manière procédurale.
Ref illus : http://www.speedtree.com/gallery/
24. Facile
Difficile
Un exemple plus visuel pour vous montrer un peu plus concrètement des applications.
Pour Left4Dead, Valve a lancé le concept d’AI Director, ou ‘réalisateur artificiel’, et parle de
‘narration procédurale’. C’est un grand mot pour dire que le nombre d’ennemis, leur
positionnement ou celui des objets varie en fonction de la performance des joueurs.
Dans Left4Dead 2 (2010), le ‘réalisateur artificiel’ peut modifier certains éléments du décor à
la volée, en fonction des capacités des joueurs.
Pour cet exemple, les deux itinéraires (avec ou sans grillage) ont été dessinés par des artistes
de Valve. C’est la performance des joueurs au début du niveau qui déterminera si l’AI
Director choisit l’une ou l’autre version.
Tout cela a l’air très moderne.
25. Rogue (1980)
Paradoxalement, ce qui serait aujourd’hui considéré comme une avancée (en tout cas un
indice de modernité) a commencé par nécessité : à l’origine, les ordinateurs manquaient de
mémoire, et il était plus facile de générer le contenu grâce à un algorithme que de le stocker.
Un jeu a poussé cette idée a son paroxysme : Rogue.
Dans Rogue, on est un aventurier qui doit s’enfoncer toujours plus loin dans un donjon
rempli de monstres et d’objets magiques. Comme vous pouvez le voir, c’est assez
minimaliste, graphiquement parlant.
Le rogue-like est un genre qui a été suivi d’un grand nombre des successeurs plus ou moins
proches, jusqu’à aujourd’hui.
Dans Rogue, à peu près tout est généré de manière procédurale : chaque niveau du donjon
est généré au moment auquel le joueur y pénètre, et il est impossible de rencontrer plusieurs
fois le même donjon.
Comment ?
26. Je vous montre rapidement le fonctionnement d’un algorithme de création de donjons
(méthode BSP).
On commence par une pièce rectangulaire, qu’on va diviser de manière récursive jusqu’à ce
que chaque subdivision ait environ la taille des pièces qu’on veut créer.
Donc là, le carré gris représente la surface dans laquelle on va tailler notre donjon, et A et B
sont les deux premiers sous-donjons.
We start with a rectangular dungeon filled with wall cells. We are going to split this dungeon recursively until each sub-dungeon has approximately the size of a room. The
dungeon splitting uses this operation :
■ choose a random direction : horizontal or vertical splitting
■ choose a random position (x for vertical, y for horizontal)
■ split the dungeon into two sub-dungeons
http://roguebasin.roguelikedevelopment.org/index.php?title=Basic_BSP_Dungeon_generation
28. Pour que ça marche, il faut quelques règles supplémentaires : par exemple, on empêche que
la subdivision se fasse trop près des bords.
Le subdivisions s’arrêtent lorsque les plus petits sous-donjons créés ont à peu près la taille
des pièces qu’on veut générer.
Voilà le résultat après 4 itérations.
29. Ensuite, on créé une pièce dans chaque sous-donjon. L’intérêt d’avoir procédé comme on l’a
fait est qu’on est certain que nos pièces ne vont pas se chevaucher.
30. Pour créer les couloirs, on connecte ensemble les subdivisions de même niveau. Là c’est
simple, il y a toujours deux murs qui se font face, mais au pire on peut utiliser un couloir en
L ou en Z.
To build corridors, we loop through all the leafs of the tree, connecting each leaf to its sister. If the two rooms have face-to-face walls, we can use a straight corridor. Else we
have to use a Z shaped corridor.
Now we get up one level in the tree and repeat the process for the father sub-regions. Now, we can connect two sub-regions with a link either between two rooms, or a corridor
and a room or two corridors.
31. On répète le processus pour les sous-donjons de niveau supérieur.
32. Et voilà.
C’est très schématique et assez primitif, mais je voulais surtout vous faire comprendre le
principe.
33. Diablo 3 (2012)
En trente ans, on a progressé graphiquement...
Les graphismes se sont améliorés, mais le principe de base reste le même. Un aventurier
s’enfonce dans un donjon qui est généré à mesure de sa progression.
A vrai dire, la complexité a même nettement décru en 30 ans. Dans Rogue ou dans Nethack,
la pauvreté des graphismes est compensée par une richesse et une variété impressionnante
du contenu ; il est possible d’imaginer des millions de variations de chaque objet, de chaque
lieu, de chaque monstre, parce que la seule chose qui les caractérise c’est une description
textuelle.
Dans un jeu comme Diablo, même si l’agencement du contenu et des niveaux est généré de
manière procédurale, l’aspect artistique (rendu des monstres, des objets, etc.) demande un
travail énorme.
Rogue a eu une autre descendance, qui a suivi un axe d’évolution perpendiculaire : les
graphismes ont stagné, et c’est la complexité de l’univers généré qui a très nettement
augmenté.
34. Dwarf Fortress (2006)
Ici, Dwarf Fortress, dont les graphismes sont en ASCII, en texte, mais qui fait quand même
ramer un PC moderne.
Un monde.
http://rps.net/QS/Images/DW/map2.gif
35. Au début d’une partie de Dwarf Fortress, le monde généré comprend des civilisations dotées
d’une histoire longue et riche, des écosystèmes altérables, une géographie dynamique, des
cetaines personnages ayant une histoire et une durée de vie limitée, etc.
36. Minecraft (2009)
Dans Minecraft, l’univers est généré à la volée, à la mesure que le joueur l’explore. La taille
maximale d’un niveau représente une surface plus de huit fois supérieure à celle de la terre.
(Ref : http://blog.fileplanet.com/2010/11/18/minecraft-wallpaper-no-creepers/minecraft-
wallpaper-6/)
37. Subversion (2012 ?)
Subversion est un jeu en cours de développement depuis 2007. Le développeur a beaucoup
communiqué sur le fait que l’intégralité de l’espace du jeu (c’est-à-dire le plan de la ville,
l’intérieur et l’extérieur des bâtiments) est généré de manière procédurale.
Ref illus : http://www.introversion.co.uk/subversion/
38. Le joueur dirige une équipe de type Mission Impossible, qui doit infiltrer et prendre le
contrôle de bâtiments. Le tout a lieu dans des bâtiments générés de manière procédurale.
Naturellement, ça n’interdit pas la vision artistique ou personnalisation. L’exemple donné
c’est : on a besoin d’un immeuble de bureaux de 30 étages pour le scénario. On génère
l’immeuble, et on modifie légèrement le 29ème étage, parce que c’est là qu’aura lieu l’action.
Le reste du bâtiment est explorable, mais il se contente des réglages par défaut.
La direction artistique s’inspire du mode d’affichage de travail des logiciels de CAD.
Subversion est réalisé par une équipe extrêmement réduite, et il a donc fallu choisir une
approche artistique qui soit peu coûteuse.
La question semble être : peut-on imaginer combiner la richesse de contenu de Dwarf
Fortress avec la qualité graphique de jeux sans génération procédurale ?
39. Conclusion
Ref illus : http://vigilism.tumblr.com/post/960494731/architecture-destruction-this-is-a-
series-that
Ce qu’il faut retenir, c’est que la génération procédurale de contenus permet à un
développeur de créer un environnement virtuel plus vaste et plus interactif que celui qu’une
immense équipe d’artistes met plusieurs années à reproduire.
40. 3. Modules
Ref illus : http://vimeo.com/6736261
Vous me direz, va-t-on enfin en venir à de l’architecture réelle, à un moment ?
Oui, enfin.
41. Brunswick Square (~1830)
Un article publié cette année par des jeunes chercheurs de l’université de Brighton.
Ils ont étudié les façades des maisons de Brunswick Square, à Hove, qui présentent une unité
architecturale assez frappante. De style régence, elles ont toutes été bâties entre 1825 et
1840, environ.
Leu objectif était d’extraire des grammaires de forme à partir de ces façades existantes.
L’objectif est descriptif : analyser, déconstruire un style pour pouvoir l’étudier.
42. Ils ont commencé par faire des mesures précises des façades et des différents éléments qui
les composent.
Ils ont utilisé des moyens tout à fait conventionnels : télémètre laser et mètre ruban, avec
l’accord des propriétaires.
Ces mesures ont permis de diviser les maisons en 6 types fondamentaux, A B C D E F.
43. Ca, par exemple, c’est la façade de type A, qui correspond à près de 40% des maisons.
Comme vous pouvez le voir, sa composition a été analysée et décomposée en éléments
architecturaux simples : galerie, architrave, corniche, entablement, balcon...
Une fois tous les éléments décomposés, création d’un modèle.
44. A un niveau basique, leur modèle est généralisable à toute maison de style régence. Il y a
ensuite un second niveau qui exprime le type général de la maison, et enfin un troisième
niveau, qui permet d’exprimer les spécificités de chaque bâtiment.
C’est un système de règles modulaire.
45. Modern Modular (2008)
Resolution: 4 Architecture produit une maison préfabriquée modulaire, Modern Modular.
Forts de l’expérience acquise sur plusieurs projets d’habitat individuel pour des particuliers,
Resolution: 4 Architecture a conçu une série de blocs modulaires qui peuvent être agencés de
manière pratiquement infinie, pour répondre aux besoins particuliers de chaque client.
Ref illus : http://www.archdaily.com/88167/vermont-cabin-resolution-4-architecture/
46. Le concept, c’est celui de la «mass customization» : la conception modulaire permet d’offrir
le luxe d’une maison d’architecte avec des coûts maîtrisés, et un temps de construction
réduit.
Resolution 4 a conçu les modules en s’inspirant de leurs réalisations plus traditionnelles et
urbaines.
Ref illus : http://re4a.com/?t=1&c=0
47. Notez le point auquel cette logique est proche de celle utilisée pour composer les bâtiments
dans CityEngine, que je vous montrais au début.
48. Quinta da Malagueira (1977)
L’idée de ‘mass customization’ n’est pas nouvelle.
Le programme Quinta da Malagueira, d’Alvaro Siza. Des logements sociaux construits dans la
banlieue d’Evora, à 200 km à l’est de Lisbonne. Il y a environ 1200 logements bâtis sur une
période de plus de 20 ans.
Ref: http://alvarosizavieira.com/1977-quinta-da-malagueira
http://www.flickr.com/photos/ekain/2795271855/
49. L’idée de Siza était de combiner la répétition de formes simples, cubiques, correspondant à la
géométrie habituelle des projets de ce type, tout en parvenant à un degré élevé de variété
architecturale.
On retrouve le concept de « personnalisation de masse » de Modern Modular.
Ref : http://dspace.mit.edu/handle/1721.1/8189
http://crisman.scripts.mit.edu/blog/?p=293
50. Siza a conçu les plans de ces logements dans les années 1970, en travaillant de manière
traditionnelle, c’est-à-dire manuelle.
Ca n’interdit pas de les analyser comme des plans générés par des grammaires formelles.
José Duarte est un architecte et chercheur en informatique portugais, qui a utilisé le
programme construit par Siza comme corpus. Il a cherché à déterminer la grammaire de
formes qui avait présidé à la création du programme.
C’est intéressant pour moi, parce que ça ressemble très exactement à ce que je fais en
traitement automatisé du langage : comme avec l’exemple de Brighton, l’idée est d’identifier
des régularités, puis d’en extraire des règles.
51. Il a ensuite appliqué cette grammaire pour produire automatiquement les plans d’autres
maisons, similaires à celles de Malagueira, mais originales.
On peut considérer que son travail a été un succès, puisque la grammaire générative a été
capable de produire des plans que Siza lui-même n’est pas parvenu à distinguer de ceux
qu’il avait créés.
52. Casablanca (2010)
Enfin, je voulais vous présenter un projet qui utilise les concepts de développement
procédural et modulaire, mais pas les grammaires de formes. Il s’agit du projet de fin
d’études d’Emily Thurlow, présenté à l’AA School of Architecture en 2010.
53. L’idée, ce sont les bidonvilles de Casablanca, qui se constituent spontanément suite à l’exode
rural, en utilisant des techniques traditionnelles issues du nomadisme, qui sont mal adaptées
à l’environnement urbain. Leur croissance ‘naturelle’ n’est pas soutenable.
La première idée du projet est de canaliser le développement naturel du campement en
favorisant une forme en spirale. Selon elle, il s’agit de formaliser l’informel.
http://projectsreview2010.aaschool.ac.uk/html/units.php?unit=80&name=241
54. A mesure que la spirale se développe, les habitations sont recouvertes par une super-
structure modulaire. La structure repose sur un système de tenségrité, auto-constructible et
extensible en fonction de la croissance de la population. Il y a des zones cultivables
intégrées, pour une «agriculture de proximité».
Je voulais vous montrer ce projet pour que vous voyiez que ce n’était pas forcément une
affaire de programmation. C’est d’abord une manière de raisonner. Là, l’approche de
l’architecte était très low tech, très concrète, avec énormément de travail sur les différentes
structures en tenségrité.
Après, pour être pleine de bonnes intentions, ce n’est peut-être pas une approche très
adaptée à la situation des personnes qu’elle veut aider. Sur un site web marocain, je lisais
quelqu’un qui disait «j'apprécie bcp le projet, architecturalement et visuellement parlant. Par
contre, sur le fond, si cette population a déserté la campagne c'est justement par ce qu'elle
ne veut plus faire de l'agriculture»
55. Beachview Bluffs (2010)
Pour terminer, je voulais vous montrer une oeuvre d’un artiste canadien, Ross Racine.
A première vue, on dirait une photo aérienne d’une banlieue quelconque.
Pourtant, assez rapidement, on ressent une sorte d’inconfort, de déséquilibre : il y a quelque
chose qui ne va pas. Cette banlieue ne s’arrête nulle part. Elle pourrait continuer infiniment,
en alternant régularités et variations locales, toujours semblable à elle-même, avec ses ilots
d’identité minimale.
En réalité, le travail de Ross Racine est réalisé entièrement à l’ordinateur, à la main, sans
programmation ni photographie. Il dessine à la souris, sans modèle. En mélangeant dessin et
imagerie numérique, il créé des objets incertains — à la fois modèle de développement futur
et documentation de lotissements impossibles, exagérés, monstrueux.
Il me semble qu’il y a, dans sa démarche, quelque chose d’important. Une saine satire de la
démarche procédurale, qui remet bien les choses à leur place. Pousser les logiques à leur
dernière extrémité n’a pas grand sens, si personne n’est là pour contrôler le résultat.
----
Plus d’infors sur son site : http://www.rossracine.com/y-extrafiles/RossRacine-
demarche.pdf
56. Conclusion
Pour vous faire une analogie avec mon propre travail, c’est à peu près la même différence
qu’entre la traduction faite par un traducteur et la traduction machine.
Malgré des décennies d’efforts pour faire faire de la traduction aux ordinateurs, on est encore
très loin de pouvoir leur confier toutes les tâches. Mais ce n’est pas pour ça qu’ils n’ont
aucune utilité.
Il n’y a pas de module de traduction automatique dans les logiciels de TAO.
Si vous voulez vous mettre à la programmation, vous pouvez vous tourner vers Python, qui
est un langage générique à la fois puissant, lisible, et relativement facile à apprendre.
Si vous cherchez quelque chose de plus spécialisé, il y a Processing, qui est basé sur Java, et
spécifiquement destiné aux gens qui souhaitent adopter une approche plus visuelle de la
programmation.
Ref illus : http://www.nytimes.com/2010/12/19/magazine/19Urban_West-t.html
http://processing.org
57. Merci
Merci de votre attention
Bibliographie si vous voulez en savoir plus.
Excellent article de synthèse :
http://bldgblog.blogspot.com/2009/08/procedural-destruction-and-algorithmic.html
Les articles d'origine de Pascal Müller, l'auteur de CityEngine :
http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/PaperCities
Pixel City, un projet simple de ville procédurale, très bien expliqué :
http://www.shamusyoung.com/twentysidedtale/?p=2940
Liens sur les algorithmes utilisés par les rogue-likes :
http://www.emanueleferonato.com/2009/06/02/understanding-roguelike-dungeons/
Sur José Duarte et les Shape Grammars :
http://crisman.scripts.mit.edu/blog/?p=293
Des projets réalisés grâce à Processing :
http://designplaygrounds.com/deviants/processing-for-architecture/
-----
Ref image : http://www.complexification.net/gallery/machines/substrate/