SteerSuite

A suite of test cases, tools, and libraries for steering behaviors

 

SteerSuite 1.02 available now.

September 7, 2009

SteerSuite 1.02 is released! Download it here.

Changes include:

  • Several bug-fixes, and resolved several compiling issues.
  • Many SteerLib API interfaces have been improved.
  • A new Qt GUI is available (still experimental and in development).
  • More of the benchmark techniques are implemented and usable now.

Look forward to the next release, too! Version 1.03 will include an original steering algorithm, called PPR (plan, predict, react). It will be a great starting point for users to begin experimenting with their own steering techniques and benchmarking techniques.

Users who want to use the Qt GUI will need to download and install Qt separately. Windows users will also need to re-compile Qt using the win32-msvc platform. Note that the Qt GUI is still in its infancy. It will be greatly improved in version 1.04 and beyond.

What is SteerSuite?

SteerSuite is a suite of tools, code, and test cases for developing and evaluating steering behaviors. It provides an easy but powerful framework to develop your own AI, evaluate behaviors, share results with the community, and more. The main components are:

  • Test Cases: a set of broad and challenging test cases to help test and develop your own steering algorithm, and a simple but functional XML format for creating your own test cases.
  • SteerSim: visualizes real-time or pre-recorded simulations of steering agents. Provides several built-in modules to configure the simulations and analyze the results, and an easy-to-use plugin architecture to make extensions.
  • SteerBench: benchmarks and scores simulations using a variety of benchmark techniques.
  • SteerLib: a C++ library to read the XML test cases and record simulations in your own code, and much more, to help developers and researchers focus on steering AI instead of time-consuming irrelevant infrastructure.

SteerSuite Features

Current features include:

  • Works on Windows XP, Windows Vista, Linux, Solaris, and Mac OS X
  • More than 40 test cases, specified in XML, to challenge your steering AI.
  • An XML schema for test cases, to easily make and share custom test cases.
  • A C++ test case reader to make it easy to load test cases in your code
  • A C++ "rec file" reader and writer to make it easy to create/playback recordings of the AI
  • A C++ grid-based spatial database that supports ray tracing, approximate nearest neighbor queries, and a traversal cost for each grid cell
  • Two benchmark techniques, and one more currently being developed
  • Several built-in modules, including modules for playing back recordings ("rec files"), benchmarking, and more
  • A powerful, easy-to-use plugin architecture to extend SteerSim.

Features coming soon include:

  • More complete documentation.
  • Support for multithreaded agent updates using a thread-pool model.
  • A new component, SteerBug, to allow interactive analysis of single behaviors.
  • A SteerSim plugin to allow interactive creating/editing/saving test cases.
  • SteerSim plugins that demonstrate example steering AI.
  • Several small command-line utilities for managing rec files and test cases.
  • A binary installer for Windows users.

Why SteerSuite?

SteerSuite was created to facilitate more rigorous evaluation of steering AI, and to facilitate sharing results. So far there has been no widely accepted conventions for how to present results and evaluation of a steering algorithm. To address this, SteerSuite includes a broad and very challenging set of openly specified test cases, intended to be examined and improved by the community. Furthermore, SteerSuite provides a way of creating recordings of steering behaviors so that developers can more easily share their results with others.

With this goal, an interesting question arises: how can we objectively evaluate steering behaviors? This question does not yet have a solid answer, and it may never have one, but SteerSuite tries to address this question by providing several ways to benchmark and evaluate steering behaviors. In addition, SteerSuite makes it easy for others to experiment with their own benchmarking ideas as well.

Additionally, there are very few steering frameworks with available source code, especially ones intended for use by the community. Perhaps the most popular steering software has been OpenSteer, by Craig Reynolds. SteerSuite aims to provide similar functionality, so that developers have an environment to quickly and easily prototype steering ideas without re-inventing the entire infrastructure needed.

Join the discussion group!

SteerSuite has a discussion group using Google Groups. There you can share custom test cases, report benchmark results, and share recordings of your steering AI simulations (all of which are easy to create with SteerSuite). If there is enough interest and enough content, we will organize user-submitted test cases and benchmark results as part of this web page. There are also many interesting issues to discuss: How can we objectively evaluate steering behaviors? How could SteerSuite's benchmarking process be improved? What do you feel are the important problems to address in steering these days? Share your opinions with the discussion group!

If you would like to join, subscribe here , or contact us for an invitation. You can view and post from the forum through a web browser, and you can choose whether to receive emails.