Grasshopper :

La “programmation” visuelle de Rhino pour tous !

Copyright ©Rhinoforyou : ne pas dupliquer.

Préambule

Grasshopper est une application logicielle d’algorithme graphique* ou programmation visuelle conçue pour être utilisée avec Rhino. Grasshopper n’est pas un langage de programmation.

La maîtrise de Rhino n’est pas indispensable mais cela constitue un plus, il en est de même concernant la connaissance ou maîtrise d’un langage de programmation.

Rhino, Grasshopper + V-Ray + Lands Design

Introduction

Grasshopper est un outil unique dans le monde du Design, de la CAO et de la CFAO, il est étroitement connecté à Rhino et a révolutionné la façon de “penser” les projets, d’interagir et de produire avec.

Apparu en 2007 sous forme de module de Rhino (téléchargement et installation indépendants), il est depuis complètement intégré à la version 7.

Vous ne trouverez pas un outil aussi performant et ludique à utiliser parmi l’offre d’autres éditeurs de logiciels. En maîtrisant cet outil fabuleux et novateur, vous accéderez à une nouvelle efficacité et vous augmenterez votre force de proposition en proposant des variantes ou alternatives techniques à vos clients qui seraient impossibles à réaliser avec des outils conventionnels (programmation standard et CAO classique) et ce dans des délais toujours plus courts et contraignants.

Tout comme et avec Rhino, Grasshopper sera utilisé dans toutes les activités professionnelles ainsi que dans l’Éducation, particulièrement reconnu pour ses atouts pédagogiques.

Un outil de recherche de forme

Grasshopper intègre bien sûr la plupart des formes modélisées dans Rhino, vous y trouverez aussi tous les outils 2D et 3D. Il intègre des outils supplémentaires de recherches de formes particulièrement utiles dans le cadre d’une optimisation ou d’une automatisation, qu’il s’agisse de design, d’ingénierie, de fabrication…

Un outil de dessin paramétrique

Grasshopper vous permet de concevoir des pièces paramétriques sur mesure obéissant aux équations les plus complexes. Changez la valeur d’un paramètre et votre dessin va se modifier en conséquence. C’est un formidable outil pour les études de variantes.

Un éditeur d’algorithmes graphiques

Que vous soyez expert en programmation ou totalement novice en la matière, Grasshopper vous permettra par sa facilité d’utilisation et son interface de développement graphique de créer très rapidement l’algorithme dont vous avez besoin en connectant les composants les uns aux autres suivant un schéma constructif que vous seul avez en tête.

Chaque composant se présente sous la forme d’une boite avec des entrées et des sorties qui vous permettent de transformer tout type de variable qu’il s’agisse d’objet ou de géométrie.
La “programmation” devient un jeu d’assemblage visuel de briques élémentaires et n’aura jamais été aussi facile à appréhender !

Un environnement de travail convivial, fluide et ludique

L’interface de Grasshopper est tellement conviviale que la programmation devient ludique. La recherche des composants dont vous avez besoin pour construire votre algorithme est facilitée par un classement logique des icônes. En tapant un mot clé vous pouvez rapidement accéder au composant que vous souhaitez insérer ou bien rechercher une partie de votre algorithme pour zoomer automatiquement dessus. Des sliders, des listes de choix et des boutons sont intégrés à l’interface de telle sorte que vous pouvez piloter directement votre algorithme dans l’interface de développement.

Composez votre interface utilisateur graphiquement et librement

Pour rendre votre programme utilisable par d’autres, Grasshopper vous laisse le choix entre plusieurs solutions pour composer votre interface utilisateur.
À vous de choisir le mode d’interface le plus adapté au type d’utilisateur visé et au degré de finition que vous souhaitez atteindre en fonction du temps et des compétences dont vous disposez.

Le premier niveau d’interface est d’utiliser directement les curseurs, les listes déroulantes, les panneaux de saisie de texte, et les boutons actionneurs utilisés dans votre définition Grasshopper et de les rassembler dans un rectangle pour grouper les composants de votre mini panneau de contrôle ainsi constitué dans Grasshopper

