The Rise of Virtual Companions
In 1986, you could put a moose on a Macintosh screen. He spoke aloud, moved his mouth in time with 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. It didn't take many pixels to give this one a personality.
Today, talking computers usually bring up questions of artificial intelligence. The Moose's beginnings belong to another kind of story: a single programmer working out how to make a computer-generated voice seem to come from a character.
Why pick a moose?
The antlers helped.
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. Halls recalls that antlers were easy to recognize at a small size. Liking moose himself settled the matter.
Halls wrote the original program in assembly language. Making the lips follow the speech took real ingenuity. As Halls recalls, the program located Macintalk, the Macintosh speech engine, in memory. It observed the sound being played and then changed the Moose's mouth shape to suit.
None of this altered the speech engine's memory. It was the Moose that did the watching. Early Macintosh software could access memory across applications in ways that 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. Its behavior was programmed, with no language model behind the face.
The color years
By around 1989, the Moose had acquired color. Halls kept a picture of that version on his wall, printed with an early Macintosh color printer. Scans in his color Moose account still show the printing dots.
It is a small piece of computing history you can inspect, the character as it looked then, preserved on paper as well as in software.
Former users supplied a further kind of record. 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 became my constant companion on my Mac Plus."
Among the recollections sent to Halls sits that letter. Decades after using the software, people still remembered the character well enough to write to its maker.
Making a 3D head feel alive
A three-dimensional head belonged to the later Windows Moose. Its ears moved; 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. The Windows character used procedural animation instead, its motions generated by algorithms.
Controlled randomness is what Halls's explanation of the animation describes. Each movement could end near a target, not at precisely the same spot every time. Its speed varied as well, and so did the pause before the next movement. Smooth acceleration and deceleration kept 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 remained part of the Moose, but plugins gave it other things to talk about. News and weather joined reminders and notifications.
A June 2016 update described a working Pushover connection, with IFTTT supplying events for the Moose to announce. Approaching rain was the subject of one example. Another saw a phone entering a home geofence trigger a spoken "Welcome home" on the user's PC.
You didn't have to keep checking a screen for those messages. Hearing them was enough.
A Face for a Voice
Forty years stand between the original Moose's 1986 appearance and today's enthusiasm for AI assistants. Calling it an early version of today's conversational AI would miss what Halls actually built. A joke could appear to come from an antlered companion, thanks to speech synthesis and carefully written animation code.
For Mike Ellis, that companion belonged to his Mac Plus. The later Windows project could make it the voice announcing rain or greeting someone arriving home.
The 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.
