...
The ICT Virtual Human toolkit is based on the broader architecture as defined here. Every abstract module defines a function and API which can be implemented. The toolkit Toolkit modules are examples of these implementations, but all can be substituted by alternatives as long as the API's are implemented.
Most modules communicate by sending and receiving messages (the exception is exceptions are the integration between SmartBody and the renderer, and AcquireSpeech and a speech server). The toolkit Toolkit uses ActiveMQ for these messages and contains a VHMSG library that facilities development of new modules in C++, C#, Java, Lisp and TCL. New modules should use this library to receive and send messages to other modules within the system.
Each component should list the messages it is sending and receiving. This can be used as a guideline for developing new modules. For example, the speech client AcquireSpeech sends vrSpeech messages to the NPCEditor, who sends vrExpress messages messages to the Nonverbal NonVerbal Behavior Generator. The Nonverbal NonVerbal Behavior Generator in turn sends vrSpeak messages messages to SmartBody, who sends a request to the /wiki/spaces/VH/pages/30081796 engine, and then directly manipulates the skeleton in the renderer.
See the Virtual Human Messaging page for a description of all messages. Use the Logger when running the toolkit Toolkit scenario to see more concrete examples of the interaction between modules.