This is the official repository of the GAMA platform, an open-source modeling and simulation environment for creating spatially explicit agent-based simulations. GAMA provides an IDE for its own language along with embedded powerful vizualisation capabilities. The goal is to provide an easy to learn but yet efficient environment covering the widest possible range of use cases for agent-based modelling.
For more detailed information about it, visit our website.
https://github.com/user-attachments/assets/8cb6f189-3bfe-42c1-a162-3c8abd5dec8b
See the changelog on the website for a detailed list of changes since version 1.9.0
There's a detailed tutorial that covers all cases in the documentation, but for most user you can just go straight to the releases section of this repository and download the version that corresponds to your needs, we recommend you take a version bundled with a JDK.
To run it from the source code you can either use maven
to build the program yourself, or run it from eclipse
in case you want to inspect the code and/or modify it. In both cases you will first need to clone this repository and to get the Temurin distribution of JDK21.
There is a more detailled explanation on the website about how to do so, here we will only give a fast and easy approach.
The highly recommended configuration for working on this branch is Eclipse for Java and DSL 2024-06, using a different version may expose you to some bugs.
Once you have imported the code base into your workspace, simply open the gama.product
project and open either gama.headless.product
or gama.product
depending if you want to run gama with or without GUI.
In the Overview
pane of the file, click on Synchronize
and then Launch an Eclipse application
and GAMA should start.
First install maven on your computer, then open a terminal at the root of project and follow those steps:
gama.annotations
mvn clean install
gama.processor
gama.parent
The produced release should be stored in the project gama.product
under the target
folder.
If you spot a bug or want to suggest an improvement to GAMA, please do so by posting an issue here: https://github.com/gama-platform/gama/issues.
If you noticed something wrong/not up-to-date or a lack of information on something on the website and the documentation you could create an issue on the website's dedicated repository here: https://github.com/gama-platform/gama-platform.github.io/issues
For general questions about modelling/development on GAMA you can either ask them in the discussions of this repository or on the mailing list
There are a few tutorials explaining how to create new functionalities in gama that you can find in the developing extensions section of the website, and one general explanation of the architecture of the software and important types used in the section Introduction to GAMA Java API.
To contribute to the code you just have to submit a pull-request to this repository, if you encounter any problem to do so, feel free to ask about it either on the github discussions or the mailing list.