Last Modified 6 December 2005
This page is seriously under
construction, but should explain the steps for
(BOD) agents in the BOD/MASON...
is an agent-based modelling platform. BOD is an agent development
methodology. BOD/MASON is our attempt to make it relatively easy
to build agents with good BOD for running simulations of complex
First you need to have or install a copy of BOD MASON.
We strongly recommend using eclipse to support your development effort,
and will assume that you do in the below discussion.
If you've done this, you may want to play with one of the existing
More on the sheep
- Start the jyPOSH GUI. From eclipse, just push Run for your package.
- Select the MASON tab at
the top of the GUI that pops up.
- Select "sheepdog.py" from the list of simulations.
- Click the Run Simulation button
to launch the simulation.
What are all these files? (The BOD/MASON Ontology)
Before you can understand what is in BOD/MASON, it helps if you
actually understand BOD. You
should probably read the two papers recomended as introductions on our designing
intelligent systems page.
BOD assumes that you are going to build an agent using a modular
approach. Most of the code that describes how an agent acts is
written in simple behavior modules
(written as objects in any object-oriented language). There is
also one special module for action selection
which coordinates the expression of actions by the other modules.
In BOD, the way the rules for the coordination are expressed is through
FIXME from here...
The first thing you need to do is have a look at the files you are
going to be modifying. BOD programs have two types of files:
The BOD specification strategy tells you that you should start from a
high-level description of what the agent does, then derive
these. That high-level description for our agents (note there are
two types of agents!) can be found at the bottom of this page.
- The behaviour libraries, which are plain code. These
determine how the agent acts.
- The POSH plans, which are in a scripting language. These
determine when (in what circumstances) the
- loader file -- loads in the behaviors for a particular type of
- simulation file -- creates the world
- java files --interface between BOD/MASON & MASON. You
should *never* have to change these, but if you do tell us about it.
In your jyPOSH directory, you should see a directory called modules. These are actually your behavior
libraries -- there is a directory called "mason" that contains all of
the behaviors that can be used in MASON simulations.
There are two java files, FlockingBehavior.java and
HerdingBehavior.java, which provide the basic behaviors for Flocking
and Herding, respectively. DogBehavior.py inherits from HerdingBehavior
and defines the behavior for the sheep dog in the Simulation.
PanicFlocking.py inherits from
FlockingBehavior and adds panicking to the standard flocking behavior.
There are two POSH scripts to start you off. Sheep.lap and Dog.lap in
directory. You can edit these scripts, but it would be better to
make your own copies and change those so that you can later see how
your sheep or dogs compare to the original ones.
The format for the POSH plans is explained on the POSH web page.
There are also more
For a very elaborate POSH plan, have a look at the one in the bodbot
directory -- this is for running under unreal
page author: Joanna