The First Days of Stagecraft
A Macintosh in 1986 could show 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, back when a recognizable face had to be assembled from black-and-white pixels. Only a handful of pixels were needed to give it a personality.
Questions about artificial intelligence tend to follow today's talking computers. A different sort of story covers the Moose's beginnings: one programmer figuring out how a computer-generated voice could seem to come from a character.
Why pick a moose?
It came down to the antlers.
Photographs of the original Talking Moose present a two-dimensional Macintosh character. With little room for detail, its outline had to do much of the work. Halls recalls that antlers were easy to recognize at a small size. He liked moose as well, and that settled the choice.
Halls wrote the original program in assembly language. The lips had to follow the speech, which took some 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 left the speech engine's memory untouched. 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 access also let the character comment 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. No language model stood behind the face; its behavior was programmed.
The Color Years
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.
Old users supplied another kind of record. In a letter published in 2016, Mike Ellis remembered 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."
Among the recollections sent to Halls sits 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; its eyes looked around. Eyebrows and mouth gave it more scope for expression than the original pixels could manage.
Repeating the same animation clips would have made those movements predictable. Instead, the Windows character used procedural animation, with algorithms generating its motions.
The animation, as Halls explains it, uses controlled randomness. Each movement could end near a target, not at precisely the same spot every time. Its speed varied too, as did the pause before the next movement. Smooth acceleration and deceleration kept the result from looking mechanical.
The lip-sync mechanism changed with the platform. On Windows, timing information from Microsoft's Speech API told the character which mouth shapes to use. Recreating the old Macintalk memory-observation technique was unnecessary.
Something Useful to Say
Jokes stayed part of the Moose, though plugins gave it other things to talk about. Reminders and notifications were joined by news and weather.
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. 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. You could simply 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. It could announce rain or greet someone arriving home in the later Windows project.
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. For a joke-telling moose, that is quite a result.
