Logiciels de développement d’algorithmes

L’architecture paramétrique 

Le groupe SmartGeometry définit le paramétrique comme l’outil permettant le passage entre le dessin de certaines formes par CAD à la création de relations géométriques [Aish, R. et al, 2006]. Le but du groupe SmartGeometry est de créer les fondations intellectuelles pour une manière de concevoir plus profonde. Le but n’est pas de changer l’approche intuitive de l’architecte mais de permettre la création et le contrôle de géométries plus complexes. La raison de cette recherche est que, d’après les auteurs, l’architecture de par son obsession du minimalisme par usage de forme orthogonales et plates aurait tendance à oublier sa maîtrise de la géométrie descriptive ou inversement à faire preuve d’impressionnisme par usage de formes trop complexes sans considération du programme. En dehors de leur complexité, ces nouvelles formes pourraient se retrouver être des solutions formelles efficaces dans le projet lorsqu’il s’agit de concilier de nombreuses variables. Hors dans une méthode de travail linéaire traditionnelle, l’architecte dessine, retranscrit et se soucie ensuite des performances. La conséquence d’une telle habitude en architecture est qu’on a préféré faire en sorte de rendre ces éléments simplistes plus efficaces au lieu de s’étendre sur leurs bases géométriques.

C’est ici qu’intervient l’architecture dite algorithmique. Bien que ce terme soit réducteur, cette approche est souvent qualifiée d’architecture paramétrique. En effet un logiciel de BIM tel que Revit est paramétrique dans le sens où il est aisé de modifier un paramètre tel que l’épaisseur des murs ou ces composants sans interférer sur les relations géométriques prédéfinies avec le reste du bâtiment. L’approche étudiée ici est plutôt algorithmique. Le concepteur définit directement l’ensemble des relations géométriques du projet et ses différents paramètres. L’architecte n’est dès lors plus dépendant des principes de constructions encodés par le logiciel, ce qui engage à plus d’innovation.

Terzidis [2006] donne une définition du mot algorithme : “Theoretically, an algorithm is the abstraction of a process and serves as a sequential pattern that leads towards the accomplishment of a desired task.” Terzidis K.

Sur base de cette définition, il offre 2 interprétations ; la rationalisation de la pensée humaine, hors l’information qui compose l’algorithme ne reflète pas nécessairement la nature du résultat, et une expression interprétée de manière à ce que l’ordinateur la comprenne. Dans ces 2 cas il en découle plusieurs avantages considérables. Le premier atout est celui d’une meilleure compréhension du projet. En effet, « encoder» le projet pousse la réflexion plus loin en terme de faisabilité promettant un degré supérieur de compréhension [Aish et al, 2006]. Un autre avantage est l’approche non linéaire du projet. Il n’est plus nécessaire de fixer les décisions prématurément au risque de voir son projet évoluer vers quelque chose qui irait à l’encontre de l’idée de départ. Et enfin, dans une équipe multidisciplinaire, chaque acteur a besoin d’une représentation différente du projet, hors le paramétrique permet cela très facilement. Ayant accès à l’information, le portage vers d’autres formats est très efficace [Leitao, 2017]. La perte de donnée est une problématique récurrente en architecture et fait le sujet de plusieurs recherches. La programmation visuelle ne représente d’ailleurs pas encore la solution efficace pour certains qui prônent une approche programmatique scriptée plus traditionnelle. Mr Leitao par exemple, consacre une partie de son travail au développement d’un programme appelé Rosetta un environnement de programmation écrite, qui tente de résoudre le problème de perte de donnée lors du portage d’information en limitant le nombre d’intermédiaires  .

Le BIM aujourd’hui possède une approche qui rejoint cette idée à travers le A-BIM (Algorithmic Based Building Information Modelling). Mais les informations sont en général emprisonnées dans le logiciel qui les sert, ce qui induit une perte d’information lors d’export et import de fichier mais aussi l’interaction entre acteurs se fait à travers le modèle généré et non le code qui le génère. Dans le même esprit que Leitao [2017] sur la portage d’information, Janssen et al [2017] promeuvent l’usage du VC (Visual Control). L’approche est semblable à celle de la plateforme GitHub, une plateforme de développement software partagé, mais dans le cadre développement d’un projet d’architecture. Elle nécessite donc malheureusement une certaine expertise en informatique.

L’architecture paramétrique permet de lier facilement forme simulation et optimisation à travers une série de logiciels indépendants l’un de l’autre permettant plus de liberté.

Cette interface de programmation visuelle permet donc, en comparaison avec le logiciel de CAD, de débrider la recherche dès le départ. Elle permet entre autre de prendre parti de la puissance computationnelle de l’ordinateur dans un but d’alimenter cette recherche notamment par la simulation et l’optimisation.

