Image banner for technology timing section

Narrative Control

  The narrative control program of the KidsRoom queries the sensor programs for information about what is happening in the room at a given time and then changes how the room responds so that participants are guided through the narrative.  


Event loop

Vision processes, such as the object tracker, are continuously running and generating data. There are many situations that require an immediate response from the control program. For example, when someone enters the room the system must start tracking the person and the control program must immediately learn of the person’s presence. Similarly, if everyone leaves the room, the story must be frozen at its current point instead of continuing on as if there were still participants. Consequently, the control program can never stop and wait for some event at the expense of checking other perceptual input. The main control program is an event loop that continuously monitors the state of the room, checking all inputs as fast as possible all the time.


The control program keeps track of events using timers. Each event has a timer associated with it. When the event is activated, the timer is reset. The event timer can then be queried each pass through the event loop to see if the event has timed out. The most general event timer is simply used to time story events. For example, a timer is initiated for each short segment of the story. If the timer runs out, the narrative control program may then take some action like playing a narration or moving on to another part of the story. Timers are also used to control sound effects and narrations so that sounds don’t play on top of one another. For instance, one background sound effect is a looping jungle noise. Each time a sound is played, a timer is set to the time it will take the sound to play. Each loop through the control program where there is a command to play the jungle sound, the timer is queried. If time is up, the sound is played again and the timer is reset. If the time is not expired, the sound is still playing and the control loop does not send the play command again. Since the control program is looping quickly, as soon as the sound stops playing it will play again, creating a continuous loop of forest ambient sound. Narrations are handled in a similar way, to prevent narrations from playing on top of one another or from playing too quickly. Aside from setting the correct time values for each sound, the timer control is relatively transparent to the programmer.

Sensitivity to timing

Although the timer controls are fairly straightforward to program, it was time-consuming to tune the narrative control system so that the room responded naturally throughout each stage of the story. For example, in a given segment of the story, it is possible to program timers so that the interaction feels "right" when one person is in the room following the room’s instructions. However, when three people are in the room and they are not cooperating, additional narrations may be required since room participants may perform actions differently in longer or shorter amounts of time. Consequently, the timing can be thrown off and the room can start to feel unresponsive. Further, the more people that are in the room, the more situations the control program must handle. Handling such problems while maintaining a feel of quick responsiveness without sounding generating repetitive narration required a large amount of effort and experimentation. One area of future research might be to design algorithms that help to automate this process and identify tricky timing situations.

Manual intervention

Although the KidsRoom is fully automatic, every once and a while the computer could become confused about the state of the room. For example, if people enter the room too quickly it is possible for the object tracker to ignore one person and think there are fewer people in the room than there actually are. To handle these cases, the control program was designed so that it could be reset at any time or so that the story could be manually advanced to the next short segment at any time. Adding such flexibility creates additional timing complexities.


  Story - Playspace - Technology - People - Info  

The KidsRoom - Perceptual Computing Group - MIT Media Laboratory