Le second niveau d’interface est d’utiliser le Remote Control Panel, une sorte de “télécommande” ancrable dans la fenêtre de Rhino tel un panneau de propriété, et sur lequel on peut envoyer les éléments de contrôles que l’on souhaite.

Le troisième niveau d’interface est de rendre accessible la définition Grasshopper par une icône qui va lancer l’ouverture du Programme et régler les curseurs d’entrée depuis une barre d’outil de Rhino. On pourra alors instaurer un dialogue avec l’utilisateur dans la ligne de commande comme le font les fonctions Rhino usuelles afin d’inclure un workflow de saisie et d’éventuelles sélections de géométries intermédiaires qui rendront la commande plus interactive.

Le quatrième niveau d’interface est d’utiliser Human UI un plugin de Grasshopper qui permet de coder une interface sans taper une seule ligne de code mais en la construisant avec des composants Grasshopper.

Le cinquième niveau d’interface est de développer une véritable interface personnalisée sous Visual Studio en faisant appel à des compétences de développements. Ceci est particulièrement utile lorsque vous souhaitez commercialiser et/ou protéger votre plugin et rendre l’interaction avec l’utilisateur personnalisée le plus ergonomique par rapport à votre besoin.

Rhinoforyou peut vous accompagner dans ce projet.

Des outils d’organisation pour mettre au point une méthode de travail efficace

Tout comme dans l’édition de code informatique, quand vous créez un algorithme visuel (définition *.gh) sous Grasshopper, il est important de bien organiser le graph pour que la maintenance soit facilitée, que l’on puisse vous relire et que vous puissiez vous y retrouver quand vous y revenez un peu plus tard.

Pour cela Grasshopper met à votre disposition des groupes pour que vous puissiez rassembler les composants qui contribuent à une même fonction par exemple. Vous pouvez également insérer des textes afin de donner des titres à des groupes de composants.

Il également possible d’insérer des images ou des schémas afin d’illustrer ce que fait votre programme Grasshopper.

Pour aller plus loin, Grasshopper vous permet de réduire un groupe de composants en un seul composant, afin que votre algorithme graphique soit plus concis et que vous puissiez prendre ainsi de la hauteur dans votre raisonnement pour concevoir ensuite des fonctions de plus haut niveau en assemblant des sous-programmes.
Ces sous-programmes sont appelés “Cluster”.

Lorsqu’on les convertit en UserObject (cluster externalisé au format *.ghuser) ils peuvent être ajoutés en barre d’outils facilitant ainsi leur réutilisation. Vous pouvez par cette méthode créer un véritable plugin constitué de plusieurs UserObject.

Lorsqu’on les exporte dans des fichiers *.ghcluster avec lien ils peuvent être externalisés afin de pouvoir être échangés avec les autres utilisateurs et bénéficier d’une option de synchronisation afin que les modification se répercutent ou non dans tous les programmes Grasshopper ou ils sont utilisés.

Un débugage performant

Des bulles d’informations vous permettent de voir en permanence les résultats intermédiaires et d’identifier le type d’erreur dans le code. Un code couleur permet de savoir quelle est l’importance d’un message : si c’est orange il s’agit d’un avertissement, si c’est rouge c’est un message critique qui empêche le fonctionnement du composant… Ce système de couleur permet de repérer les erreurs de loin.

Pluridisciplinaire, ouvert à tous les métiers

Parce qu’il fait appel à des outils géométriques en mathématiques universelles, Grasshopper est ouvert à tous les métiers. La complexité des formes créées en fait un formidable outil de création dans le domaine du design et de l’architecture.
Sa grande précision dans la tolérance du dessin lui permet d’assister la conception d’un objet, d’un produit, ou d’un bâtiment jusqu’à la phase de fabrication ou de construction. On l’utilise notamment dans l’Architecture (extérieur, intérieur, paysagère et industrielle), l’Urbanisme, le Design (les mille et un métiers du Design ! tout est design quand on y réfléchit) l’Ingénierie, l’Industrie (navale, automobile, aéronautique …) 

