The MAI Framework - A framework for research in artificial intelligence

Fast Facts

  • Written By: David Bond with a few algorithms coded by Niels Widger
  • Written In: C#
  • When Written: Senior Year College - 1st Year Grad School
  • Uses: XML, .NET, OpenGL, Mono, Visual Studio
  • Purpose: AI Research

I developed this framework for research I have done in AI. While the screenshots I show here have MAI running on in single agent path finding it has a full objected oriented design that decouples the algorithms from the domain and heurisitics being used. The code base for MAI has another domain, STRIPS planning, meaning that given the right heurisitics A* will work on path planning as well as STRIPS planning. The algorithm designer doesn't have to worry about the domain. The framework can be run in batch mode to produce output for graphs or in a visualizer mode to debug or demo the algorithms being developed. Here are a set of pictures with the path planning MAI visualizer.

Dynamic World Path Planning

Here is an example of path finding in a fully visible dynamic world with an added real time constrait.

Dynamic World Path Planning

Along with supporting HOG framework files MAI also can load a specially designed MAI xml format. This format has features such as prescripted changes to allow consitency between batch runs of maps.

Unknown World Path Planning

Here is an example of path finding in an initially unknown static world with an added real time constrait. The map here is an adaption of the War Craft 3 Moonglade map.

Dynamic World Path Planning

The visualizer supports many debugging features for algorithms that show some of the underlying data structures. This is useful for programmers to attain a better understand of how to improve the algorithms being developed.