scientist. What I do is meaningless if it doesn't contribute to
rest of human knowledge in some way. I think this applies to my
as well as to the rest of my ideas.
If you use my code, you should give me credit just as you would if you
an idea from one of my papers. Please keep all authorship
intact, and reference my work in any documentation. Also, I'd
to hear about any projects using my code, whether they are working or
under way. So please email me.
But don't expect much technical support - I'm afraid I don't have
AmonI Software Page
The most accessable and heavily used/debugged versions of my code are
now available on the AmonI
software page. This page now is primarily for supporting the
lisp version of BOD & POSH, which I still use myself
sometimes. It also links to some even
Lisp BOD/POSH Code
Lisp last updated 8 August
2005. Works with Lispworks
If you don't already know about BOD, you'd
better read that link first. This code is in Common Lisp, using
the Object System. For a quick intro to this language, see Jeff
Guide to CLOS.
download my code directory, you will see several behavior libraries
with many scripts. But only a few things are really running ---
are currently in development, others represent early versions of the
program. See the Demo
section below for recommended scripts to run.
Not everything is perfectly documented, but see my PhD
for a lot of documentation! Even this page is really for my
though if someone hassles us we may rewrite it better.
Here is the lisp code in its
directory structure. To make it run in either linux, Mac OSX or
the evil empire, download Lispworks.
- I no longer have a linux box around, and lispworks is changing
fast, so the linux instructions may be pretty old. I'm using Mac
OS X myself now, and it works straight out of the box.
- Linux Instructions:
- Be sure to follow all the instructions carefully: you
file & on linux you need openmotif as well as lispworks (run "rpm
openmotif" to see if you already have it.)
- If you are running on linux, then you might have problems with
motif. Lispworks version 4.2-2
used to require an older version
of motif, here is the RPM
which I used with both RedHat 7.x and Suse 8.1. This doesn't seem
to be a problem in the current LW version.
To run my code, run lispworks from the directory you downloaded
To get the BOD interface up, you need to load "posh-gui.lisp".
Either do this from the File menu, or from the listener window (the big
one with the prompt)
- linux: cd into
the directory & run lispworks.
- microsoft: double-click
on one of the .lisp files in that directory & associate it
lispworks. From then on, start lispworks by double-clicking on a
file. (Haven't checked this for a couple years either, email me
if I'm wrong.)
- mac OS X: There
doesn't seem to be any GUI way to do this, so you have to change
directory from within lispworks.
- This can be done automatically for you if you set it up once.
- Edit the file "posh-gui.lisp".
- Uncomment one of the first lines of code where it says
"change-directory", and set the path to your copy of lispPOSH there.
CL-USER 1> (load "posh-gui")
When the (stunningly ugly) BOD window comes up, choose a behavior
library, then a script to run. Then push the "run" button.
runs faster (surprise) but doesn't maintain any debugging state or
to any debugging windows.
If you want more information, play with the debugging tools.
that after you click "debug mode" you are automatically stepping, so
only takes you to the first step. Click "step" to advance another
or "continue" to just run.
See my POSH web page for descriptions of the
scripts mentioned below. Basically, POSH plans coordinate the
behavior of an agent, but it's behavior is generated by modules written
in some OO language, (in this case, CLOS). But the POSH scripts
determine the different `personalities' (goals) of different
agents. They determine what the agents do, even though in theory any agent
that shares the same behavior library has the same capacities. See my BOD page (or papers) for a fuller explanation.
"educate-me+monk" is the best script to run under transitive inference. That has
phased training & terminates after either the agent fails to learn
or the full testing program has run. To see what happens without
going through such an organized training system see the script
You will have to quit this at some point.
All results from this library trail into a file called monkey-results, which means one run
will write over another if you don't rename it after the trial.
"educate-freq-test" is the only thing here that uses the frequency
on the drives --- I used that a lot in the C & robot demos, but not
much for the monkeys. It makes a `noise' every 1000 steps.
you change "screech" to "squawk" in the script you can make the program
every 1000 steps. Sam Partington has used this code feature to
greater effect in his BOD/UT
Unfortunately, the colony code is now broken on all platforms. It
used CAPI for the simulator code, & CAPI got changed a bunch.
Since my students don't like learning lisp, there is now a new version
of this code being written using python/jython called BOD/MASON.
Here are the old instructions for colony though, just in case:
If you are running under the evil
empire, the multi-agent stuff
doesn't work. Sorry, I have no idea why, I suspect it's the
done by lispworks. But you can still run the transitive inference
I haven't checked OS X yet, or windows with lw 4.3. UPDATE:
The newest version of lispworks has broken the colony demo on linux
too! I'm currently making TI work under OSX, I'll worry about
colony next if I haven't migrated this work to python or repast before
that. 10 November 2004.
If you are
on linux, the two colony
programs of most relevance to my most recent papers
are "stay-groom" where folk hold still while they are being groomed,
"stay-intent" where they hold still even if they are being approached.
All results (decisions) here trail into a file named
These files don't overwrite each other. They also don't
very fast, but they will keep
as long as the thing keeps running. The python script
summarizes these results.
I wrote a stand-alone version of an older version
of POSH action selection for the net a number of years ago. You
download it from my Edmund page
(see the code
That has toy scripts but real documentation! For the
on the same page further down you can find the code I used to make a
mouse run in Toby Tyrrell's action-selection testing environment.
If you are really a great fan of my work and can't get enough of my
code, you might want to also see my Reactive Accompanist
page, which also has code. Or, if you want to see the code I had
on the Nomad robot, ask & I will post it (if I can find it!)
probably lying around somewhere.
Last updated a little on 15 August 2005
Lisp code last updated 15 August 2005