Last Modified 3 November 2013
Behavior Oriented Design (BOD)
Behavior Oriented Design
(BOD) is a methodology for developing control of complex
intelligent agents, such as virtual reality characters, humanoid
robots or intelligent environments. It combines the
Behavior-Based AI and Object Oriented
Developing a system under BOD involves creating two types of
BOD agents can be looked at from two perspectives. You can think of
modules as providing the primitives for the POSH plans (the plan
are based on methods from the behavior objects), or you could think
the plans providing behavior arbitration (a form of action
actions recommended by the behavior modules would conflict.
- A library of Behavior
Modules. These are a set of conventional OOD objects
representing an interdependent set of parallel
modules. The modules generate and control the actions of
agent, process its perception and store and maintain any memory
required if the agent learns. Only one library is needed
platform, agents can
share instances of this code.
- A POSH dynamic plan for action
selection. This is a
flexible, hierarchical data structure which
control by setting an individual agent's priorities.
Above all, BOD is a methodology.
Its purpose is to make developing agents
as easy as possible. This requires keeping the agents as
as possible, so that they are easy to understand, develop and
maintain. The BOD methodology consists of
|Software / code
using BOD and providing POSH for C#, python, jython
and old versions of C++ and
lisp are available for free download from the AmonI Software
Page. We also have versions of POSH working for
YARP and ROS if you are a roboticist, and NetLogo and MASON
if you do social simulation.
In addition to the basic POSH engine, we distribute the
We also are working on a BOD IDE, ABODE,
which supports POSH plan editing and should support
debugging for real-time AI, whether game or robots.
Note we are always happy to have more BOD Developers (that
takes bug reports.)
page author: Joanna Bryson