Last Modified 6 December 2005

BOD/MASON HOW-TO

Overview

This page is seriously under constructionbut should explain the steps for creating Behavior Oriented Design (BOD) agents in the BOD/MASON...

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 agents.

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 demos:
More on the sheep & dog demo.

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 POSH plans.

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.

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 the plans 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 examples there.

For a very elaborate POSH plan, have a look at the one in the bodbot directory -- this is for running under unreal tournament.


page author: Joanna Bryson