Sadwoja
by Sam Baskinger


What is Sadwoja?
Sadwoja is a Java API. That is the short of it, anyway. What Sadwoja seeks to do is provide an expandable and flexible "playground" for pieces of AI to be tested/observed in. You could even build some sort of game using Sadwoja as the core world engine.
The was Sadwoja works is by taking 3 seperate objects, events, worlds, to operate. Ussually there is only one world and it acts like a router for the events. The events get sent either to all world objects (via the world) or to one world object (also via the world). When events are recieved, they are processed by the world objects, effecting their traits. World objects can also store events which take time to complete and will update those events before other events are processed. These are called persistent events.
With this infrastructure it should be simple to extend the existing classes to create new creatures, put them in a world, and patch some AI onto them to control them. That is about it!

Where did this come from?
The insperation for this came out of an AI seminar class held in the Fall semester of 2000 at The College of New Jersey by Dr. Ursula Wolz. In that class many forms of AI solutions where looked at. Agent solutions, brute-force tree searching, and event a simple set of rules where tried. Initally Sadwoja was to be an exploration of competing agent-based solutions for some simple problems, but grew more abstract to the point where Sadwoja only managed the data, but had enough hooks so that a Sadwoja world object could be manipulated by some software. There is a demo showing some agents searching a data set for one known element, but the real intrigue lies in being able to pull out the AI managing that search, and put in new AI very quickly.
There is more information available in the paper that was written about this system, if you are interested. It is available in both Postscript and PDF.
If you are more curious about the name, Sadwoja, it stands for Sam's agent driven world of Java automata.

Can I use it?
Sure! Sadwoja and the demo are all under the GPL and so feel free to use them and even poke around in the source code.

Where can I get Sadwoja?
sadwoja.jar - Sadwoja source. Documentation can be created by using javadoc.
sadwoja.jar.sig - gnupg signature signed with the key of Sam Baskinger. If you need a copy of the public key to verify the jar feel free to email me at basking2@yahoo.com.
Online Sadwoja API Documentaion