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.
For binary builds of Soar you can get them in two places:
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).
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.:
xcode-select --install
sudo apt-get install build-essential
brew install python
To compile the extra SML wrapper libs, you will need the following:
brew install pkg-config
sudo apt install pkgconf
brew install swig
sudo apt install swig
sudo apt install python3-dev
csc
) (only needed for C# wrapper)
brew install mono
brew install tcl-tk
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
.
Soar is available under the following LICENSE. This license is BSD