Logiciels de développement d’algorithmes 

La programmation visuelle se distingue de la programmation scriptée traditionnelle par l’usage de fonctions, préprogrammées ou non, apparaissant sous forme de nœuds qui acceptent des données en entrée et dont en ressortent un résultat défini par la fonction .

“A module in a dataflow programming language (the programming paradigm of graph based parametric schemata), defined by Wong and Sharp, is « a sequence of program instructions bounded by an entry and exit point”. Burry & Burry [2011]

Un ensemble de nœuds successifs forme une chaîne qui sera l’algorithme définissant le design à travers une série de paramètres déterminés. Les contraintes imposées à ces paramètres définissent le degré d’exploration de la forme. On parle alors de design paramétrique. Cet algorithme définit en fait le concept de base pensé et réinterprété. Cette réinterprétation est limitée dans un logiciel de CAD mais pas ou moins dans le cas de la programmation visuelle. C’est à travers cet environnement de programmation visuelle que l’utilisateur aura accès à une multitude de fonctions aidant à la simulation et à l’optimisation.

Alfaiate [2017] soulève néanmoins un désavantage pour la programmation visuelle; elle ne serait pas appropriée pour les projets plus complexes. Néanmoins, d’après nos sources, ce problème n’est cité que par cette auteure qui promeut une approche plus profonde de l’informatique par la programmation scriptée du projet d’architecture. L’intérêt de ce travail porte ici sur l’architecture à l’échelle de l’architecte plus commun qui s’occupe en général de projets d’envergure plus réduite telle que la maison unifamiliale. Il faut également noter une chose, que ce soit pour les logiciels de CAD ou pour les environnements de programmation visuelles, ceux ci influeront toujours à un certain degré le projet [Janssens, 2011 ; Leitao, 2012 ; Celani, 2012 ; Davis, 2012 ; Stals, 2016] La suite du travail s’appuiera sur le Logiciel Grasshopper en raison de sa popularité en architecture [Cichocka et al, 2017]. Celui ci fonctionne à travers le logiciel de modélisation Rhinoceros3d qui permet un feedback visuel  .

Bien qu’il soit rattaché à la notion de paramétrique, David Rutten, son développeur, le définit comme un éditeur graphique d’algorithmes qui ne requière aucune connaissance en programmation mais une logique de pensée.

David Rutten Architecte diplômé de TU-Delft était frustré de ne pas pouvoir remonter dans son historique afin de modifier les données rentrées dans le logiciel Rhinoceros. Grasshopper, à l’origine appelé « Explicit History », avait pour but de donner l’opportunité à son utilisateur d’étaler le processus linéaire de modélisation de sorte à pouvoir revenir sur chaque étape et en modifier les paramètres tels que la valeur d’une courbure ou une hauteur d’extrusion. Cette approche ne laissa plus qu’au designer à définir un ensemble de relations géométriques aux paramètres variables, d’où le terme de paramétrique. Hors ce procédé de modélisation était déjà
présent sur d’autres logiciels tels que 3DSMax, Revit ou Maya. L’avantage de Grasshopper a été d’évoluer au fil du temps vers un environnement de programmation visuelle complet et indépendant sans plus se limiter uniquement aux fonctions offertes par Rhinocéros. Grasshopper se présente comme un canevas sur lequel on étale une série de fonctions ou « nœuds » que l’on connecte de sorte à les mettre en relations. Le désavantage majeur de l’approche séquentielle est l’absence de « loop » mais ce défaut peut être contourné de différentes manières, soit par des plug-ins, soit en passant par une programmation scriptée, ce que Grasshopper permet très facilement. L’énorme avantage de Grasshopper comparé aux autres environnements de programmation visuelle est le fait qu’il soit gratuit et ouvert. Il est constamment nourri par des plug-ins de la communauté et sert de tremplin éducatif vers la programmation scriptée traditionnelle. C’est notamment sur base d’une série de plug-in, notamment de simulation et d’optimisation que se focalisera la suite de cette étude. Cela n’aurait pas été possible avec d’autres logiciels, de par leurs prix, leurs complexités parfois, le manque de communauté et le manque d’outils directement implémentés, ce que Cichocka et al. [2017] mettent en avant .

Table des matières

Introduction
Introduction générale
Définition du problème
But du travail
Etat de l’art
L’architecture paramétrique
Logiciels de développement d’algorithmes
Outils de support à la simulation
Outils de support à l’optimisation
Accès aux outils de paramétrique
Théorie
Introduction
Mise en place de la définition paramétrique
Optimisation
Le choix de l’algorithme
Cas d’étude
Temps de simulation
Présentation du modèle
Résultats
Choix de l’algorithme
Comparaison des différents algorithmes
Discussion des résultats
Note sur la représentation des données
Pistes pour le futur
Conclusion

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *