Frequently Asked Questions 🤔
What is GAMA?
GAMA is a modeling and simulation development environment for building spatially explicit agent-based simulations.
- Multiple application domains: Use GAMA for whatever application domain you want.
- High-level and Intuitive Agent-based language: Write your models easily using GAML, a high-level and intuitive agent-based language.
- GIS and Data-Driven models: Instantiate agents from any dataset, including GIS data, and execute large-scale simulations (up to millions of agents).
- Declarative user interface: Declare interfaces supporting deep inspections on agents, user-controlled action panels, multi-layer 2D/3D displays & agent aspects.
How to cite GAMA?
If you use GAMA in your research and want to cite it (in a paper, presentation, whatever), please use this reference:
Taillandier, P., Gaudou, B., Grignard, A.,Huynh, Q.-N., Marilleau, N., P. Caillou, P., Philippon, D., & Drogoul, A. (2019). Building, composing and experimenting complex spatial models with the GAMA platform. Geoinformatica, (2019), 23 (2), pp. 299-322, [doi:10.1007/s10707-018-00339-6]
or you can choose to cite the website instead:
GAMA Platform website, http://gama-platform.org
A complete list of references (papers and PhD theses on or using GAMA) is available on the references page.
Can we record a video from an experiment ?
No, we cannot directly. But you have two alternatives:
- With the set of images generated with the `autosave` facet of an experiment, you can construct your own video file using powerful software such as ffmpeg.
- You can directly record the video stream using software such as VLC Media Player or QuickTime.
How to ensure reproductibility of a model?
There is a huge effort in GAMA development in order to ensure the reproductibility of the simulations, i.e. when several simulations of the same models are launched with the same random generator seed and same parameter values, they are supposed to provide the same results.
Nevertheless, GAMA provides several ways to speed up simulations runs, e.g. by making parallel the execution of some agents' behaviors. The use of parallelism may destroy the reproductibility of the simulations. More generally, there are many sources of uncertainty which can break this reproductibility.
If you aim at reproductibility, you need to reduce as many as possible all the sources of uncertainty.
- Set the random number generator seed (give a given value to the model
seed
global attribute). - Reduce the parallel execution of agents' behaviors.
- remove all the explicity parallel execution, in particular remove / set to false all the
parallel
facets (e.g. in the loop, ask...). - Set the values of some dedicated preferences to remove automatic parallel executions. This can be done in the experiment block.
- remove all the explicity parallel execution, in particular remove / set to false all the
experiment 'any exp' {
init {
//Make grids schedule their agents in parallel
gama.pref_parallel_grids <- false;
//Make experiments run simulations in parallel
gama.pref_parallel_simulations <- true;
//Make species schedule their agents in parallel
gama.pref_parallel_species <- false;
}
}
- Displays are computed independently from the simulation, and in parallel. Limit computation and model modifications in the aspects.
- Remove any modification of the model in the aspects.
- Do not use any random operators in the aspectss (e.g.
rnd
,one_of
,any
...).
- The use of asynchronous communications (using network) with external applications, the use of files (in particular if they are changed externally) can also modify the behavior of simulations