Show Control


Showsmith is a complete software and hardware package for authoring and automating the execution of an nonlinear interactive experience. Interactive experiences can include two major components: show (passive) and interactive activities.

For the show element, an integral part of Showsmith, known as iSPS (Interactive Show Puppeteering System), can be used to program shows that are driven by DMX, a lighting control protocol. If a device can accept DMX signal, it can be programmed by iSPS. Some examples of such shows include lighting shows and animatronics animation. In addition, Showsmith uses surround sound technology extensively, since the use of audio is often instrumental in creating an engaging show.

For the interactivity of the experience, the system is capable of receiving digital input as keyboard input, allowing a variety of input devices such as buttons, switches, etc. to be used as interactive devices in the experience. A simple example of such interaction could be that when a guest pushes a button, it triggers a light show that was programmed using iSPS, with a sound clip playing simultaneously in the background.

The purpose of Showsmith is to shorten the development time and simplify the process in creating interactive experiences without compromising the creativity and fun factor of the experiences. Anyone should be able to create generic experiences using Showsmith, but to harness the true power of Showsmith, some knowledge in C/C++ programming is required.


Inter Process Communication, an open-source software package developed at the Robotics Institute of Carnegie Mellon University, is a message-relaying system that assists in the communication of different components of a software that may be residing on different machines connected to a network. It uses a message-subscription system.

Interactive Device Input

Showsmith comes with a keyboard encoder made by Hagstrom Electronics. This is a board that is capable of accepting digital input and converts it to keyboard input. All interactive devices created for the experience should be connected to this board. Microsoft's DirectX's DirectInput component is used to handle the keyboard input on the software side.

Script Action Web

One can write a script for the interactive experience to serve the purpose of narratives. The script is constructed in the form of a directed acyclic graph that is stored in a Microsoft Access database. The flow of the experience need not be linear. Branches are encouraged to create non-linear experiences. Logically, the script spans out like a web.

Video Player

This component receives commands from Top Hat through IPC and plays a video clip as specified. It can play MPEG or AVI files.


Real-time Show Control System receives commands from Top Hat to send data to hardware. It uses Color Kinetics' USB-to-DMX hardware and software to sent out DMX signals to any device that takes DMX data. RSCS can either generate DMX data dynamically or read them in from files. DMX signal data can be stored as files (for pre-scripted shows) using iSPS (please see the technical specifications of iSPS for more details), and RSCS can open those files during run-time upon requests from Top Hat and deliver the data to DMX hardware. Also, using Direct Audio from Microsoft's DirectX 8, it can play audio using surround sound technology (with adequate hardware).

Top Hat

This component of Showsmith is the brain of the system. It is capable of reading in a Script Action Web for an experience and executing it. It also takes input from the Interactive Device Input and decides what to do next in real-time (based on the script). For example, it can tell RSCS to play a DMX animation or tell Video Player to play an MPEG file based on guests' input and what is specified in the script.