Thalamus is a high-level integration framework aimed especially at developing interactive characters that interact both through virtual and physical components. It was developed in C# to accommodate social robots into such a framework, while remaining generic and flexible enough to also include virtual components such as multimedia applications or video games running on a touch table. It follows on the concepts of asynchronous messaging middle-ware and on well-defined message structures (based on MOM as ROS does) to provide a seamless plug-and-play-modules functionality, see figure below. However, being a higher level middle-ware (in comparison to ROS) it works “out of the box”, without requiring any installation on the host system, and also includes graphical interfaces aimed at developing Thalamus modules as agents. It also aims at being easy to use and to share, to be portable and adequate for collaborative development.


Figure 1: Thalamus architecture

How Thalamus was used in emote

This framework was used to integrate all modules (e.g. Skene, Nao, Game, GameAI, etc.) and to manage the communication process between. As the EMOTE system is made up of several components, each of which is dedicated to a specific role, we decided to keep this separation between different scopes also in the implementation, developing each component as a standalone module that will cooperate with the others communicating with them using Thalamus.

What can Thalamus be used for?

Thalamus breaks the sense-think-act loop by not specifying any particular layer structure. The idea behind it is that a Thalamus Character is an agent built out of agents. These agents are Thalamus modules that exchange perceptions and actions between them, so while any module may actually contain a sense-think-act loop, holistically the Thalamus Character does not. That allows it to simultaneously contain several modules that deal with behavior, or with perception, or even with decision making, as long as the combination of them all produces the expected overall behavior. These Characters can be used seamlessly across embodiments (virtual or robotic) and applications, by just switching or tweaking some of the modules.

Tutorial info:

See Documentation folder in the download file



  • Ribeiro, T., Pereira, A., Di Tullio, E. and Paiva, A. The SERA ecosystem: Socially Expressive Robotics Architecture for Autonomous Human-Robot Interaction. In AAAI 2016 Spring Symposium on ”Enabling Computing Research in Socially Intelligent Human-Robot Interaction: A Community-Driven Modular Research Platform. in press (2016).
  • Ribeiro, T., Di Tullio, E., Pereira, A., Paiva, A. (2014). From Thalamus to Skene – High-level behaviour planning and managing for mixed-reality characters. In Intelligent Virtual Agents (Workshop on architectures for IVAs). Springer Berlin Heidelberg.
  • Ribeiro, T., Di Tullio, E., Corrigan, L. J., Jones, A., Papadopoulos, F., Aylett, R., Castellano, G., Paiva, A. (2014). Developing Interactive Embodied Characters using the Thalamus Framework: A Collaborative Approach. In Intelligent Virtual Agents. Springer Berlin Heidelberg.
  • Ribeiro, T., Vala, M., & Paiva, A. (2013, January). Censys: A Model for Distributed Embodied Cognition. In Intelligent Virtual Agents (pp. 58-67). Springer Berlin Heidelberg.
  • Ribeiro, T., Vala, M., & Paiva, A. (2012, January). Thalamus: Closing the mind-body loop in interactive embodied characters. In Intelligent virtual agents (pp. 189-195). Springer Berlin Heidelberg.