Description

GridWorldSim is a Java framework for the realization of environments for multi-agent systems and was developed as part of my diploma thesis. The framework can be used to specify and then execute environments, which can serve as an experimental platform for different kinds of agents. The framework is intended to be used to realize environments where agents are located on a 2D grid. It supports interactions between agents and the environment and the interaction with other agents through the environment. The part of the environment that can be perceived by the agent can be restricted by limiting the perception skills of an agent or by different kinds of obstacles. Also communication between agents can be restricted. Besides the server software used for running environment specifications, GridWorldSim features graphical clients for testing and observing environments.

Screenshot of the Observer Client
Observer Client
Screenshot of the Agent Client
Agent Client

GridWorldSim consists of three different programs:

  • Server: serves the realization of environments via TCP/IP based on an environment specification given in an XML language
  • Agent Client: offers the possibility to control an agent by hand to test the server or environment specification
  • Observer Client: is used to observe what is happening in an environment

GridWorldSim is divided into the following components:

  • agentclient: Agent Client, depends on: commons, clientcommons, Apache log4j, serverapi
  • clientcommons: common classes of the Agent and Observer Client, depends on: commons, Apache log4j, serverapi
  • commons: common classes of all GridWorldSim components, depends on: Apache log4j
  • observerclient: Observer Client, depends on: commons, clientcommons, Apache log4j, serverapi
  • server: GridWorldSim Server, depends on: commons, Apache log4j
  • serverapi: library for communication with the server and providing data structures for perceptions, depends on: commons, Apache log4j

Server and agents/clients communicate with each other using XML languages, which are specified by XML schemas. The XML documents are transfered via a simple protocol, which encapsulates them into TCP packages. Agents implemented in Java can use the serverapi component, so that the XML languages, the communication protocol and the data structures for perceptions have not to be implemented again.

A detailled description of the semantics and usage of GridWorldSim can be found in my diploma thesis (especially chapter 7), which is unfortunately not available in English.

Resources

The current development version of the components commons, server and serverapi – and thereby the GridWorldSim server and the library for the usage of the server by agents – are licensed under the GPLv3 and their source code is available. These components were merged into the project Tweety, where further development will take place. The clients, however, contain images that are licensed under the “Creative Commons (Attribution-Noncommercial 3.0 Unported)” license, which is not GPL compatible. At the moment they are only available as a binary build

Description Source
Source code of the components commons, server and serverapi (current development version) see projects/net-sf-tweety-agents-gridworldsim/ of the project Tweety
Source code of the components commons, server and serverapi (GridWorldSim 1.0) Download
Binary build of GridWorldSim 1.0 (complete) including an example environment (start with java -jar agentclient.jar or java -jar observerclient.jar or. java -jar server.jar [XML specification file]) Download
Agent Client for OS X (GridWorldSim 1.0) Download
Observer Client for OS X (GridWorldSim 1.0) Download
XML schema for the XML language used to configure the server and specify environments (GridWorldSim 1.0) Download (also part of the source code download)
XML schema for the XML language used for the communication from server to client (GridWorldSim 1.0) Download (also part of the source code download)
XML schema for the XML language used for the communication from client to server (GridWorldSim 1.0) Download (also part of the source code download)
German flag