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.

capture-decran-2022-07-03-115749

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.

capture-decran-2022-07-03-123955

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.

capture-decran-2022-07-03-124507

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.

capture-decran-2022-07-03-125053

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.

capture-decran-2022-07-03-131042

 

 

  • 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.

capture-decran-2022-07-03-145510

Dans ce cas l’amplitude du composant Random Wander est 0

capture-decran-2022-07-03-145532

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 :

  1. l’alignement : les oiseaux se dirigent dans la même direction que le groupe ;
  2. la dispersion : les oiseaux s’éloignent les uns des autres s’ils se retrouvent trop proches ;
  3. la cohésion : les oiseaux trop isolés cherche à rejoindre le groupe.

capture-decran-2022-07-03-195623

capture-decran-2022-07-03-195710

capture-decran-2022-07-03-195725

capture-decran-2022-07-03-195739

 

capture-decran-2022-07-03-195753

Voici une solution programmée sans utiliser les plugins Anemone et Boid.

capture-decran-2022-07-03-200159

 

  • 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.

capture-decran-2022-07-03-211738

 

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.

capture-decran-2022-07-03-215539

capture-decran-2022-07-03-215622

capture-decran-2022-07-03-215911