A travers cet exercice nous allons explorer les systèmes multi-agents qui permettent de simuler des phénomènes rencontrés, par exemple, dans la nature. Ce que je trouve intéressant, c’est la possibilité d’utiliser ces systèmes dans le domaine de l’urbanisme afin de concevoir les transports.
D’abord, on va télécharger les plugins Anemone et Library Boind qu’on peut trouver sur le site www.food4rhino.com. Ainsi, on va les débloquer en faisant clic droit sur les fichiers téléchargés – propriétés – débloquer – appliquer.
- Exemple 1
On commence par créer une population d’agents. On introduit Surface/Primitive/CenterBox. On introduit un Slider afin de pouvoir modifier cette boite. Ensuite, on introduit le composant Vector/Populate 3D qui permettra de placer des points de façon aléatoire dans la boite créée précédemment.
On rajoute un Slider pour définir le nombre des points, ensuite on va définir la direction des agents en introduisant le composant Boid/Random Vector qui permet de générer des vecteurs de manière aléatoire.
Ensuite on va créer la boucle de traitement afin de déplacer les agents de façon itérative. Pour cela on va utiliser le plugin Anemone. On ajoute les deux composants : Loop Start et Loop End. On rajoute un Slider afin de contrôler le nombre d’itérations. Ensuite on va définir les entrées des boucles de traitement. On ajoute un composant Move qui va effectuer le traitement. En cliquant deux fois sur le composant Loop Start, on observe les points qui se déplacent dans des directions aléatoires.
Par la suite on va créer les trajectoires. Pour cela, on fait d’abord clic droit sur Loop End, ensuite sur record data afin d’enregistrer les données. Ensuite, on réactive Loop Start, et on observe que les trajectoires sont mémorisées.
Afin d’avoir la liste des points successifs, on va introduire le composant Sets/Tree/Flip Matrix. Ensuite on introduit un composant Curve/Spline/Poly Line qui permet de tracer les polylignes qui passent par tous les points.
On peut modifier le déplacement des agents, afin qu’ils se déplacent plus en ligne droite mais que leur déplacement soit modifié. Pour cela on introduit le composant Boid/Random Wander qui permettra de générer différentes directions des agents. On rajoute par la suite le composant Math/Construct Domain, le composant Pi et un Slider.
- Exemple 2
Lors de la réalisation de cet exemple on va reprendre le système du premier exemple, afin de construire un système multi-agents capable de simuler un phénomène d’attraction. D’abord, on rajoute un composant Populate 3D et un composant Boid/Adhere. En changeant les paramètres d’amplitude des deux vecteurs on va obtenir différentes trajectoires pour les agents.
Dans ce cas l’amplitude du composant Random Wander est 0
Dans ce cas l’amplitude du composant Random Wander est 0,25.
- Exemple 3
Lors de cet exemple on va simuler des trajectoires du vol d’oiseau.
Voici le principe qui consiste à calculer le vecteur résultant de 3 forces qui influencent le comportement des oiseaux :
- l’alignement : les oiseaux se dirigent dans la même direction que le groupe ;
- la dispersion : les oiseaux s’éloignent les uns des autres s’ils se retrouvent trop proches ;
- la cohésion : les oiseaux trop isolés cherche à rejoindre le groupe.
Voici une solution programmée sans utiliser les plugins Anemone et Boid.
- Exercice
Afin de réaliser cet exercice on va s’inspirer de la nouvelle gare de Nantes de Rudy Ricciotti. On va positionner des points au hasard sur une surface.
On commence par créer une surface dans Rhino et la placer à une hauteur de 20 mètres. Ensuite on associe cette surface à un paramètre Surface dans Grasshopper. On place des points au hasard sur cette surface en introduisant un paramètre Vector/Populate Geometry. Afin de paramétrer le nombre de points on rajoute un Number Slider entier, et un deuxième pour définir les positions aléatoires des points.
Malgré avoir utilisé le système de l’exercice précèdent, je n’arrive pas à obtenir le résultat attendu et je n’arrive pas à résoudre ce problème.