Page last modified 12 April 2010
Code last modified 28 October 2008, but under development Summer 2010
pyPOSH / jyPOSH
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 (formerly pyPOSH) is a version of
POSH that runs in python and jython. For other languages,
go back to the AmonI
Software
Page
POSH on its own is only an action-selection mechanism. It
requires
executable plan primitives (actions & senses) to make anything
happen. Under BOD, these are provided
by modular behaviour libraries.
To get interesting things happening quickly, please have a look at one
of the
existing libraries mentioned above. BOD MASON also contains a
tutorial
based on
the sheep/dog demo. The instructions may be out of date, but the
demo
code is current.
The jyPOSH code is a 1.8M zip file --- if there are any OSs
that can't open it, please let me know. This includes a number of
behavior libraries and code to support them, check out the readme file
that is distributed with it.
If you are really certain that you
don't want to use MASON and you're on a very slow link, you might want
to download a MASON-free version of jyPOSH,
which would only be about 265K. If this is true email us &
we'll start supporting that again.
History and Acknowledgements
Joanna Bryson developed BOD & POSH during her PhD.
In 2003, Andy Kwong translated & improved the lisp version (which
included an action scheduler mechanism developed by Kris
Thórisson for Ymir. Andy
got the scheduling running better / properly threaded.) Andy also
created the original UT behavior library. Andy
Kwong's
quite
excellent
MSc Dissertation.
In 2004/2005, Sam
Partington improved the pyPOSH code on the way to doing his
undergraduate dissertation. He fixed a few bugs including making
pyPOSH properly support modular behavior libraries. He massively
extended the UT behavior library and created elaborate plan
agents. Sam Partington's award-winning UG Dissertation, A
critical
analysis
of Behaviour-Oriented Design (BOD), based on
experiences in using it to create an Unreal Tournament Capture-the-Flag
(CTF) team.
In 2005, Tristan
Caulfield, working as a research officer in the AmonI group,
rewrote the GUI interface to pyPOSH in swing (wxPython wasn't very
stable), fully commented the core POSH code (by taking the comments
from the lisp code), ported pyPOSH to jython so that it could work with
Java libraries as well, and made the initial pyPOSH MASON library
code.
Also in 2005, Stephen Couzins extended the UT plans to support teams
with attack and defend bots.
In 2006-2007, Andy Mansfield and Francis
Binns improved the UT BODbot code to better handle time passing and to
exploit
the new version of jyPOSH.
There is also now a POSH IDE (or at least editor) in alpha release
called ABODE.
In 2006-2007, Jan Drugowitsch
rewrote, sanitized & expanded the pyPOSH code generally, including
supporting ABODE development,
implementing a new jython version of SPOSH from scratch, a new lap
file parser, and making the notion of how behaviors combine into an
agent clearer and easier to express.
In 2010, Jason Leake is working
on porting jyPOSH to YARP.
page author: Joanna Bryson