D’autres “start up” vont développer des outils génériques qui vont servir à tous les autres métiers car ils font appel à des connaissances fondamentales ou universelles comme la géométrie, les mathématiques, la logique, un format de fichier spécifique…c’est le cas de notre partenaire GeometryGym qui a rajouté à Rhino la possibilité d’être interopérable avec des logiciels de calculs aux éléments finis et aussi de lire et d’écrire des IFC aux dernières normeshttps://rhinoforyou.com/accueil/103-smart-structural-interpreter.html

Grasshopper est ouvert aux autres langages de programmation

Grasshopper est ouvert aux autres langages de programmation.
Il laisse la possibilité d’inclure des codes en VB.NET, C#.NET, et Python.
Cela permet de profiter de tous les autres développements qui ont déjà été faits dans les autres langages, et d’aller au-delà des possibilités déjà offertes par le plugin en créant vos propres fonctions. Vous pouvez aussi référencer des librairie DLL avec des classes de fonctions appartenant à des kits de développements SDK issus d’autres logiciels.

Rhinoforyou est spécialisé dans le développement d’applications métiers. Cliquez-ici pour en savoir plus.

Une communication à double sens avec le logiciel Rhinocéros

Grasshopper communique parfaitement dans les deux sens avec Rhino : les objets dessinés dans Rhino peuvent devenir les variables d’entrée de votre algorithme Grasshopper pour ensuite être transformés et renvoyés dans Rhino : cela sert notamment pour les études de rétro -conception…
Il est possible de filtrer les objets par calque, par nom et par type de géométrie (point, courbe, surface ou maillage) grâce notamment au composant Geometry Pipeline.

Inversement toute géométrie paramétrique de Grasshopper peut être figée dans Rhino en géométrie statique pour un jeu de dimensions donné en entrée, 
cette opération s’appelle “Bake” (cuire dans Rhino)

Traitement en parallèle des données pour une efficacité optimisée

Qu’il s’agisse d’un enchaînement de calcul et de portes logiques ou de transformations géométriques, un même algorithme créé sous Grasshopper peut être appliqué simultanément à une liste d’objets. Cela permet le traitement en masse d’un grand nombre d’objets en entrée. Grâce aux listes et aux arbres de données, Grasshopper permet de raisonner et de programmer de manière concise une multitude d’opérations.

Et comme si cela ne suffisait pas Grasshopper permet d’exécuter certains composants en multithreading afin d’utiliser la pleine puissance de vos processeurs. Ci-dessous un exemple qui prouve que l’utilisation d’un calcul multi-coeur à augmenté la rapidité de calcul de 63%

Le lien vers les autres logiciels

De nombreux composants vous permettent de lire et d’échanger des informations avec d’autres logiciels : Grasshopper communique très bien avec EXCEL car il peut aussi bien exporter des tableaux qu’aller lire dans des fichiers EXCEL les informations d’entrées qui piloteront votre dessin ou ajouteront de l’information.
De plus il communique aussi très bien avec des logiciels de calcul comme IOSYS GSA, ROBOT, SAP2000 etc… via la bibliothèque de composants GeometryGym.

Adapté à toutes les tailles de projets

Même si Grasshopper a été utilisé dans les projets architecturaux les plus emblématiques, citons la construction des dernières parties de la Sagrada Familia à Barcelone, la tour Shanghai, le Musée des confluences à Lyon, la Canopée des Halles, le Philharmonie de Paris, le centre Pompidou de Metz, la fondation Louis Vuitton, Fondation Luma et tant d’autres ouvrages hors normes partout dans le monde…

… Grasshopper est aussi adapté aux projets les plus modestes ! Il excelle pour répondre à des problématiques de conception non-standard qui sont de plus en plus courantes dans le nouveau design à double courbure des façades de nos immeubles du XXIème siècle et dans la définition des formes des objets en tout genre.

