The Making of Tech Nostalgia

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 created the Talking Moose, back when a recognizable face had to be assembled from black-and-white pixels. This one gained a personality from very few pixels.

Today, talking computers usually bring up questions of artificial intelligence. 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?

Antlers played a part.

Pictures 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. As Halls recalls, antlers were easy to recognize at a small size. He liked moose as well, and that settled the choice.

Halls wrote the original code in assembly language. Getting the lips to track the speech required some cleverness. 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 watching it. Early Macintosh software could access memory across applications in ways that modern operating systems generally restrict.

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.

Into 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. Scans in his color Moose account still show the printing dots.

You can inspect this small piece of computing history, the character as it looked then, preserved in software and on paper.

Early users provided 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 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 Seem Alive

The later Windows Moose came with a three-dimensional head. Its ears moved, and its eyes glanced about. Compared with the original pixels, eyebrows and mouth allowed far more expression.

Those movements would have become predictable if the same animation clips played over and over. Instead, the Windows character used procedural animation, with algorithms generating its motions.

Halls's explanation of the animation describes 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 stopped the result from looking mechanical.

With the platform, the lip-sync mechanism changed. On Windows, Microsoft's Speech API supplied timing information that told the character which mouth shapes to use. Nobody needed to recreate that old Macintalk technique of observing memory.

Something Useful to Announce

Jokes stayed part of the Moose, though plugins gave it other things to talk about. News and weather joined reminders and notifications.

A June 2016 update set out a working Pushover connection, in which IFTTT supplied events for the Moose to announce. Approaching rain was the subject of one example. In another, a phone entering a home geofence triggered a spoken "Welcome home" on the user's PC.

There was no need to keep checking a screen for those messages. You could hear them.

A voice with a face

Forty years stand between the original Moose's 1986 appearance and today's enthusiasm for AI assistants. What Halls actually built would be missed by calling it an early version of today's conversational AI. Speech synthesis and carefully written animation code sufficed to make a joke appear to come from an antlered companion.

For Mike Ellis, that companion belonged on his Mac Plus. For the later Windows project, it could be the voice announcing rain or greeting someone arriving home.

Looking at the early screenshots is still worthwhile. It's plainly a face made of pixels, yet a former user remembered a companion. For a joke-telling moose, that is quite a result.