Skip to content

Using extensions

Baptiste Lesquoy edited this page Aug 24, 2023 · 10 revisions

Using extensions

The core GAMA software can be extended with some additional plugins, allowing the model to give more capabilities to agents (negotiation, using fuzzy logic, or Bayesian network) or providing connections to external softwares such as R or Matlab.

For instructions to install these additional plugins, interested readers can refer to the dedicated page.

Selected plugins provided by the GAMA community

The update site located at the address http://updates.gama-platform.org/experimental contains new plugins for GAMA mainly developed by the GAMA community (its Github repository is available here). As the name of the repository highlights it, these plugins are for most of them still in development, before integration in the kernel of GAMA.. In addition, there are a few eclipse plugins that also work with GAMA.

The following plugins have been tested and are still supported:

  • RJava: to connect GAMA and R
  • Weka: to connect GAMA and Weka
  • Matlab: to connect GAMA and Matlab
  • Argumentation feature: to allow agents to reason on an argument system
  • Bayesian Network feature: to use Bayesian Network to make decision
  • Fuzzy logic: to use fuzzy logic model to make decision
  • Launchpad:
  • Camisole:
  • ImageAnalysis: to add image processing algorithms to gama
  • Mike and Hecras:
  • MPI:
  • QRCode: to add primitives to encode/decode QRCodes in gaml
  • Switch project:
  • Uml Generator: to be able to generate uml from gaml models inside the GAMA IDE
  • Unity: to connect GAMA to Unity
  • VR:
  • Gaming: to add more interactive types of displays
  • Remote.Gui: to allow exposing some model parameters in order to interact with external application through a network communication
  • ifcfile: to add support for ifc files in gaml
  • Netcdf: to add support for the NetCDF file format in gaml
  • Webcam: to add webcam handling primitives in gaml
  • Graphical editor: to edit gaml models with graphical blocks instead of code
  • Markdown documentation: to add the possibility to generate the markdown documentation of a model
  • Easy shell: to add the eclipse Easy shell plugin to the GAMA IDE
  • git client: to add the eclipse git client into the GAMA IDE

RJava plugin

This plugin allows the modeler to launch some computation on the R software. To this purpose, R should be installed on your computer and GAMA should be properly configured.

This possible connection to R opens thus the possibility for the modeler to use all the statistical functions and libraries developed in this tool of reference. In addition, R scripts defined by the modeler can also be used directly from their GAMA model.

Toward participative simulations with Remote.Gui and Gaming plugins

There are more and more applications of GAMA for participative simulations (LittoSim, MarakAir, HoanKiemAir...). There was thus a need for new features to improve the possible interactions with simulations and the definition of the Graphical User Interface. The two plugins Remote.Gui and Gaming (available in the "Participative simulation" category) attempts to fill this need.

  • Remote.Gui allows exposing some model parameters, in order that they can be modified through a network. This allows, for example, to develop a remote application (e.g. Android application) to control the parameters' values during the simulation.
  • Gaming allows the modeler to define displays that are much more interactive. This is used to define serious games in which the users can have a wide range of possible interactions with the simulation.

Weka and Matlab plugins

Similarly to RJava, Matlab and Weka plugins allow the modeler to run computations on the Matlab and Weka software, taking advantages of all the possibilities of these softwares and of scripts defined by themselves.

Notice that the Matlab plugin requires MATLAB 2019a to be installed and activated on your computer.

The graphical editor

The graphical editor allows to create or edit existing GAMA models using only graphical elements, in a similar way to the scratch programming language. You can find a complete overview of the plugin here.

The Git client

This plugin gives you the possibility to have the same git integration in GAMA than in eclipse, with dedicated views and contextual menus directly in the IDE. For more information you can go to it's dedicated documentation.

  1. What's new (Changelog)
  1. Installation and Launching
    1. Installation
    2. Launching GAMA
    3. Updating GAMA
    4. Installing Plugins
  2. Workspace, Projects and Models
    1. Navigating in the Workspace
    2. Changing Workspace
    3. Importing Models
  3. Editing Models
    1. GAML Editor (Generalities)
    2. GAML Editor Tools
    3. Validation of Models
  4. Running Experiments
    1. Launching Experiments
    2. Experiments User interface
    3. Controls of experiments
    4. Parameters view
    5. Inspectors and monitors
    6. Displays
    7. Batch Specific UI
    8. Errors View
  5. Running Headless
    1. Headless Batch
    2. Headless Server
    3. Headless Legacy
  6. Preferences
  7. Troubleshooting
  1. Introduction
    1. Start with GAML
    2. Organization of a Model
    3. Basic programming concepts in GAML
  2. Manipulate basic Species
  3. Global Species
    1. Regular Species
    2. Defining Actions and Behaviors
    3. Interaction between Agents
    4. Attaching Skills
    5. Inheritance
  4. Defining Advanced Species
    1. Grid Species
    2. Graph Species
    3. Mirror Species
    4. Multi-Level Architecture
  5. Defining GUI Experiment
    1. Defining Parameters
    2. Defining Displays Generalities
    3. Defining 3D Displays
    4. Defining Charts
    5. Defining Monitors and Inspectors
    6. Defining Export files
    7. Defining User Interaction
  6. Exploring Models
    1. Run Several Simulations
    2. Batch Experiments
    3. Exploration Methods
  7. Optimizing Model Section
    1. Runtime Concepts
    2. Optimizing Models
  8. Multi-Paradigm Modeling
    1. Control Architecture
    2. Defining Differential Equations
  1. Manipulate OSM Data
  2. Diffusion
  3. Using Database
  4. Using FIPA ACL
  5. Using BDI with BEN
  6. Using Driving Skill
  7. Manipulate dates
  8. Manipulate lights
  9. Using comodel
  10. Save and restore Simulations
  11. Using network
  12. Headless mode
  13. Using Headless
  14. Writing Unit Tests
  15. Ensure model's reproducibility
  16. Going further with extensions
    1. Calling R
    2. Using Graphical Editor
    3. Using Git from GAMA
  1. Built-in Species
  2. Built-in Skills
  3. Built-in Architecture
  4. Statements
  5. Data Type
  6. File Type
  7. Expressions
    1. Literals
    2. Units and Constants
    3. Pseudo Variables
    4. Variables And Attributes
    5. Operators [A-A]
    6. Operators [B-C]
    7. Operators [D-H]
    8. Operators [I-M]
    9. Operators [N-R]
    10. Operators [S-Z]
  8. Exhaustive list of GAMA Keywords
  1. Installing the GIT version
  2. Developing Extensions
    1. Developing Plugins
    2. Developing Skills
    3. Developing Statements
    4. Developing Operators
    5. Developing Types
    6. Developing Species
    7. Developing Control Architectures
    8. Index of annotations
  3. Introduction to GAMA Java API
    1. Architecture of GAMA
    2. IScope
  4. Using GAMA flags
  5. Creating a release of GAMA
  6. Documentation generation

  1. Predator Prey
  2. Road Traffic
  3. 3D Tutorial
  4. Incremental Model
  5. Luneray's flu
  6. BDI Agents

  1. Team
  2. Projects using GAMA
  3. Scientific References
  4. Training Sessions

Resources

  1. Videos
  2. Conferences
  3. Code Examples
  4. Pedagogical materials
Clone this wiki locally