Now Playing
The Untold History of Gaming
By 1986, a moose could appear on a Macintosh screen. He spoke aloud, moved his mouth to match the words and told jokes.
Canadian physician and programmer Steven B. Halls created the Talking Moose, back when a recognizable face had to be assembled from black-and-white pixels. This one gained a personality from very few pixels.
Today, talking computers usually bring up questions of artificial intelligence. The Moose's beginnings belong to a different sort of story: one programmer working out how to make a computer-generated voice seem to come from a character.
Why a moose?
Antlers played a part.
Pictures of the original Talking Moose show a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most of the work. As Halls recalls, antlers were easy to recognize at a small size. Liking moose himself settled the matter.
The first version was written by Halls in assembly language. Making the lips follow the speech took real ingenuity. As he recalls it, the program located Macintalk, the Macintosh speech engine, in memory. Watching data about the sound being played, it then adjusted the Moose's mouth shape to match.
None of this altered the speech engine's memory. The Moose was observing that memory. Early Macintosh software could reach across applications into memory, in ways modern operating systems generally restrict.
That same access let the character remark on window and document names in familiar applications. Information on your own computer was what a seemingly knowledgeable Moose was responding to. Behind the face was programmed behavior, not a language model.
Into Color
Color arrived for the Moose around 1989. Halls kept a picture of that version on his wall, printed with an early Macintosh color printer. The scans in his color Moose account still reveal the printing dots.
Here is a small piece of computing history to inspect: the character as it looked then, kept on paper as well as in software.
Another kind of record came from old users. In a letter published in 2016, Mike Ellis recalled seeing the Moose at a Boston Mac Developers Group conference in the late 1980s:
"He was widely admired by some of the cleverest developers I've ever known, and he became my constant companion on my Mac Plus."
Other recollections sent to Halls sit alongside that letter. People still remembered the character well enough to write to its maker, decades after using the software.
Making a Three-Dimensional Head Feel Alive
The Windows Moose that followed had a three-dimensional head. Its ears moved and its eyes looked around. Eyebrows and mouth gave it more expressive scope than the original pixels could manage.
Those movements would have become predictable if the same animation clips played over and over. Instead, the Windows character used procedural animation, with algorithms generating its motions.
Halls's account of the animation describes controlled randomness. Rather than ending at exactly the same spot, a movement could finish near a target. The pause before the next movement varied, and its speed varied too. Smooth acceleration and deceleration stopped the result from looking mechanical.
With the platform, the lip-sync mechanism changed. Timing information from Microsoft's Speech API told the Windows character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique.
Something useful to say
Jokes stayed part of the Moose, though plugins gave it other things to talk about. News and weather came alongside reminders and notifications.
A working Pushover connection appeared in a June 2016 update, with events for the Moose to announce supplied by IFTTT. Approaching rain was the subject of one example. A phone entering a home geofence triggered a spoken "Welcome home" on the user's PC in another example.
You did not have to keep checking a screen for those messages. You could simply hear them.
A Voice That Had a Face
Forty years stand between the original Moose's 1986 appearance and today's enthusiasm for AI assistants. Describing it as an early version of today's conversational AI would miss what Halls actually built. Speech synthesis and carefully written animation code were enough to make a joke appear to come from an antlered companion.
Mike Ellis felt that companion belonged on his Mac Plus. The later Windows project could make it the voice announcing rain or greeting someone arriving home.
Those early screenshots are still worth a look. Plainly a face made of pixels, it was nonetheless remembered by a former user as a companion. That's quite a result for a joke-telling moose.
