In 1986, a Macintosh could have a moose on its screen. He spoke out loud and told jokes, his mouth moving to match the words. 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. Talking computers today often raise questions about 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. The antlers helped. The original Talking Moose appears in pictures as a two-dimensional Macintosh character. There was little room for detail, so its outline had to do much of the work. Halls remembers that antlers were easy to recognize even when small. He liked moose as well, and that settled the choice. Halls wrote the original code 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. This didn't change the speech engine's memory. The Moose was simply watching it. 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 appeared to know something about your work was reacting to information on your own computer. Its behavior was programmed, with no language model behind the face. By around 1989, the Moose had acquired color. A picture of that version, printed with an early Macintosh color printer, hung on Halls's wall. The scans in his color Moose account still reveal the printing dots. You can inspect this small piece of computing history, the character as it looked then, preserved in software and on paper. Former users supplied a further 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 that were sent to Halls. Decades after using the software, people still remembered the character well enough to write to its maker. 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. Repeating the same animation clips would have made those movements predictable. The Windows character used procedural animation instead, its motions generated by algorithms. Halls's explanation of the animation describes controlled randomness. A movement could end near a target rather than at exactly the same spot each time. The pause before the next movement varied, and its speed varied too. Smooth acceleration and deceleration kept it from appearing mechanical. The lip-sync mechanism changed from one platform to the next. On Windows, Microsoft's Speech API supplied timing information that told the character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique. The Moose kept its jokes, but plugins added other things for it 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. One example gave warning 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 simply hear them. The original Moose appeared in 1986, some forty years before the current enthusiasm for AI assistants. To call 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. For the later Windows project, it could be the voice announcing rain or greeting someone arriving home. The early screenshots are still worth 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.The Curious History of Animation
Why a moose, though?
The Years in Color
Making a Three-Dimensional Head Feel Alive
Something Worth Saying
A Face for a Voice