The Long History of Red Carpet
By 1986, a moose could appear on a Macintosh screen. He spoke out loud and told jokes, his mouth moving to match the words.
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. The Moose's beginnings tell a different kind of story, that of one programmer working out how to make a computer-generated voice seem to issue 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 also happened to like moose, so the choice was settled.
The first version was written by Halls in assembly language. Getting the lips to track the speech required some cleverness. The program located Macintalk in memory, as Halls recalls, that being the Macintosh speech engine. It observed the sound being played and then changed the Moose's mouth shape to suit.
The speech engine's memory was not changed by this. The Moose was simply watching it. In those days, Macintosh software could access memory across applications, something modern operating systems generally restrict.
The character could also comment on window and document names in familiar applications, thanks to that access. A Moose that appeared to know something about your work was reacting to information on your own computer. Behind the face was programmed behavior, not a language model.
The color years
The Moose had taken on color by about 1989. A picture of that version, printed with an early Macintosh color printer, hung on Halls's wall. Scans in his color Moose account still show the printing dots.
It's a small piece of computing history you can inspect: the character as it looked then, preserved on paper as well as in software.
Old users supplied another 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:
"He became my constant companion on my Mac Plus, and he was widely admired by some of the cleverest developers I've ever known."
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.
Making a 3D head feel alive
The Windows Moose that followed had a three-dimensional head. Its ears moved, and its eyes glanced about. Eyebrows and mouth gave it more scope for expression than the original pixels could manage.
Playing the same animation clips over and over would have made those movements predictable. Algorithms generating its motions gave the Windows character procedural animation instead.
The animation, as Halls explains it, uses controlled randomness. Each movement could end near a target, not at precisely the same spot every time. The pause before the next movement varied, and its speed varied too. Smooth acceleration and deceleration kept the result from looking mechanical.
With the platform, the lip-sync mechanism changed. On Windows, timing information from Microsoft's Speech API told the character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique.
Something Useful to Say
Plugins gave the Moose other things to talk about, while jokes remained part of it. To reminders and notifications were added news and weather.
A June 2016 update set out a working Pushover connection, in which IFTTT supplied 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.
Checking a screen for those messages was unnecessary. They could be heard.
A Voice with a Face
The original Moose appeared in 1986, some forty years before the current enthusiasm for AI assistants. What Halls actually built would be missed by calling it an early version of today's conversational AI. A joke could appear to come from an antlered companion, thanks to speech synthesis and carefully written animation code.
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 still repay a look. It is plainly a face made of pixels, yet a former user remembered a companion. That is quite a result for a joke-telling moose.