Page last Updated 11 November 2007.
Code last updated 24 April 2008
Note: as of April 2008
this library is running with SPOSH. Scheduled
jyPOSH is currently deprecated.
BOD MASON
Behavior
Oriented Design
(BOD) is a way to develop AI systems. It requires a modular
behavior library in any OO language, and a version of POSH action
selection for that language.
jyPOSH
is a version of
POSH that runs in python and jython. MASON is an
agent-based modelling simulation toolkit. It builds an
environment for you and lets you spawn lots of agents and then keep
track of what they do.
BOD MASON allows you to use BOD to create complicated agents
relatively easily in MASON. It not only gives you POSH action
selection to simplify the coordination of your agents, but also it
allows you to code your agents in python rather than Java (the language
MASON is written in), which makes writing code faster and easier.
We currently distribute with jyPOSH the latest version of MASON we
support, so all you need to do is follow the jyPOSH installation instructions.
To run the program you need to type: jython jyposh.py
from a command line to start up the GUI. In case you aren't used
to running Java from a command line, here are some instructions per OS:
- Windows:
- Start->Run->cmd
- at the prompt, type c: (or whatever drive you have installed
jyposh on).
- cd jyposh (or whatever directory you have installed jyposh
in).
- add mason.jar to the environment, type: set
CLASSPATH=%CLASSPATH%;C:\jyposh\mason.jar (using whatever the correct
path to the jar file is)
- c:\jython\jython.bat jyposh.py (or wherever you have
installed jython for that initial path!)
- Mac OS X:
- Use the terminal program, which is in your
Applications->Utilities folder.
- Follow the instructions for Linux / Unix
- The /path/to/jython will be /Applications/jython-21/jython
for you.
- Linux / Unix:
- You folks all know how to use a prompt, right?
- These instructions assume you are using bash. If you don't
know what bash is and you are on a mac or linux, you are probably using
it, don't worry.
- Add mason.jar to the classpath, "export
CLASSPATH=$CLASSPATH:/path/to/mason.jar"
- cd to the directory pyposh is installed in
- run "/path/to/jython jyposh.py"
Now you should be ready to run the sheep
& dog
demo. Here's how to get started:
- Once you have started the GUI, click on the MASON tab at the top
of the window.
- Select sheepdog.py from the drop down list of possible simulation
start files.
- Click the "Run Simulation" button to load the simulation.
- Then click the triangle "Play" button to start.
If you are serious about developing in the BOD/MASON environment, then
you
probably want to do it on top of a decent python IDE. We
recommend using eclipse (it's what we use so it's easier for us to
support).
There is an academic paper about how we integrated agent-centric
real-time action selection into a synchronous, multi-agent
platform: Joanna J.
Bryson, Tristan J. Caulfield and
Jan Drugowitsch, ``Integrating
Life-Like Action
Selection into Cycle-Based Agent Simulation Environments'', in Proceedings of
Agent 2005: Generative Social Processes, Models, and Mechanisms,
Michael North, David L. Sallach and Charles Macal eds., pp. 67-81,
Argonne National Laboratory 2006.
For even more information, see the POSH and BOD
pages.
Acknowledgements
- The merging of these technologies & the initial set of
behaviour libraries (sheep/dog) was created initially by Tristan
Cauflield for EASSS
2005. It has since been maintained and improved by Jan
Drugowitsch, who worked on the code from 2005-2007.
- Hagen Lehmann has used BOD/MASON during his PhD and has
therefore
contributed a great deal to our understanding of what needs to be
done.
- Funding for Hagen's studentship & Jan & Tristan's
time was provided by The Engineering and Physical Sciences
Research
Council (EPSRC), Grant GR/S79299/01 (AIBACS), ``The Impact of
Durative Variable state on the Design and Control of Action
Selection''.
page author: Joanna
Bryson with Tristan Caulfield