The Evolution of Fan Communities
In 1986, a Macintosh could have a moose on its screen. He spoke aloud, moved his mouth in time with the words, and told jokes.
Canadian physician and programmer Steven B. Halls created the Talking Moose at a time when a recognizable face had to be assembled from black-and-white pixels. Few pixels were enough to give this character a personality.
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 pick a moose?
It came down to the antlers.
Images of the original Talking Moose show a two-dimensional Macintosh character. Since there was little room for detail, much of the work fell to its outline. Halls recalls that antlers were easy to recognize at a small size. He liked moose as well, and that settled the choice.
The original code was written by Halls in assembly language. Getting the lips to follow the speech took some ingenuity. In his recollection, the program found Macintalk, the Macintosh speech engine, in memory. It watched information about the sound being played, then adjusted the Moose's mouth shape accordingly.
None of this altered the speech engine's memory. It was the Moose that did the watching. Accessing memory across applications was possible in early Macintosh software, though modern operating systems generally restrict it.
The character could also comment on window and document names in familiar applications, thanks to that access. Information on your own computer was what a seemingly knowledgeable Moose was responding to. Its behavior was programmed, without a language model behind the face.
The Years in 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.
Old users supplied another kind of record. Mike Ellis, in a letter published in 2016, recalled seeing the Moose at a Boston Mac Developers Group conference in the late 1980s:
"He became my constant companion on my Mac Plus, and he was widely admired by some of the cleverest developers I've ever known."
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 later Windows Moose had a three-dimensional head. Its ears moved, and its eyes glanced about. Eyebrows and mouth gave it more expressive scope than the original pixels could manage.
Playing the same animation clips over and over would have made those movements predictable. Instead, the Windows character turned to procedural animation, with algorithms generating its motions.
The animation, as Halls explains it, uses controlled randomness. 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 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. The old Macintalk memory-observation technique did not need to be recreated.
Something Useful to Announce
The Moose kept its jokes, but plugins added other things for it 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. Another saw a phone entering a home geofence trigger a spoken "Welcome home" on the user's PC.
You did not have to keep checking a screen for those messages. You could hear them.
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.
That companion, for Mike Ellis, belonged on his Mac Plus. In the later Windows project, it could be the voice announcing rain or greeting someone arriving home.
Looking at the early screenshots is still worthwhile. A face made of pixels, plainly, yet a former user remembered a companion. Quite a result, for a moose that told jokes.