SoarGroup / Soar

Soar, a general cognitive architecture for systems that exhibit intelligent behavior.
http://soar.eecs.umich.edu
Other
322 stars 70 forks source link

Soar

Build/Test

This is the code base for Soar, a cognitive architecture for developing systems that exhibit intelligent behavior. For more information about this project, please visit:

Note that the readme included with the Soar distribution for end-users is in the Release-Support repository.

Soar Builds

For binary builds of Soar you can get them in two places:

Soar Performance

Some performance statistics are calculated automatically using the Factorization Stress Tests. You can see performance on a commit-by-commit basis either in Performance.md or here. The raw data used to generate the graphs for each build can be found here.

Disclaimer: These are worst case tests. Average performance is probably much higher. In addition, these show that even in worst case, Soar beats its goal of 50 msec reactivity (in these tests, the max is ~30msec per decision).

Development

Prerequisites

The instructions below are cursory and may be out of date; the most up-to-date instructions for compiling Soar from source will always be the CI build scripts. You can find them here.

To compile Soar, you will need the dependencies listed below. Note that the installation commands are not complete, e.g. missing instructions for Mac do not mean that the dependency is not needed on Mac, etc.:

To compile the extra SML wrapper libs, you will need the following:

The project supports generating compile_commands.json, which can be used by e.g. VSCode with the C/C++ plugin to provide IntelliSense. To generate this file, run scons with the cdb target:

python3 scons/scons.py --scu --opt --verbose cdb

Note for M-series Mac users: you'll want to make sure you're compiling for ARM64, not x86_64. Sometimes users have Python installed in compatibility mode, leading to compiles for the wrong architecture. You can check which architecture your Python is built for using this:

import sysconfig
>>> print(sysconfig.get_config_vars())

You can also check your clang's default compile target using clang --version.

License

Soar is available under the following LICENSE. This license is BSD