The Craft Behind Interactive Media

By 1986, a moose could appear 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 created the Talking Moose at a time when a recognizable face had to be assembled from black-and-white pixels. Few pixels were enough to give this character 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 a moose?

Antlers played a part.

The original Talking Moose appears in pictures as 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. Liking moose himself settled the matter.

Halls wrote the original program 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 the sound being played and then changed the Moose's mouth shape to suit.

None of this altered the speech engine's memory. The Moose was simply watching it. Accessing memory across applications was possible in early Macintosh software, though modern operating systems generally restrict it.

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

Around 1989, the Moose gained color. Halls kept a picture of that version on his wall, printed with an early Macintosh color printer. His account of the color Moose includes scans where the printing dots are 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.

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 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.

Giving a 3D Head Life

A three-dimensional head belonged to the later Windows Moose. Its eyes looked around, and its ears moved. Compared with the original pixels, eyebrows and mouth allowed far more expression.

Playing the same animation clips over and over would have made those movements predictable. The Windows character used procedural animation instead, its motions generated by algorithms.

Halls's account of the animation describes controlled randomness. A movement could end near a target rather than at exactly the same spot each 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. On Windows, Microsoft's Speech API supplied timing information that told the character which mouth shapes to use. The old Macintalk memory-observation technique did not need to be recreated.

Something Useful to Announce

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

A June 2016 update described a working Pushover connection, IFTTT supplying the events for the Moose to announce. One example gave warning 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 simply hear them.

A Face for a Voice

The original Moose appeared in 1986, some forty years before the current enthusiasm for AI assistants. 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.

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

Looking at the early screenshots is still worthwhile. 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.