Skip to content

Migrating from 2025 06

RoiArthurB edited this page Jul 28, 2026 · 3 revisions

Migrating from GAMA 2025-06 to 2026-06

This page lists all breaking changes and deprecations between GAMA 2025-06 and 2026-06, with guidance on how to update your models.

For a complete list of all changes, see the Changelog.

Before You Start

  1. Back up your models before applying any changes.
  2. Use the auto-upgrade tool included in GAMA 2026-06 — it will automatically fix most syntax changes (diffuse, transition, with: pairs, arrow braces, do parentheses, display/experiment names, etc.). It ships in the gaml.grammar plugin and can be run from the command line on a directory of models: java gaml.grammar.transition.GamlFileProcessor <root> [--dry-run] (with --dry-run, changes are only previewed, no file is written).
  3. Read the full ChangelogMajor changes from 1.9.3 to 2026-0 covers everything listed here plus additional improvements.

GAML Language Changes

diffuse statement

The diffuse statement no longer accepts the var: facet.

Before (2025-06) After (2026-06)
diffuse var: my_variable amount: 0.1 diffuse my_variable amount: 0.1

See Diffusion.

transition statement

The transition statement no longer accepts to: or from:.

Before After
transition to: my_action transition my_action
transition from: my_action transition my_action

with: pairs syntax

The with: facet no longer uses square brackets [] and double colons ::. Use parentheses () and single colons :.

Before After
create foo with: [size::2, color::red] create foo with: (size: 2, color: red)

Note: the with: modifier in the global section follows the same rule. Nested [...] list expressions inside the argument list are untouched: with: [values::[1, 2]] becomes with: (values: [1, 2]).

do and invoke statements

Parameter-less action calls now require an explicit (empty) argument list.

Before After
do my_action; do my_action();

The returns facet of do is removed. Call the action as an expression and assign directly.

Before After
do some_action returns: result; result <- some_action();

Arrow (->) expressions — braces removed

The outer curly braces around the body of -> expressions are no longer valid.

Before After
int my_var -> { cycle * 2 }; int my_var -> cycle * 2;

Display and experiment names — explicit title:

The name right after display or experiment must now be a valid identifier (no spaces or special characters); the human-readable label goes in the title: facet.

Before After
display "3 Simulations" { ... } display _3_Simulations title: "3 Simulations" { ... }
experiment "Hello World!" { ... } experiment Hello_World title: "Hello World!" { ... }

action declaration

Actions no longer use the deprecated declaration syntax. Actions are always declared at the top of the species block in GAML 2026-06.

let and set statements

Let-variables now behave differently at the scope level. They are fully local and do not propagate to other agents.

The let ... type: ... and set forms are replaced by plain typed declarations and assignments:

Before After
let x type: int value: 5; int x <- 5;
set x value: 5; (or set x <- 5;) x <- 5;

list of: type syntax

Before After
list of: int list<int>
list of: my_species list<my_species>

arg statements in action bodies

Arguments are no longer declared with arg statements inside the action body; declare them in the action signature.

Before After
int my_action { arg x type: int default: 1; ... } int my_action (int x <- 1) { ... }

valueupdate

The value facet on variable declarations is now update.

Before After
int my_var value: 10 int my_var update: 10

save and restore

The save_simulation() action has been removed. The Save statement now uses format: instead of type:, and attributes: instead of with:.

Before After
save_simulation() save format: "json"
save to: "file.sim" type: "json" save to: "file.sim" format: "json"
save to: "file.sim" with: [a, b] save to: "file.sim" attributes: [a, b]

See Save and restore Simulations for examples with save / restore.

Statement & Display Changes

Display facets

See Defining Displays Generalities.

Deprecated Replacement
refresh_every use refresh: every(n)
focus use camera default target: the_agent; in layer definitions (not available in Java2D)
synchronized now a property of output, not per-view
scale always displayed, facet removed
draw_env use axes
ambient_light, diffuse_light, draw_diffuse_light use light statement
camera_pos, camera_location, etc. use camera statement
rotate removed
draw_as_dem, dem use elevation
lines use border

imagepicture

The image layer has been renamed to picture.

Before After
layer image layer picture
image file: "bg.png" picture "bg.png"

do → action call without colon

Before After
do action: my_action; do my_action();

Skill Changes

Old name (deprecated) New name Notes
skill_advanced_driving / advanced_driving driving Using Driving Skill
skill_road road_skill Using Driving Skill
skill_road_node intersection Using Driving Skill
communicating fipa Using FIPA ACL

Moving skill: destination removed

The destination variable has been removed from the moving skill. Use destination: facet on goto or wander actions.

See Built-in Skills#moving.

Driving skill variable renames

Old New
max_speed speed_max
actual_speed current_speed
acceleration speed_acceleration

GAMA Operators

Old operator New operator
with_optimizer_type (graph, string) with_shortestpath_algorithm (graph, string)
as_json_string to_json
is_clockwise, change_clockwise (geometry) removed (all geometries now clockwise)
user_input user_input_dialog

Grid Operator Changes

  • buffer(shape, map)buffer(shape, distance, number_of_segments)
  • enlarged_by(shape, map)enlarged_by(shape, distance, number_of_segments, end_cap)
  • + for shapes and maps → + with added parameters (shape, distance, number_of_segments, end_cap)

Charts & Layout

Chart layer font facets

Font size and style facets have been merged.

Old New
tick_font_size, tick_font_style tick_font: "12px Bold"
label_font_size, label_font_style label_font: "12px Bold"
legend_font_size, legend_font_style legend_font: "12px Bold"
title_font_size, title_font_style title_font: "12px Bold"

