Animated puppets is a graphical world inhabited by creatures called
woggles who move about and talk and play with one another. In
this world, the user can control one woggle, while the other woggle is
directed by the computer. The woggles use intelligent improvisational
ability to choose interesting behaviors.
The following is a screen dump of the graphical user interface for
This GUI was used in our "Interactive Experience" demo at CHI 95 (Denver,
CO). For more information, see our paper Directed
Improvisation by Computer Characters.
There is one GUI per character, for two characters: Aaron (with a
boy's voice) and Nora (with a girl's voice). Each GUI runs on a separate
display, since each user needs to control a mouse.
The large landscape in the upper left shows the world in which the
characters act out their stories. This is not the only possible world,
but one we have chosen for the animated puppets demonstration. We thank
Joseph Bates and his Oz
project for permission to use his "woggleworld" as our embodiment.
The sliders to the right control the character's mood: happy/sad,
peppy/tired, friendly/shy. The user can change the character's mood at
any time. Otherwise, the mood remains constant.
The buttons at the bottom specify an action: either what the character
is thinking of doing (the left array), or what the character is thinking
of saying (the right array). For movement actions, the user may
optionally select the destination of the movement; the destinations that
the character is considering are represented by the white dots
superimposed on the landscape. If one of those dots is clicked before the
movement button, the character will move to that location; otherwise, the
character's agent chooses the location.
Whenever the user operates any of the controls, the GUI sends a message
to the characters' agents, which then use that message in controlling what
the characters do. The agents also modify the GUIs' action buttons, since
each action changes what the characters would next think of saying and
doing. For example, when one character asks another character a question,
the second character's speech buttons become possible answers to the
question. As another example, if a character becomes tired, it will no
longer be thinking of leaping, but instead will think of shuffling or even