SteerSuite

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

 

SteerSuite 2.0 available on GitHub

September 17, 2015

SteerSuite 2.0 is now available from GitHub. Download it here. The new features include

  • Bug fixes to GridDatabase
  • Added KDTree Spatial Database
  • Moving common code into AgentInterface. Makes creating new steering algorithms easier
  • Addition of the Recast navmesh library.
  • Ability to use Recast to generate environment navmesh via new navmeshBuilder module
  • System has been made more modular. Spatial Dabases and pathfinding algorithms can be dynamically swapped
  • Extension to steersuite testcase schema. Now support some new kinds of geometry and rendering settings.
  • Support for more kinds of obstacles
  • Better support for logging simulation metrics. Including packaging logging into util module
  • More documentation
  • Removed outdated AntTweakBar
  • Performance Improvements
  • Upgraded to premake4 build system

Enjoy!

SteerSuite 1.5.0 available on GitHub

November 12, 2014

SteerSuite 1.5.0 is now available from GitHub. Download it here. The new features include

  • Bug fixes to GridDatabase
  • Additional functions in the Geometry library
  • Addition of the RVO2 steering library
  • Addition of the SocialForces steering approach.
  • Support for more kinds of obstacles
  • Better support for logging simulation metrics. Including packaging logging into util module
  • More testcases, including some from the computer games Starcraft and Baldur's Gate II
  • More documentation
  • Added AntTweakBar to display information on simulation
  • More Benchmark techniques, including PLE and Graph
  • Support for rendering SteerSuite on 3D screens in stereo

Enjoy!

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.