Skip to content

Releases: matrx-software/matrx

v2.3.3: Python >= 3.10 support

28 Feb 10:06
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.3.2...v2.3.3

V2.3.2: DOI for MATRX

17 Jul 12:02
Compare
Choose a tag to compare

In this version of MATRX there are no code changes, but solely a hotfix release to enable a DOI for MATRX, that can be used for citing MATRX in scientific articles!

V2.3.1

27 May 15:30
Compare
Choose a tag to compare

Bug fixes

  • Fixed bug in v2 simulation goals #327
  • Agents can now send messages (e.g. via the chat) when busy #326

Minor bug fixes

  • Added an exception when using the change_property() function on a non-existing property #325
  • Updated RemoveObject is_possible action to be more strict in its checks. #57
  • Removed redundant checks in gridworld #52
  • Renamed param from agent to agent_brain for the add_human_agent function for consistency #206

V2.3.0: removal of `customizable_properties`

08 Mar 15:49
Compare
Choose a tag to compare

In this new release of MATRX a much hackled feature has been removed: the customizable_properties. Before, you had to specify any property of any object you wanted to be able to change in an action, such as the image of a door, or the visibility of a block.
This feature was not (voluntarily) used, and only confusing. As such, it has been removed.

New features

  • Removed the need for specifying customizable_properties. From now on any property can be changed with your_object.change_property() from an action without specifying it in customizable_properties! Using customizable_properties gives a deprecated warning. #321 #212

MATRX v2.2.0: The Pathplanner Update

11 Feb 09:04
Compare
Choose a tag to compare

In this new release of MATRX we added a new weighted pathplanner, and the ability for users to create and add their own pathplanners.
Aside from that, a number of bugs were fixed (as always).

