The CHREST software provides a graphical application and library for running a variety of CHREST models and experiments. Currently, the graphical interface supports a range of domain-types for demonstration and test purposes. More functionality for developing models is available using the scripting interface.

Sample data, examples of scripting and a user manual are included in the download and in the links below.


CHREST can be used in a wide number of applications, but the following application areas are specifically supported in the GUI:

  • verbal learning
  • classification
  • pattern recognition and recall
  • visual attention and memory


CHREST models can be developed using languages supported by the JVM. In most cases it is easy to call into a Java library using another JVM language, but some additional support is provided for Ruby and Lisp.

- Ruby

jRuby is an implementation of Ruby on the JVM. Once jRuby is installed, install the CHREST gem using:

$ jruby -S gem install jchrest --source

and run a script using:

$ jruby demo-1.rb

Also see:

- Lisp

ABCL is an implementation of Lisp on the JVM. The following zip file contains the ABCL and CHREST jar files and a lisp wrapper:

The iowa gambling task model is also included, which uses CHREST’s emotions module.

- Python

Python is a popular language, although not much has been done so far with CHREST. CHREST can be used from jython as a library: see the installation/running instructions in

The calling procedure into Python appears very natural, and you can use the javadoc documentation for CHREST without modification.


Properties Learn and Recognise
Image of properties dialog Image of screen running a simple learn-and-recognise experiment
Paired Association Model View
Image of dialog training models on a paired-associate task Image of the model's long-term memory and other data
Learning Scenes Recall of Scenes
Image of dialog for training large CHREST models Image of screen showing the recall of scenes