# Gama Platform

GAMA$^,$ (GIS Agent-based Modeling Architecture, ou Architecture SIG de Modélisation à base d’Agents en français) est une plate-forme de simulation avec un environnement de développement intégré complet de modélisation et de simulation pour créer des modèles à base d’agents spatialement explicites$^,$.

## À propos

La plateforme GAMA a été développée par l’équipe de recherche franco-vietnamienne MSI (située à l’IFI, Hanoï, et faisant partie de l’Unité de Recherche Internationale de l’IRD - SU UMMISCO) de 2007 à 2010. Elle est, depuis 2010, développée par un consortium de partenaires universitaires et industriels dirigé par UMMISCO, parmi lesquels INRAE, l’Université Toulouse-I-Capitole, l’Université de Rouen-Normandie, l’Université Paris-Sud, EDF R&D et le CEA LISC en France, l’Université de Cần Thơ et l’Université des sciences et des technologies de Hanoï au Vietnam.
GAMA a été conçu pour de multiples publics, en particulier : les étudiants dans le milieu de l’éducation et les experts ou chercheurs sans formation en programmation pour modéliser des phénomènes issues de systèmes complexes. La plateforme Gama a été au cœur de nombreux articles scientifiques publiés$^,$. L’environnement GAMA permet d’explorer les phénomènes émergents. Le logiciel se veut être transdisciplinaire et fournis de bases des modèles à base d'agents sur de nombreuses disciplines scientifiques tels que les sciences économiques, la biologie, la physique, la chimie, la psychologie, la dynamique des systèmes.
Le panneau de simulation GAMA permet l’exploration de modèle grâce à une interface graphique pour adapter dynamiquement les paramètres des expérimentations. Au-delà de l’exploration, GAMA permet de créer de nouveaux modèles et de modifier les modèles existants.

## Liste des versions

| Version | Date de publication | Version 32 bits | Version 64 bits | Version du JDK |
| Ancienne version, plus prise en charge : 1.1 | Octobre 2009 | ✔️ | NC | JDK 6 |
| Ancienne version, plus prise en charge : 1.3 | Août 2010 | ✔️ | NC | JDK 6 |
| Ancienne version, plus prise en charge : 1.4 | Décembre 2011 | ✔️ | NC | JDK 6 |
| Ancienne version, plus prise en charge : 1.5 | Juillet 2012 | ✔️ | NC | JDK 6 |
| Ancienne version, plus prise en charge : 1.5.1 | Novembre 2012 | ✔️ | NC | JDK 6 |
| Ancienne version, plus prise en charge : 1.6 | Juillet 2013 | ✔️ | ✔️ | JDK 6 |
| Ancienne version, plus prise en charge : 1.6.1 | Juin 2014 | ✔️ | ✔️ | JDK 6 |
| Ancienne version, plus prise en charge : 1.7 Release Candidate 2 | Avril 2017 | ✔️ | ✔️ | JDK 8 |
| Ancienne version, plus prise en charge : 1.8 | Juillet 2019 | ❌ | ✔️ | JDK 8 |
| Ancienne version, plus prise en charge : 1.8.1 | Juin 2020 | ❌ | ✔️ | JDK 8 |
| Ancienne version, plus prise en charge : 1.8.2 | Mai 2022 | ❌ | ✔️ | JDK 17 |
| Ancienne version, plus prise en charge : 1.9.0 | Mars 2023 | ❌ | ✔️ | JDK 17 |
| Dernière version stable: 1.9.1 | Avril 2023 | ❌ | ✔️ | JDK 17 |
| Dernière version avancée: Continuous (Git) | Aucune | ❌ | ✔️ | JDK 17 |
| Version future: 1.9.2 | À venir | ❌ | ✔️ | JDK 17 |
| Version future: 2.0 | À venir | ❌ | ✔️ | JDK 17 |
| Légende :Ancienne versionAncienne version, toujours prise en chargeDernière version stableDernière version avancéeVersion future |||||

## Base technique

La plate-forme GAMA est un logiciel libre basé sur le projet Eclipse et publié sous une Licence publique générale GNU 3 (GPLv3). Il est écrit en Java et fonctionne dans une machine virtuelle Java.

### Plusieurs domaines d’application

GAMA a été développée avec une approche transversale et pluridisciplinaire pour pouvoir être utilisé dans de nombreux domaines. Ses capacités peuvent être étendues par des modules supplémentaires, mais GAMA est surtout présent dans des domaines comme le transport$^,$$^,$, l’urbanisme$^,$$^,$, l’épidémiologie$^,$ et l’environnement$^,$$^,$.

### Langage de haut niveau basé sur des agents

GAML (GAma Modeling Language) est le langage dédié utilisé dans GAMA. C’est un langage à base d’agents, qui offre la possibilité de construire un modèle avec plusieurs paradigmes de modélisation.
Si ce langage de haut niveau a été inspiré par NetLogo, Smalltalk et Java, GAML a été développé pour pouvoir être utilisé par des non-informaticiens.

### Interface utilisateur déclarative

GAMA offre la possibilité de diversifier les affichages pour un même modèle et d’en afficher plusieurs représentations visuelles différentes (en parallèle ou séquentiellement). Cette modularité permet de mettre en évidence certaines données ou certains points sur lesquels le modélisateur souhaite mettre l'accent dans les simulations du modèle.
Des affichages 3D sont fournis pour contrôler les lumières, les caméras, et aussi pour ajouter des textures aux objets 3D. Des instructions dédiées permettent de définir facilement des graphiques, tels que des séries, des histogrammes ou des tartes.
Au cours des simulations, certaines fonctions avancées sont disponibles pour inspecter la population d’agents.
En 2024, dans le cadre du projet SIMPLE, GAMA est dotée d'une liaison au logiciel Unity, qui permet de visualiser les simulations en utilisant toute la richesse du moteur de jeu, en particulier pour la création d'environnements de réalité virtuelle.

## Exemples de projets

Ci-dessous quelques projets scientifiques utilisant la plateforme GAMA :
* MarrakAir : Modélisation et simulation à base d’agent de la gestion urbaine du trafic et de la pollution atmosphérique à travers une interface tangible appliqué à un quartier de Marrakech.
* Hoan Kiem Air : Même projet que MarrakAir mais appliqué au quartier de Hoan Kiem à Hanoï.
* Proxymix : Outil de visualisation de l’influence de la configuration spatiale sur la collaboration humaine.
* ESCAPE : Un outil multimodal à base d’agent de circulation urbaine pour étudier la réponse individuelle aux événements catastrophiques.
* COMOKIT$^,$ : Modèle générique de politiques publiques d'endiguement de la propagation des épidémies de COVID-19 dans une ville, validé sur la base de différentes études de cas.
* MAELIA: Modèle dynamique des flux et des utilisations de l'eau sur le Bassin Adour-Garonne
* PASHAMAMA: Prospective Adaptability through Scenarios-based Hypotheses And Multi-Agent Modeling of Ecuadorian Amazon: un modèle reconstituant la colonisation et les contaminations par les hydrocarbures de plusieurs "parroquias" de l'Amazonie Equatorienne septentrionale