Cognitive Modeling

Note: Although thoroughly tested, program code and sources come without any warranty.
Nonetheless, we hope the different pieces of code are helpful and appreciated.
If you have any questions, detect any bugs, etc., please contact the authors.

Heider-Simmel-Story-Generator on GitHub

The newest version of the Heider-Simmel-Story-Generator can now be found on GitHub.

ModulHandBuch Bachelor Informatik

Hier probieren wir, wie das ModulHandbuch JavaScript sich in Typo3 integrieren lässt.


This tool allows you to create stories performed by simple geometric figures like the ones created in a pioneering work bei Heider and Simmel already in 1944 (!). Despite the lack of any human features (hands, legs, eyes or mouth), the observer involuntarily interprets the motion seen on the screen and mentally creates a story, often with a strong social component by attributing emotional states like "angry", "happy", "sad", "excited" to the "actors" (which are only simple shapes, after all).

Instructions: Download and start the "jar" file (you will need Java 7 or higher). Load one of the pre-constructed stories (see links below) or create your own story (create a disk by clicking to the corresponding button, then drag a circle with the mouse on the left panel, add multiple interactions to the disk and determine the transition rules to other behaviors in the tabular structure on the right).

Note: This is the initial release, certainly some things can be improved and our wish-list for additional features is long. We plan to enhance and simplify the tool much further in the near future...

Example stories:

Link to the code: This project is available as public GIT repository. Feel free to use the integrated issue tracker to leave improvement hints.


DiskWorld - A simple 2D physics simulation environment.

DiskWorld is a simple physics simulation environment, written in plain Java (compiler compliance level 1.6) requiring no additional libraries. It simulates a 2D environment consisting of a tiled floor, walls and objects. Objects are constructed as rigid clusters of non-intersecting disks. Disks can be equipped with various sensors and actuators, realizing embedded agents of all sorts.

For a basic introduction to the DiskWorld principles and code examples illustrating how to use the library, see the JavaDoc documentation and the manual contained therein. Also have a look at the introduction video (also on YouTube).

SimulationManager 1.0

Abstraktion und Parallelisierung von Simulationen (siehe auch die zugehörige Dokumentation: COBOSLAB Report Y2013N002)

RNNPBlib 1.1

Recurrent Neural Networks with Parametric Biases Library (siehe auch die zugehörige Dokumentation: COBOSLAB Report Y2013N001)

Rubber Hand Data 11/2013

The data that is reported in our PlotOne Paper (currently still in revision)...

Elbow Angle Estimates, Hand Location Estimates, and Questionnaire Answers were recorded.

The data files include the three resective raw data recordings and an aggregated table that was used for the further data analysis.


Herbert Jaeger's Echo State Network in Java. Code includes a comfortable user interface to test the ESN capabilities on various test problems and with various settings. Documentation provides information on how to get started, how to evaluate ESNs on various problems, our own performance evaluations, as well as an extensive UML-based overview of the code structure. Download the documentation here.

V1 in CUDA 1.0.1

This is our parallel implementation of various visual filters. The focus lies on the implementation of Serre, T., Wolf, L., Bileschi, S., Riesenhuber, M., and Poggio, T. (2007)'s Gabor filter-based layer S1 and the applied max operator in layer C1. The implementation runs on CUDA-capable graphics cards and provides at least one order-of-magnitude speed-up compared to a standard serial implementation. Download the accompanying technical report "CUDA implementation of V1 based on Gabor filters" here


Implementation of the XCSF Learning Classifier System that is used for function approximation. The package includes four condition types (rectangles, ellipsoids, rotating rectangles, and rotating ellispsoids), three predictors (constant, linear, and quadratic RLS), and various test functions. Furthermore, several visualization plugins can be used to show XCSF's current progress, the condition structure, and the predicted function surface. In order to exploit the full power of multicore CPU's, a parallelized matching procedure is available. Four interfaces make it easy to extend the code, for example by implementing new functions. For more information, please refer to the COBOSLAB Report Y2009N001. Previous versions of the code are listed below.

Previous Versions:

2008: XCSF-Ellipsoids Java

XCSF-Ellipsoids Java is an advanced XCSF implementation for population-encoded function approximation. The software supports hyperellipsoidal conditions and recursive least squares predictions. Moreover, it supports various online visualization routines that show spatial coverage, classifier evolution (step-wise or block wise), and online performance visualization including performance graphs and function surface approximation. The code can be used to evaluate XCSF on several implemented test functions. Other test functions or approximation problems can be easily implemented. For more information, please refer to the MEDAL Report No. 2008008.

2007: XCSF Java 1. 1

Requires Java3D. Supports binary and real-valued function approximation. No action set etc. but it can be easily included. For further information on how to run the code and the features of the code, please see the documentation.

SURE_REACH (Sensorimotor Unsupervised Redundancy Resolving Control Architecture

Sensorimotor Unsupervised Redundancy Resolving Control Architecture - a neural network-based learning architecture that learns to control a three degree of freedom arm in a two dimensional environment. Unsupervised learning, efficient storage of sensorimotor redundancies, and effective redundancy resolution yield robus and highly flexible arm control. The current SURE_REACH implementation in Java offers a complete user interface, pre-learned matrices, etc. Further information can be found here.