By Patrick van Bergen

This site contains an open-source library of AI techniques, written in C++. I write them to skill myself in becoming an AI software developer. I share the code to increase the momentum for using AI techniques in general. I feel much more can be done with AI in real life applications. Also, most of this code I will not use in a commercial setting and I would not like the effort put into it to be wasted.

Code and Documentation

The Source code (in a zip-file).

The code consists of a number of small libraries, each one for a technique mentioned below. All code is object oriented. This is because it befits most domains very well. Only when performance would really suffer from a completely OOP implementation, I have decided to use an other datastructure for part of the code. The implementation is driven by three factors: 1) Stay close to the specification of the technique; 2) Architectural elegance; 3) Good performance, in that order.

Each small library is based in a Model class, which manages all other objects needed in the domain. In any application, one first sets up the model, then there may be an initialization step, and finally one tells the model to run, or to update itself again and again until some criterion has been met.

Finally, I want to mention that I will not hesitate to mention any shortcomings I will find in the specifications of the techniques I use. I will also try to mention the implementation choices I make. And I will mention my own stupidities. All this is meant to bring the subjects to life, to show the creative process of software development.


The material is free to use but not to sell. If you want to use it commercially, ask my permission first. It is not been tested very much, so it may contain errors.

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 License.