-
Notifications
You must be signed in to change notification settings - Fork 15
Introduction
SteerSuite is a suite of tools, code, and test cases for developing and evaluating steering behaviours. It provides an easy but powerful framework to develop your own AI, evaluate behaviours, share results with the community, and more. The main components are: SteerLib: A C++ library that provides much of the infrastructure used by typical AI and steering algorithms, allowing developers and researchers to focus on steering AI. Includes a modular simulation engine, spatial database functionality, planning functionality, classes to help read/write simulation recordings and test cases, and much more. Test Cases: A set of broad and challenging test cases to help debug and test your own steering algorithms, 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.
Some of the common tasks that are easily accomplished with SteerSuite
include:
Run steering simulations, stand-alone or in your own programs.
Record and playback steering behaviors and share results.
Benchmark steering behaviors and share results.
Develop and test your own AI on challenging test cases.
Visualize and animate results using the modular simulation engine with
OpenGL.
Use the simulation engine for other, non-steering related purposes, for
example, higher-level AI, or physical simulations for animation.
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 modular simulation engine that can be used your own programs.
Several existing modules for playing back recordings ("rec files"),
benchmarking, example AI, and more.
Infrastructure and functionality to develop your own AI:
Planning
State machine management
A spatial database that suppots ray tracing, nearest neighbor queries,
and path planning
Geometry, shapes, and drawing functionality
Performance profiling
Flexible, easy-to-use plug-in architecture to use your AI with the
simulation engine
A test case reader to make it easy to load test cases in your own
programs.
A "rec file" reader and writer to make it easy to create/playback
recordings of the AI in your own programs.
Several benchmark techniques and many metrics to score and quantify
steering behaviors.
SteerSim, a stand-alone program that provides command-line, openGL, and
Qt user interfaces.
Several examples of steering AI, including our own steering algorithms.
When it was first started, SteerSuite was originally 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.
SteerSuite created and architected by Shawn Singh.
Primary Developers:
Glen Berseth
Mubbasir Kapadia (mubbasir)
Research Team:
Glen Berseth
Brandon Haworth (m-brandon-haworth)
Muhammad Usman
Mubbasir Kapadia (mubbasir)
Prof. Petros Faloutsos (pfal)
Contributors:
Shawn Singh (shawnsin)
Brian Allen (vector)
Prof. Glenn Reinman (reinman)
Billy Hewlett
Brian Hou
Tingyu Thomas Lin
We greatly appreaciate the generous time, thoughts, feedback, and help that we received from the following people:
Sung Hee Lee, Gabriele Nataneli, Craig Reynolds, Prof. Demetri Terzopoulos.