Releases: gama-platform/gama.resources
GAMA 1.9.3
Major changes from 1.9.2 to 1.9.3
This is a maintenance release, aiming at fixing bugs observed in 1.9.2 and improving stability and performances. The most important changes brought by this version are a dramatic improvement in compilation time and memory usage, especially useful for large models, and a rework of gama-server which is now also available in GUI mode and with added features for both GUI and headless use.
Detailed changes
This release of GAMA contains new features and fixes, including:
- The use of java 17 is now forced for every part of gama (some modules were still requiring older versions)
- Switch the 3d rendering library from Jzy3d 2.4-rc to JOGL 2.5.0
- Improvement of the script gama-headless that previously wouldn't set gama correctly to handle recorded experiment
- Restore the
schedule
facet that was wrongly removed - The headless script now loads the parameters from GAMA.ini if it's available
- Some icons rendering have been improved
- A new parameter to the
darker
operator has been added to set the percentage of darkness instead of the default 10% darker - The "insert template" menu options that were incomplete and not always working have been fixed
- It is now possible to call variables defined in the experiment in the interactive console
- The handling of error messages in the interactive console have been improved
- In the editor information messages and warnings can now be displayed directly above the line instead of having to hover the icon. It can be turned on/off with a parameter in the settings
- A new warning has been introduced when two displays have the same name in one experiment (can cause a lot of problems)
- The use of gis files in a comodeling context used to raise exceptions and has been fixed
- Some operators working with geometries now do a better job at converting their input arguments
- Some fixes have been brought to the use of variables of type
type
and thetype_of
operator - A new built-in variable has been introduce:
#user_location_in_display
it represents the location of the mouse in the coordinates of the display, contrary to#user_location
that is expressed in the world's coordinate system. - It is now possible to get the latest alpha version of GAMA through winget with the name
GamaPlatform.GamaAlpha
- GAMA is now based on eclipse 2023-09
- A small gap has been added between layers in 3d to fight some rendering problems
- The rendering of opengl displays has been improved and is now faster
- The library Bullet, used for the physics skills has been updated to version 18.6.0
- The use of the
ask
statement over the listsimulations
used to produce weird behaviours but has now been fixed - We can now use textures in 2D displays
- The text output of the sobol analysis can now be exported to easy to handle csv
- It is now possible to use box2D as a physics engine to efficiently emulate 2d worlds' physics
- Operators
antialiased
,blurred
andsharpened
have a new parameter to define how many times they are going to be applied to the image and have been optimized - The displays are now automatically updated when toggling the antialiasing option
- All agents have a new property
index
that represents their index in the the species - Some format issues in the
save
statement have been fixed - The display of wireframe circles in 3d has been fixed
- Arc of circles were rendered with only half of the asked radius and it has been fixed
- The depth parameter of the
line
operator is now taken into account and creates rectangles - Gama server now also runs in GUI mode and can be used to control the interface
- The loading of models in gama-server has been optimized
- The settings of gama-server (port, enabled/disabled, ping_interval) have been added to the settings window of gama
- No more error raising when closing a physical simulation
- Chart displays have been optimized and can now run forever without slowing down or increasing memory consumption
- When using the
accumulate_value
facet for the data of a chart the x value is now updated instead of always using the first x value - The serialization engine XStream has completely been removed and replaced by FST, support for xml has been dropped in favor of json and binary
- The operator
to_json
that transforms a map into a json formatted string has been introduced to replaceas_json_string
which is now deprecated - Gama-server sends a new kind of data: the simulation status when it's updated (loaded, paused etc.), mostly useful for interacting with GUI currently
- The compilation of gaml models has been drastically improved and is now sped up and takes way less memory
- An issue in the
neighbors_at
operator where it would not always pick the right geometry as a source in certain conditions has been fixed - The output of the stochastic analysis for the batch has been reworked
- Some display problems in heatmap have been fixed
- The operators to test types (
is_shape
,is_csv
etc.) that were missing are back - It is now possible to have conditions in the displays
- MQTT requests can now also benefit from the
raw
statement like other network protocols - Some bug have been fixed gama-server making it more resilient to client disconnection
- Drawing speed has been improved
- The position of scaled mesh layer was wrong and has been fixed
- When deserializing a json containing an integer too big, it is now transformed into a float instead of raising an exception
- The highlight functionality is back into the inspect panel
- The use of keystone in displays with mesh was broken and is now fixed
- The responsiveness of the code editor has been improved
- The code coloration has been improved for some cases
- The JGraphT library has been bumped to 1.5.2
- A new command for gama-server is available:
validate
which can be used to check that a gaml expression is valid, either just syntactically or also semantically - Faster runtime access to species
- Can now send step and stepBack commands with empty number of steps it will be considered as one step
- Fixes the getStopCondition exception that would arise in headless legacy mode sometimes
- Many runtime exception that were related to gama scope have been fixed, like the ones that could happen when inspecting an agent
- Compilation errors that were sometimes shown on perfectly fine code have been fixed
- The neighborhood of cells in hexagonal grids was sometimes wrong and has been fixed
- Serialization of agents in list was broken and is now fixed
- Deserialized agents are now added to the population of simulation
- Some exceptions were raised in certain cases when clicking on buttons in the parameter view, this is now fixed
- Using arithmetic operators on fields was causing side effects and has been fixed
Changes that can impact models
🔴 Errors 🔴: concepts that need to be written differently
View detailed changes
- Now that all agents have an
index
property, it can conflict with models that used to have a property calledindex
defined in their agent or just some variables calledindex
in the code - Saving a simulation is now done in binary or json and not in xml as it was the case before. It is thus not possible to save a simulation or agents in an older version of GAMA and open it in 1.9.3 and conversely.
- graphs cannot be drawn unless they are spatial graphs, an error is now raised if a model tries to do so
Preferences
Three new parameters have been introduced;
- The
enable server
parameter can be used to activate or disactivate the gama-server mode in GUI - The
server port
parameter will on which port will gama-server listen when running in GUI - The
server ping
will set the interval between two pings sent by gama-server to keep alive connections with its client - The
increment factor
will set the value of a factor regulating the level of z-factor (for distance between layers in opengl displays)
Added models
The library of models has undergone some changes. Besides making sure all the models compile and run fine under the new version of GAMA, it also brings some new models, which are listed below:
View all new models list
- The model Box2D Library.gaml to demonstrate the use of box2d as a physics engine
- The model Serialization to Json.gaml to showcase how to serialize objects into json in gama as well as deserialize json formatted strings into gama objects
- The model 2 External GAMA controller.gaml can be used to understand how to use an external program (in this case html) to control gama through gama-server
- A few classic video games like Flappy bird.gaml, pacman and tetris
- The model [Conditional aspect selection.gaml](https://github.com/gama-platform/gama/blob/e35225fe130eff4a69ac9b372eecb796ef204e64/msi.gama.models/models/Visualization%20and%20User%20Interaction/Visual...
GAMA Version 1.9.2
This version mainly brings bug fixes and minor improvements to GAMA 1.9.1
GAMA Version 1.9.1
The GAMA development team is pleased to announce the release of GAMA 1.9.1
This version, while maintaining the power, stability, expressiveness and ease of use of GAMA, brings new capabilities and openings to the platform, making it even more intuitive to use by modelers and even more versatile in terms of applications.
This major release of GAMA contains many new features and fixes, including:
- A much more fluid and powerful IDE, offering support for all the latest technologies, from HiDPI displays to JDK 17 and Apple Silicon processors.
- A new server mode of GAMA, offering a clear and extensible exchange protocol, which completely revolutionizes the way to interact with the platform from R, Python or any web client.
- Increased model exploration possibilities thanks to new calibration and optimization methods, also directly usable in the server mode.
- The addition of the two new data types
field
andimage
, which make it even easier to load, analyze, visualize and produce raster data - A much more powerful graph manipulation than previous versions, but still easy to couple with agents
- A focus on urban mobility applications, with the
advanced_driving
andpedestrian
skills, which make it much easier to produce realistic large-scale mobility models. - The possibility to simulate physical interactions between agents thanks to the new skills
static_body
,dynamic_body
andphysical_simulation
, which rely on the nativebullet
library. - New and faster display capabilities, offering more intuitive handling of agents and organisation of display surfaces, making it easier than ever to build interactive simulations, serious games or advanced scientific visualisations.
Please consult the information and documentation about this release at https://gama-platform.org. Notably:
- A list of changes (changelog) from the previous version is available at: https://gama-platform.org/wiki/Changelog
- If you have troubles installing GAMA, please refer to https://gama-platform.org/wiki/Installation
- Please report any problems, issues, bugs at: https://github.com/gama-platform/gama/issue
GAMA Version 1.9.0
This is the official GAMA 1.9.0 version, released on the 10th of April, 2023.
GAMA 1.8.2 Release Candidate 2
Release candidate 2 for GAMA 1.8.2. Please test and report issues
GAMA 1.8.2 Release Candidate 1
Release candidate for GAMA 1.8.2. Please test and report issues
GAMA Version 1.8.1
This is the official GAMA 1.8.1 version, released on the 23rd of June, 2020.
Information and documentation about this release can be found here: http://gama-platform.org
- a list of changes (changelog) from the previous version is available below
- please report any problems, issues, bugs at:
https://github.com/gama-platform/gama/issues
Changelog
BUG FIXES
View contents
- Charts - d99c03370, 5e41f06ad - #2921, correct colors in histograms and radars.
- Displays - 0fffc807b - #2854, takes orientation into account in the camera settings.
- Displays - 512942c8f - #2853, improves numbers input in the z-axis rotation field
- Displays - 903c64dd2 - #2897, adds a preference for copying Camera parameters.
- Displays - 09df6fa99 - #2971, harmonizes the meaning of the
transparency
facet - Displays - 3f3563350 - #2835, take correct snapshots of zoomed displays
- Displays - 80fa60de2, ee1281a52 - #2851, better handles Java2D displays when simulation is added dynamically from the Parameters view
- Displays - c4fde1666 - #2913. #2902, better computes boolean attributes in layers.
- Editor - 0b5288062 - #2850, removes empty error messages from the editor
- Editor - a1246f7d8 - #2969, reenables correct operations of “Find References...”
- Editor - cc2b564cf - #2833, more robust highlighting of boolean operators
- Files - 66f73efb1 - #2860, updates the CSV metadata when edited in GAMA
- Files - 9a52ccf31 - #2929, replaces
:
in filenames when saving benchmark results - Files - ab00eea0a - #2901, corrects
.asc
file headers created by QGis. - Files - ae9efc1d7 - #2988, does not escape
/
anymore in strings - Files - d6cf13ca0 – Fixes an issue with OSM data and projection
- FSM - 5229a7415, 3198351c7 - #2865, run the
exit
section of a state, even when it is marked asfinal: true
(could happen when dying). - FSM - e55831c20 - #2866, emits an error when several states are marked
final
- GAML - 075b1a282, 6f40de575, 169ddb61e, 81f6d2f1c - #2869, #2874 and COMOKIT/COMOKIT-Model/issues/21, checks dependencies between attributes
- GAML - 67021601e - #2922, better computes the variable scope of recursive actions
- GAML - 698b2f577 - #2932, provides the right context to the
agents
layer. - GAML - 6f40de575 - #2875, checks the syntax of generic types more carefully
- GAML - 7c2c653e7 - #2873, disables the use of
at
on any type but containers - GAML - a92f3b0f2 - warnings for expressions in the interactive console or monitors
- GAML - bd48567a4 - #2995, makes sure that
font
can be called with 2 arguments. - GAML - d9a459d2c - #2910, computes constant string values used in file statements
- GAML - df346c9cc - #2605, sets the correct compilation and execution scopes when building attributes to save in the
save
statement - GAML - e10938c14 - #2836, better serializes color constants
- GAML - e17800f51 - Fixes an annoying compilation bug for virtual actions
- GAML - ec24425c - Fixes the bug in COMOKIT/COMOKIT-Model/issues/40 by making sure parent species have inherited their
control
before their children try to gather it. - Geometries - 47518a11a, 35d96ce01 – Fixes issues with
pathBetween
andmasked_by
operators - Goto - 44d205977 – Make sure that the
on:
facet can accept aspecies
. - Graphs - 8963a3f62 - #2916, better splits some T-shaped geometries when cleaning road networks
- Graphs - 048512f64, 472b1891a - #2861, stops losing the geometrical information when applying layouts to graphs.
- Graphs - 187848edf - Fixes a bug occurring when filtering road type when creating a network and then using
all_pairs_shortest_path
- Graphs - 540a5e137 - #2839, prevents an NPE in the update of a graph vertices
- Graphs - ba85b59f4 - #2940, removes an NPE when cleaning a road network built from OSM data using ArcMap
- Headless - 005d1fa4c - #2890, points to the embedded JDK in the headless scripts
- Headless - 0da04afdd - #2983, correctly sets
project_path
in headless mode - Headless - aa74dbbf1, d4f7751d4, 47c131a29, cdba1b740 - #296, improves the robustness of the headless script and its handling of paths
- Headless - caaf8781c – #2976, removes virtual outputs when generating XML files
- Hexagonal grids - 23e0cf28f - #2894, returns the correct cell at a given location
- Hexagonal grids - 474cfbcd1 - #2892, allows spatial queries to operate again
- Maths plugin - 04af42dca - #2867, sets the value of
t
(time) aftersolve
is over. - Maths plugin - 468720f92 - #2868, deprecates
integrated_times
andintegrated_values
in thesolve
statement. - Navigator - fd90fa5d8 - #2846, displays all types of files in "Uses" in the navigator.
- Network plugin a8d53f6f9 - #2906, adds a new attribute to the network
connect
action, in order to set the max size of packets (default is still 1024) - Operators - af254f9fe - #2858, correctly documents the
-
operator for lists - Parameters view - 5cdc90aa7 - #2834, allows labels of parameter to wrap.
- Random - 1a3b78fc7 - #2974, stops filling lists with random values in parallel
- Random - 7a29e0a8c, ac17bc332 - #2930 and COMOKIT/COMOKIT-Model/issues/30, removes uses of HashSet in spatial operators and indexes
- Save statement - 187ece66f - #2857, allows to save one shape at a time.
- Scheduling - 4ffc81989 - #2927, #2933, schedules mirror species after their target species
- Scheduling - a1fd69ea2 - #2952, removes an NPE when using
schedules
inglobal
and documents it. - Species browser - d97481245 - #2852, correctly restores the attributes list in the species browser
- Template editor - 87d420345 - #2849, restores the ability to add templates again
- Tests - c61ba75c7 - #2881, builds a dynamic correspondence between class names and types
- User input - 89ad7c806 - #2978, makes
init:
/<-
mandatory inuser_input
. - Views - 903c64dd2 - #2856, removes the useless preference on view tabs height.
- Wizards - 3d94861ce - #2882, checks badly named experiments/models in wizards
- Workbench - d34a3d664 - #2848, prevents infinite loop when creating workspaces
ENHANCEMENTS
View contents
- Charts - 3dc0d1156 - #2864, deprecates the xxx_font_size / xxx_font_style facets in chart layers and allows to use the font(...) operator instead
- Displays - 344894ea1 - #2127, #2380 and #2928, Improves the display of rasters
- Displays - 136f6e931 - #2891, synchronizes displays when one is set to autosave.
- Displays - 76a2902f4 - #1918, Addition of
mouse_menu
(ctrl-click) for event layers - Displays - ed233b5d9 – Allows to display graphics w/o respecting world proportions
- Documentation - 94ad24936 – Encodes the docGAMA.xml in UTF-8
- Files - 831688854 - #2830, #2870, improves the handling of complex CSV files by adding 2 new constructors to
csv_file
. - Files - 86a64de67, 9429902f9 – Adds an understandable error message for DXF files when the unit is less than or equal to 0. – improves their parsing (elliptical arc)
- Files - d21eaac44 –#2939, adds the new
folder_exists
operator. - GAML - 2b5705d0e - #2883, documents the fact that
model:
needs to be the first facet ofexperiment
. - GAML - 57e07c2a4 –#2931, emits a warning when comparing different types
- GAML - 6310cb8df - #2872, enhanced information on the redefinition of reflexes and the order in which they will be executed
- GAML - 834da4446 – Transforms
#min_int
and#max_int
into...int
constants. - Geometries - 984fb5c5e - Improves the building of paths in 3D graphs
- Geometries - ab1e403a4 – #2896, ensures cells’ geometries share common points
- Graphs - 950c78c4b – Add a new operator:
as_edge_graph(list edges, list nodes)
- Headless - a92ff24b5 - Auto display error log if error in java runtime
- Models library - ecbbd444e - Addition of the Luneray' Flu tutorial
- Models library - 1bc931619 - Addition of traffic models.
- Models library - 2e948dd40 - Adds models of
CRS_transform
andto_GAMA_CRS
- Models library - ae1286d03 - Addition of models for the BDI tutorial
- Models library - 735bf366a – Adds a simple example of XY charts
- Models library - 110733fc3 - Adds a model demonstrating simplification and buffer
- Models library - 6fd7ee88a – Adds models of the new statistical distributions
- Models library - 5c0221098 – Removes the
init
in “Long Series.gaml” - Navigator - 53a9dbee9 - #2989 does not display experiments in the navigator when
@no_experiment
is defined - Operators - bfc39b460 – Adds an operator to transform a geometry from a CRS to a target CRS.
- Operators - d8154ffda – Adds
all_indexes_of
operator - Parameters view - b618d5ba8 - Adds collapse/expand all for parameter view
- Parameters view - d8402f462 - Add preferences to auto-expand all parameters in categories
- Random - 0d4a5557d, 58df2c36d, 629480343 - addition of rnd operators with weibull, lognormal and gauss distributions, various parameters + probability density functions
- Random - 6643eef5c - Adds
rnd_choice
with map argument, keys return type and values gives the distribution - Save statement - 2d421ef67 - Adds the export of gis data with GAMA CRS
- Save statement - 3aabeae90 - Save geotiff files in float format (and not byte).
- Save statement - 731ff61ad – Saves geometries with GAMA CRS and scaling
- Save statement - 91ccdf80d – Adds .prj support file when saving shapefiles
- Save statement – b5582127f, afe6da45a, saves geometries with a list of attributes
- Simulation - 32eb57a24 – updates the state of the simulation aft...
GAMA 1.8
Released in July 2019
Needs JDK 8
https://gama-platform.github.io/wiki/OlderVersions#gama-18-july-2019
From this version, only 64 bits release were produced.
GAMA 1.6.1
Released in June 2014
Needs JDK 6
https://gama-platform.github.io/wiki/OlderVersions#gama-161-june-2014
GAMA Version 1.6
Released in July 2013
Needs JDK 6
https://gama-platform.github.io/wiki/OlderVersions#gama-16-july-2013