Skip to content

GAMA 1.9.3

Latest
Compare
Choose a tag to compare
@lesquoyb lesquoyb released this 26 Feb 07:47
· 3 commits to main since this release

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 the type_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 list simulations 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 and sharpened 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 replace as_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 called index defined in their agent or just some variables called index 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