Layout

The layout facet on Permanent is now a standalone layout statement.

Variable Facet Changes

Old facet New facet
value: 10 on variable update: 10
size, fill_with on container matrix_with(size, fill_with) or list_with(size, fill_with)
category, parameter on variable use parameter statement and category facet on experiment

Lights / Camera

Light statement

Old facet New facet
position location
spot_angle angle
color intensity
draw_light show
update dynamic

See Manipulate lights.

Camera

All camera facets (camera_pos, camera_location, camera_target, etc.) are now handled by the camera statement.

Save/Restore

Save facet changes

Old New
type: "json" format: "json"
with: [a, b] attributes: [a, b]

Restore changes

Restore now uses the restore statement instead of a model loading action.

See Save and restore Simulations.

Checklists

Quick checklist (most common changes)

  • diffuse var: Xdiffuse X
  • transition to: Xtransition X
  • with: [a::1]with: (a: 1)
  • do X;do X(); (parameter-less calls need parentheses)
  • -> { expr }-> expr (arrow braces removed)
  • display "My Title"display My_Title title: "My Title" (same for experiment)
  • save_simulation()save format: "json"
  • type:format: on save/restore
  • with: (save) → attributes:
  • image layer → picture layer
  • skill_advanced_drivingdriving
  • skill_roadroad_skill
  • skill_road_nodeintersection
  • communicatingfipa
  • value:update: on variable declarations
  • do action: Xdo X()
  • do X returns: vv <- X()

Complete change checklist

  • diffuse: remove var: facet
  • transition: remove to: / from: keywords
  • with: pairs: replace [] with () and :: with :
  • image → picture: rename all image layers
  • do/invoke: remove action: keyword, remove returns: facet, add () to parameter-less calls
  • arrow expressions: remove braces around -> bodies
  • display/experiment names: use identifiers, move labels to title:
  • let/set: replace with typed declarations and plain assignments
  • list of: T: replace with list<T>
  • arg statements: move action arguments into the signature
  • save/restore: use format: and attributes:, remove save_simulation()
  • value → update: replace value: facet with update:
  • save type: replace type: with format: on save statement
  • save with: replace with: with attributes: on save statement
  • skills: rename skill declarations
    • advanced_drivingdriving
    • skill_roadroad_skill
    • skill_road_nodeintersection
    • communicatingfipa
  • moving skill: remove destination variable references
  • driving skill: rename variables (max_speedspeed_max, etc.)
  • fipa skill: replace send with start_conversation
  • database skill: replace timeStamp with gama.machine_time
  • grid context: replace neighbours with neighbors
  • operators: update deprecated operator names
    • with_optimizer_typewith_shortestpath_algorithm
    • as_json_stringto_json
    • user_inputuser_input_dialog
    • remove is_clockwise, change_clockwise
  • display facets: update deprecated facets
    • refresh_everyrefresh: every(n)
    • focuscamera in layer
    • camera_*camera statement
    • light_*light statement
    • draw_as_demelevation
    • linesborder
    • emptywireframe
    • bitmapperspective on draw
    • roundedsquircle on draw
    • chart font facets → merged into tick_font, label_font, etc.
    • Permanent layout/toolbar tabs → layout statement
    • Solve variable renames → steps_size
    • image layer file/matrix → direct or field/mesh
  • variable facets: replace value: with update:
  • let variables: review scope behavior
  • Matrix variable: use matrix_with() / list_with() instead of size / fill_with facets

Notes

  • Models created in GAMA 2026-06 are not compatible with GAMA 2025-06.
  • The auto-upgrade tool can fix most syntax changes but may not handle semantic changes (e.g., skill renames, operator name changes).
  • For the full list of changes from GAMA 1.9.3 → 2026-06 and beyond, see the Changelog.
  1. What's new (Changelog)
  2. Migration Guide (2025-06 → 2026-06)
  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. Getting Started
    2. Headless Legacy
    3. Headless Batch
  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. Classes and Objects
    1. Class Definition and Instantiation
    2. Attributes and Actions
    3. Inheritance
    4. Virtual Classes
    5. Advanced Features
  7. Exploring Models
    1. Run Several Simulations
    2. Batch Experiments
    3. Exploration Methods
  8. Optimizing Models
    1. Runtime Concepts
    2. Analyzing code performance
    3. Optimizing Models
  9. 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 Dataframes
  6. Using FIPA ACL
  7. Using BDI with BEN
  8. Using Driving Skill
  9. Manipulate dates
  10. Manipulate lights
  11. Using comodel
  12. Save and restore Simulations
  13. Using network
  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. Stats Extension
  8. Sound Extension
  9. BDI Extension
  10. FIPA Skill
  11. Expressions
    1. Literals
    2. Units and Constants
    3. Pseudo Variables
    4. Variables And Attributes
    5. Operators (Definition)
    6. Operators [A-A]
    7. Operators [B-C]
    8. Operators [D-H]
    9. Operators [I-M]
    10. Operators [N-R]
    11. Operators [S-Z]
  12. Exhaustive list of GAMA Keywords
  1. Installing the development version
    1. Install GAMA source code with Eclipse plugin
  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. Incremental Model
  4. Luneray's flu
  5. BDI Agents
  6. Forager RL
  7. SIR Analysis
  8. 3D Model

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

Resources

  1. Videos
  2. Conferences
  3. Pedagogical materials

Clone this wiki locally