Skip to main content.


The simulator is in Java and requires a recent version of the Java development kit from Sun.

Installation and running

tar xvfz slime-001.tgz
cd slime
make run


Click on the screenshots below to view Flash animations.

Drawing and running simple patterns

The first animation shows how to draw and run simple patterns with the mouse.

The 'State' primitive for persistent activity

The second animation shows the 'State' primitive to create subroutine-like behaviour (start a pattern running elsewhere and wait for it to complete). This is a useful primitive which could also be implemented using vanilla states (useing conditionals on the transitions).

Groups, chunking and novelty detection

The third animation shows how to make groups and use the 'Recorder' behaviour for making new patterns out of existing ones. The recorder patterns act as 'recognizers' which can detect sequences they've seen before. This is used in the example to store novel words out of letter sequences generated using a 'keyboard' transducer, the behaviour being 'store latest sequence if not novel', a useful mechanism for chunking information.

Getting started with the user interface

You can create states with the left mouse button, and transitions by dragging with the left mouse button.

The scroll wheel zooms in/out of the cursor position.

The INTERP button creates a series of intermediate states along transitions.

If you create a fork in the path, the pattern will choose one or the other direction at random.

The RIGHT MOUSE BUTTON can be used to create a new type of transition which forks activity in a different part of the display.

The MIDDLE MOUSE BUTTON moves states, or can be used to select a rectangular region.

The GO button sets the simulation going, with a slider at the top controlling the speed. You can start multiple states active initially with the INIT checkbox at the top.

You can add an output to any state by checking the NOTE box, and add a descriptive label using the text box in the top line. The pitch of the note is derived from the Y pos of the state.

The STATE checkbox at the top lets you convert an instantaneous pattern into continuous activity. This is a shorthand for a loop 'stay in current state until told to stop' which can be used for subroutine-like structures in the machine. Use the Right mouse button to generate onset / offset triggers from a state (the link out from a state can trigger activity elsewhere; when it is done, the link in can clear the state and continue where it left off).

The LOAD button reads in a pattern from a MIDI file (hard coded) at present, and then GO will play it.

You can group areas by dragging a rectangle with the middle button and predding GROUP.

The RESET button wipes the slate clean.