The Untold History of Virtual Pets
In 1986, a Macintosh could have a moose on its screen. He spoke aloud, moved his mouth to match the words and told jokes.
Canadian physician and programmer Steven B. Halls built the Talking Moose in an era when any recognizable face had to be assembled from black-and-white pixels. Few pixels were enough to give this character a personality.
Questions about artificial intelligence tend to follow today's talking computers. The Moose's beginnings tell a different kind of story, that of one programmer working out how to make a computer-generated voice seem to issue from a character.
So why a moose?
The antlers helped.
Photographs of the original Talking Moose present a two-dimensional Macintosh character. Since there was little room for detail, much of the work fell to its outline. As Halls recalls, antlers were easy to recognize at a small size. He also happened to like moose, so the choice was settled.
The first version was written by Halls in assembly language. The lips had to follow the speech, which took some ingenuity. The program located Macintalk in memory, as Halls recalls, that being the Macintosh speech engine. It watched information about the sound being played, then adjusted the Moose's mouth shape accordingly.
This didn't change the speech engine's memory. The Moose was watching it. In those days, Macintosh software could access memory across applications, something modern operating systems generally restrict.
That same access let the character remark on window and document names in familiar applications. A Moose that seemed to know something about your work was responding to information on your own computer. Behind the face was programmed behavior, not a language model.
The Years in Color
Around 1989, the Moose gained color. On his wall, Halls kept a picture of that version, printed with an early Macintosh color printer. His account of the color Moose includes scans where the printing dots are still visible.
You can inspect this small piece of computing history, the character as it looked then, preserved in software and on paper.
Early users provided another kind of record. A letter published in 2016 has Mike Ellis recalling the Moose at a Boston Mac Developers Group conference in the late 1980s:
"Some of the cleverest developers I've ever known admired him widely, and he became my constant companion on my Mac Plus."
That letter sits among other recollections sent to Halls. Even decades after using the software, people remembered the character well enough to write to its maker.
Giving a 3D Head Life
The later Windows Moose came with a three-dimensional head. Its ears moved and its eyes looked around. More expression came from its eyebrows and mouth than the original pixels could manage.
Playing the same animation clips over and over would have made those movements predictable. Instead, the Windows character used procedural animation, with algorithms generating its motions.
Controlled randomness is what Halls's explanation of the animation describes. Rather than ending at exactly the same spot, a movement could finish near a target. Its speed varied too, as did the pause before the next movement. Smooth acceleration and deceleration kept it from appearing mechanical.
The lip-sync mechanism changed from one platform to the next. On Windows, the character took timing information from Microsoft's Speech API to choose its mouth shapes. There was no need to recreate the old Macintalk memory-observation technique.
Something Useful to Announce
Jokes remained part of the Moose, but plugins gave it other things to talk about. News and weather joined reminders and notifications.
A working Pushover connection appeared in a June 2016 update, with events for the Moose to announce supplied by IFTTT. One example warned of approaching rain. A phone entering a home geofence triggered a spoken "Welcome home" on the user's PC in another example.
You didn't have to keep checking a screen for those messages. Hearing them was enough.
A Voice That Had a Face
Between the original Moose's 1986 appearance and the current enthusiasm for AI assistants lie forty years. Calling it an early version of today's conversational AI would miss what Halls actually built. Speech synthesis and carefully written animation code sufficed to make a joke appear to come from an antlered companion.
For Mike Ellis, that companion belonged to his Mac Plus. In the later Windows project, it could be the voice announcing rain or greeting someone arriving home.
The early screenshots still repay a look. It's plainly a face made of pixels, yet a former user remembered a companion. Quite a result, for a moose that told jokes.


