CHREST is a cognitive architecture for developing models of human perception and learning. This repository contains an implementation of CHREST in Java, and jRuby libraries to work with and extend the architecture.

The CHREST project page contains information about CHREST, publications, links to other implementations, etc.

For any matters related to this repository, contact Peter Lane (


Users should start with the following:

Alternatively, use jRuby with:

Latest source code: zip - tar.gz

Clone and view this fossil repository using the following commands:

$ fossil clone chrest.fossil
$ mkdir chrest_folder
$ cd chrest_folder
$ fossil open ../chrest.fossil
$ ls
... shows all the files
$ fossil ui
... opens the repository in your browser

Published Results

Some published results which use this implementation of CHREST.

> Chess board interpretation

Two projects have explored CHREST’s ability to learn interpretations or labels for chess positions. The idea is to associate chunks and templates with verbal labels, and recall these labels as chunks or templates are recognised in a position.

The first experiment explored whether CHREST could identify symbolic interpretations for a chess position, as may be used by a human player. In the following figure, we see that CHREST has recalled three of the interpretations offered by the human analyst, and added one further one of its own. Overall, CHREST recalls interpetations agreeing with the human's in over half of the test set.

The second experiment used the same mechanisms, but required a simpler assessment: a label indicating which opening the position was from. Positions were taken from games played in two openings, and assessed as the middle-game was reached. CHREST obtained a geometric mean of 0.8, which was equivalent to that obtained by a Support Vector Machine on the same data.

The code for these two experiments is available in the 'results/' folder.

The two experiments are described, respectively, in:

> Implicit learning

Implicit learning means the kind of learning that occurs without conscious intention or awareness. Classic examples of such learning are word segmentation, or recognising that a sequence of sounds or symbols falls within a familar pattern.

Using CHREST, we have constructed models of this learning process which are comparable to human performance and other kinds of model (e.g. ACT-R). The model from Lane and Gobet (2012), which learns a Reber Grammar, is included as an example with CHREST.

Main publications:

> NetLogo agents

CHREST is used as part of a dual-process model of agents, running within NetLogo's TileWorld environment.