Skip to content

Displays

RoiArthurB edited this page Feb 22, 2024 · 1 revision

Displays

GAMA allows modelers to define two kinds of displays in a GUI experiment:

  • java 2D displays
  • OpenGL displays

These 2 displays allow modeler to display the same objects (agents, charts, texts ...). However, the OpenGL display offers extended features in particular in terms of 3D visualization and provdies better performance for large scale simulation.

Classical displays (java2D)

The classical displays displaying any kind of content can be manipulated via the mouse (if no mouse event has been defined):

  • the mouse left press and move allows to move the camera (in 2D),
  • the mouse right click opens a context menu allowing the modeler to inspect displayed agents,
  • the wheel allows the modeler to zoom in or out.

Java2D display.

Each display provides several buttons to manipulate the display (from left to right):

  • Pause or resume the current view: when pressed, the display will not be displayed anymore while the simulation is still running,
  • Synchronize, when pressed, the display and the execution of the model are synchronized. Most of the time, this will reduce the speed of the simulation.
  • Zoom in,
  • Zoom to fit view,
  • Zoom out,
  • Take a snapshot: take a snapshot saved as a png image in the snapshots folder of the model folder.
  • Toggle antialias: Antialising produces smoother outputs, but comes with a cost in terms of speed and memory used.
  • Toggle fullscreen ESC: when pressed, the current view will be displayed in fullscreen. To exit this mode, press ESC key.
  • Browse through all displayed agents: when pressed a browse view will be open. Only the species displayed can be browsed.

Java2D display.

In addition to these commands, the contextual menu on the display provides three more commands (in "Presentation"):

  • Toggle overlay: display/hide a semi-transparent toolbar on the bottom of the display, showing the coordinates of the mouse, the zoom, the number of fps (frame per second) of the simulation, and a scale (taking into account the zoom level).
  • Toggle toolbar: display/hide the toolbar on the top of the display.
  • Background: Change the background color.

When the View is displayed in fullscreen mode, the toolbar is now located in the bottom of the View and contain in addition to the previously detailed toolbar, the toggle side-control, and overlay controls and controls of the experiment (run, pause, step...).

Toolbar in a fullscreen mode display.

OpenGL displays

The OpenGL displays displaying offers all the feature provided by java2D but a 3D environnement:

  • same behaviors with left-click, right-click and wheel than in the Java2D displays.
  • command pressed (on Mac OS) or Ctrl (on Windows and Linux) + Left-Click pressed + mouse move: it controls the camera and modify its location/target/orientation.

It opens many ways to visualize and understand your simulation(s) with most of the classical features provided by a 3D environment. More details and illustrations of those features can be found here

Any OpenGL display has the same menu and buttons as the classical Java2D displays. Nevertheless, the sidebar provides more options to manage camera and other options related to OpenGL displays management.

Opengl display.

Camera commands

Key Function
Double Click Zoom Fit
+ Zoom In
- Zoom Out
Up Vertical movement to the top
Down Vertical movement to the bottom
Left Horizontal movement to the left
Right Horizontal movement to the right
CTRL or CMD + Up Rotate the model up (decrease the phi angle of the spherical coordinates)
CTRL or CMD + Down Rotate the model down (increase the phi angle of the spherical coordinates)
CTRL or CMD + Left Rotate the model left (increase the theta angle of the spherical coordinates)
CTRL or CMD + Right Rotate the model right (decrease the theta angle of the spherical coordinates)
SPACE Reset the pivot to the center of the envelope
KEYPAD 2,4,6,8 Quick rotation (increase/decrease phi/theta by 30°)
CTRL or CMD + LEFT_MOUSE Makes the camera rotate around the model
ALT+LEFT_MOUSE Begins Agent Selection using an ROI (Region of Interest)
SHIFT+LEFT_MOUSE Draws an ROI on the display, allowing to maintain it across frames
SCROLL Zoom-in/out to the current target (center of the sphere)
WHEEL CLICK Reset the pivot to the center of the envelope
  • Keystone: the keystone allows to modify the location of the 4 corner points of the environment bounding box. It can be use to project a simulation on a physical model as the projector can introduce some image distortions. Press k to enter in keystone mode, ones the keystone is done repress k to copy the facet in the clipboard. You can now paste your keystone value as a facet in the display.
  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 Models
    1. Runtime Concepts
    2. Analyzing code performance
    3. Optimizing Models
  8. Multi-Paradigm Modeling
    1. Control Architecture
    2. Defining Differential Equations
  1. Manipulate OSM Data
  2. Cleaning OSM Data
  3. Diffusion
  4. Using Database
  5. Using FIPA ACL
  6. Using BDI with BEN
  7. Using Driving Skill
  8. Manipulate dates
  9. Manipulate lights
  10. Using comodel
  11. Save and restore Simulations
  12. Using network
  13. Headless mode
  14. Using Headless
  15. Writing Unit Tests
  16. Ensure model's reproducibility
  17. 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