The Development of Visual Effects

In 1986, you could put a moose on a Macintosh screen. He spoke aloud, moved his mouth in time with the words, and told jokes.

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. Few pixels were enough to give this character a personality.

Today's talking computers tend to prompt questions about artificial intelligence. The Moose's beginnings belong to another kind of story: a single programmer working out how to make a computer-generated voice seem to come from a character.

Why a moose?

The antlers helped.

Pictures of the original Talking Moose show a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most 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. The lips had to follow the speech, which took some ingenuity. The program located Macintalk in memory, as Halls recalls, that being the Macintosh speech engine. It observed information about the sound being played, then adjusted the Moose's mouth shape to suit.

None of this altered the speech engine's memory. It was the Moose that did the watching. Early Macintosh software could access memory across applications in ways that modern operating systems generally restrict.

With that access, the character could comment on window and document names in applications users knew well. 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

The Moose had taken on color by about 1989. Halls kept a picture of that version on his wall, printed with an early Macintosh color printer. His color Moose account includes scans with the printing dots still visible.

It is a small piece of computing history you can inspect, the character as it looked then, preserved on paper as well as in software.

Former users supplied a further 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 was widely admired by some of the cleverest developers I've ever known and became my constant companion on my Mac Plus."

That letter sits among other recollections that were sent to Halls. Decades on from using the software, people remembered the character well enough to write to its maker.

Giving a 3D Head Life

A three-dimensional head belonged to the later Windows Moose. Its ears moved and its eyes looked around. 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.

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

The lip-sync mechanism changed from one platform to the next. Timing information from Microsoft's Speech API told the Windows character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique.

Something Worth Saying

Jokes stayed part of the Moose, though plugins gave it other things to talk about. News and weather came alongside 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. In another, a spoken "Welcome home" played on the user's PC when a phone entered a home geofence.

Checking a screen for those messages was unnecessary. You could hear them.

A Voice That Had a Face

Forty years separate the original Moose's 1986 appearance from the current enthusiasm for AI assistants. Calling it an early version of today's conversational AI would miss what Halls actually built. A joke could appear to come from an antlered companion, thanks to speech synthesis and carefully written animation code.

Mike Ellis felt that companion belonged on his Mac Plus. In 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. That's quite a result for a joke-telling moose.