New features

  • Added weighted A* algorithm as a new pathplanner, that listens to the traversability_penalty property of objects to figure out the fastest route
  • Made it easy for users to create and add their own pathplanners (#319).

For both, see here for a description on how to use it!

Bugfixes

  • Fixed a bug in the waypoint navigator that returned old waypoints (#316)
  • Fixed a bug in the door object that prevented custom door properties from being customizable (#318)

v2.1.2

01 Dec 11:04
Compare
Choose a tag to compare

Bugfixes

  • Fixed bug that prevented center point of visualization from working for agents (#215)
  • Picking up and dropping an object changed its object ID. This has been fixed such that it stays the same (#310)
  • added state obj to update() function (#311)
  • fixed bug where doors made with add_room where not set properly (#312)
  • state.get_self() now returns an agent dict identical to state[self.agent_id] (#302)
  • wall_visualize_opacity working for add_room (#279)

Request for input for MATRX tutorials

For version 2.2.0 of MATRX, a number of changes are planned, such as removing the customizable properties functionality which was not used as intended and only complicated things, rework the message system such that it works more intuitively, and write a set of MATRX tutorials.
For the MATRX tutorials, we created an issue with all aspects that we want to incorporate here: #313. If you have any suggestions for what to include in the tutorial or other documentation that you are missing, please post a comment in that issue!

V2.1.1 bugfixes

25 Oct 17:19
Compare
Choose a tag to compare

Bugfixes

  • Fixed the state.get_room_objects() such that it works as intended (#308)
  • Agents now no longer ignore their assigned teamname. (#306)

v2.1.0

18 May 19:05
Compare
Choose a tag to compare

The first minor release in a while. This time no major new features, but mostly a bunch of quality of life updates, mixed with a bunch of bug fixes and small ease of use features.

One of the biggest features is that the use of State, you favourite way of getting information about the world, is now also integrated in the loggers, actions and world goals! Hopefully making it easier to build your own with less hassle.

Another major addition is that of a new tutorial! Brace yourself...: It teaches you how to build your own visualization! Step by step it explains how to do this, This tackles one of the most often asked question; how to communicate with agents through buttons instead of free text? Hopefully this tutorial answers this and many other questions.

A smaller feature is the update of the default case to better showcase the capabilities of MATRX without new users having to do anything besides running the default script. Read the full release notes below.

Features

  • Integration of the State into GridWorldLogger, Action and WorldGoal! (#202)
  • Loggers are now easily accessible from a GridWorld instance through some_world.loggers. (#268)
  • Ability to set the colours of open and closed doors with the GridWorld.add_room method. (#280)
  • A significant speed boost when creating multiple worlds in parallel or sequence. Also, object IDs are now (if possible) the same as the object name! (#276)
  • Updated the default MATRX case from the messy restaurant to the BW4T task, (#285)
  • Added a setting for the default visualization to set whether object size is from the top-left or from its center. (#215)

Bugs Fixed

  • A bug where finding objects on location with State was too enthusiastic, giving more than you bargained for. (#288)
  • Some bug causing an agent struggling to forget things, rather blowing up your world than to forget! (#250)
  • Agents were not resetting correctly between world runs. (#263)
  • A bug where the interface startscreen was not available for when you accessed a MATRX world running on another computer. (#175)
  • At times some custom images for objects failed to load, fixed that now! (#213)
  • MATRX had some drainage issues... where it leaked quite some memory away with long-running worlds. Plugged that now! (#217)
  • An performance update on drawing sub-tile objects in the visualizer. (#203)
  • A quite annoying one was the WorldBuilder not passing your arguments correctly at times or just too enthusiastically at others. Squashed that one now! (#281)
  • Some rogue print statements that did not listen to verbose=False have been reigned in. (#277)
  • An issue with agents self-perception, thinking that it is a dictionary while its a list! Classic mistake. (#300)

Deprecated

  • The WorldBuilder.get_room_locations is now deprecated in favour of utils.get_room_locations.
  • The GridWorldLogger and other default loggers are now deprecated in favour of GridWorldLoggerV2 and others with "V2" appended.
  • The WorldGoal and other default world goals are now deprecated in favour of WorldGoalV2 and others with "V2" appended.

Documentation

  • A popular request is to have buttons to chat with agents instead of free text. A new tutorial was added that shows you how to do this, create a dashboard interface, customize the chat, and much more much by customizing the default MATRX frontend! (#282)
  • Documentation is now complete! All classes and methods are now documented. If you still spot something, please reach out. (#165, #264)
  • Our readthedocs page was badly formatted, but we improved on that now as we learn to use this tool. Look at how pretty it is now. (#166)
  • An improved contribution guide to also include how to deploy MATRX (at least until we have a CD/CI up and running). (#197)

MATRX legacy version memory leak hotfix

26 Apr 13:13
Compare
Choose a tag to compare

Description

A number of experiments were still using MATRX V1.x.x, which was still plagued by the memory leak bug (see #217) that crashed long-duration MATRX worlds in some cases. This bug has now been fixed for this legacy version of MATRX in this hotfix.

Disclaimer: This fix has been released for MATRX v1 as it crashed MATRX, and was specifically requested as part of a (TNO) project. However, MATRX v1 is depreciated, and there are no current plans in further supporting this old version. There are a number of known issues in MATRX version 1, among which synchronization of the chat messages not always working well. These and many other issues are fixed in MATRX v2, and as such we advise to upgrade as quickly as possible to the newest version. To help, we wrote a tutorial on how to upgrade from MATRX v1 to v2: https://matrx-software.com/docs/upgrading-matrx/upgrading-matrx-v1-x-x-to-v-2-0-0/.

Bug fixes

#217

Version 2.0.7 - Object ID change and other quality of life updates

03 Mar 12:32
Compare
Choose a tag to compare

Description

In this hotfix the main change has been in how the object ID of objects is determined. Now, the object ID is (if possible) the same as the object name. So this means that agent links now stay the same between experiments! E.g.: Trial 1, the link is 127.0.0.1:3000/human-agent/human, and for the second consecutive trail the same link can be used.

Aside from the change in the object ID, a number of small bugs have been fixed and quality of life improvements have been added.

Release notes

Changes

  • Object IDs are now identical to an object name. In the case of duplicate obj names, a increasing counter is appended to get a unique obj ID. (#155)
  • Loggers filename is now publicly accessible (#270)
  • Fixed bug where previous_action_result was not set for agents when the previous action failed (#273)
  • Renamed _matrx_paused option to matrx_paused (#256)