What is Psyclone?

Psyclone is a framework for creating complex software systems. The Psyclone executable is the central part of the Psyclone System. It can contain any number of Whiteboards which are the dispatchers with which internal and external modules subscribe for messages and data, and where they post their output to. All internal modules run inside Psyclone and can therefore communicate much faster with the Whiteboards (and thus each other) than external modules that run as separate executables, either on the same or another computer.

All internal modules have to be fully specified in the psySpec configuration file including in which third-party libraries to find their central crank function which is run as an internal process inside Psyclone. The specification includes information about which Whiteboards to subscribe to, which additional messages to retrieve when woken up by a trigger message, which parameters the crank function will be given and where to post the output.

External modules are also specified in the psySpec, but instead of a crank specification they have an executable specification which tells Psyclone the command line with which to start the executable containing the external module. Normally one would fully specify subscription information here too, although mechanisms exists to manually register from within the external module when it is running.

Internal modules are created using the Psyclone SDK. External Modules are created using one of the AIR Plug extensions in different programming languages, currently C++ and Java.

The Psyclone Pro can run on many computers as a distributed process and on each computer any number of Whiteboards and any number of internal and external modules can be configured to run.

The NCL version of Psyclone is limited to run on one computer but can support connections from external modules running on another computer. The Pro version allows external modules to connect from any number of computers.