The Road to Coding

By 1986, a moose could appear on a Macintosh screen. He talked aloud and told jokes, with his mouth moving along with the words.

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. This one gained a personality from very few pixels.

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

The antlers helped.

Photographs of the original Talking Moose present a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most of the work. As Halls recalls, antlers were easy to recognize at a small size. Liking moose himself settled the matter.

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

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

That same access let the character remark 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. Behind the face was programmed behavior, not a language model.

Into Color

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. His account of the color Moose includes scans where the printing dots are still visible.

Here is a small piece of computing history to inspect: the character as it looked then, kept on paper as well as in software.

Former users supplied a further 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 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

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.

Repeating the same animation clips would have made those movements predictable. Instead, the Windows character turned to procedural animation, with algorithms generating its motions.

Halls's account 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 kept it from appearing mechanical.

The lip-sync mechanism changed with the platform. On Windows, the character took timing information from Microsoft's Speech API to choose its mouth shapes. There was no need to recreate the old Macintalk memory-observation technique.

Something Worth Saying

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 set out a working Pushover connection, in which IFTTT supplied events for the Moose to announce. Approaching rain was the subject of one example. A phone entering a home geofence triggered a spoken "Welcome home" on the user's PC in another example.

You did not have to keep checking a screen for those messages. They could be heard.

A voice with a face

Forty years separate the original Moose's 1986 appearance from the current 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 were enough to make a joke appear to come from an antlered companion.

Mike Ellis felt that companion 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. For a joke-telling moose, that is quite a result.