vue extérieure du pavillon français de l’expo universelle de Milan pour lequel Grasshopper à permis de modéliser la structure en optimisant les chutes.

Vue intérieure du pavillon français de l’expo universelle de Milan pour lequel Grasshopper à permis de modéliser la structure en optimisant les chutes.

Stade de Manaus “Arena da Amazônia” (Brésil)

Un affichage en temps réel du résultat

Grasshopper recalcule en permanence la totalité de votre algorithme et affiche en temps réel le résultat graphique dans la fenêtre de Rhino. 

Tous les programmes inclus dedans sont compilés aussitôt écrits.

 

Un générateur d’objets architecturaux pour le format IFC

Grâce au plugin GeometryGym IFC, vous pouvez bâtir dans Grasshopper un modèle IFC contenant toutes les propriétés en parfaite conformité par rapport à la norme ISO pour le BIM.

Un module de design génératif intégré  pour lancer des optimisations : Galapagos

Et si on s’inspirait de la nature pour faire évoluer les paramètres d’un problème en appliquant de légères “mutations” à toutes les données d’entrées et en sélectionnant progressivement au fil des “générations” le modèle qui minimise ou maximise une variable cible. C’est ce que Grasshopper vous permet de faire avec son algorithme génétique Galapagos. Et si vous souhaitez prendre en compte plusieurs paramètres, combinez les dans un indicateur en les pondérant par un facteur associé à leur importance.

Vous vous attendez à une prise en main compliquée ? Et bien non : l’utilisation de l’algorithme génétique Galapagos est très simple. Un seul composant est nécessaire dans Grasshopper. Reliez-le par la gauche aux curseurs des paramètres d’entrée à faire varier avec des flèches roses pour constituer le “génome”, et reliez-le ensuite par le bas au paramètre cible à minimiser appelé “Fitness”.

Un module de simulation physique solveur de contraintes : Kangaroo

Kangaroo Physics est un module complémentaire de simulation physique qui permet de faire sur Grasshopper de la recherche de forme avancée ainsi que des optimisations dans Grasshopper.

Il est basé sur une simulation d’équilibre entre plusieurs forces, ce qui lui permet de modéliser un grand nombre de phénomènes physiques : pesanteur, collisions, raideur d’un ressort, cinématique d’un engrenage, pliage d’un origami…

La prise en compte de la 4ème dimension (le temps permet de modéliser et de visualiser les états transitoires rendant possible les animations même si un mode “Zombie” permet de voir directement l’état final…



Il est surtout connu en architecture pour sa capacité à modéliser des structures voûtées qui fonctionnent très bien aux charges climatiques du vent et de la neige par simulation d’une pression vers le haut exercée sur une coque déformable et cela quelle que soit la complexité du contour du bâtiment.

De nombreux composants additionnels

Grasshopper c’est aussi l’univers du partage.
Fort de la variété de ses utilisateurs, de nombreux développeurs mettent en ligne leurs composants adaptés à leurs métiers, téléchargeables sur le site de Grasshopper directement ou bien sur le site suivant : http://www.food4rhino.com/  Pour connaitre notre contribution : filtrez les résultats avec le mot … Rhinoforyou !

Un site internet et un forum vivants

Sur le site internet de Grasshopper vous trouverez un forum très actif où utilisateurs et développeurs répondront à toutes vos questions :
https://discourse.mcneel.com/c/grasshopper

Cloison tasseaux inclinaison aléatoire

Voici une présentation des nouvelles technologies qui vont débarquées sur la v7 
(la v7 est pour le moment en mode WIP et est déjà accessible pour les détenteurs de la version 6) : 

https://drive.google.com/open?id=1FB7RkoGwbBSxb7U1oeZKrdIlwQLUHstL


Et enfin, pour changer un peu, nous vous présentons 2Shapes for Rhino, un plugin développé principalement en C# dans RhinoCommon quelques parties en c++, plugin gratuit dédié à la conception et à la fabrication de bijoux et disponible sur notre site internet :

Contactez-nous pour une démonstration en ligne gratuite !