The Birth of Indie Film

By 1986, a moose could appear on a Macintosh screen. He spoke aloud, moved his mouth to match 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.

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, though?

The antlers helped.

Images 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. Halls remembers that antlers were easy to recognize even when small. He also happened to like moose, so the choice was settled.

Halls wrote the original code in assembly language. Making the lips follow the speech took real ingenuity. As he recalls it, the program located Macintalk, the Macintosh speech engine, in memory. It watched information about the sound being played, then adjusted the Moose's mouth shape accordingly.

This left the speech engine's memory untouched. It was the Moose that did the watching. Early Macintosh software could reach across applications into memory, in ways modern operating systems generally restrict.

That same access let the character remark on window and document names in familiar applications. When the Moose seemed to know something about your work, it was responding to information on your own computer. No language model stood behind the face; its behavior was programmed.

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 color Moose account includes scans with the printing dots still visible.

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

Old users supplied 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."

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

Making a 3D head feel alive

The later Windows Moose had a three-dimensional head. Its ears moved and its eyes looked around. More expression came from its eyebrows and mouth 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 stopped the result from looking mechanical.

A different platform meant a different lip-sync mechanism. On Windows, Microsoft's Speech API supplied timing information that told the character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique.

Something Worth Saying

The Moose kept its jokes, but plugins added other things for it to talk about. To reminders and notifications were added news and weather.

A June 2016 update described a working Pushover connection, IFTTT supplying the events for the Moose to announce. Approaching rain was the subject of one example. Another saw a phone entering a home geofence trigger a spoken "Welcome home" on the user's PC.

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

A Voice with a Face

Forty years stand between the original Moose's 1986 appearance and today's enthusiasm for AI assistants. Describing it as 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.

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

The early screenshots still repay a look. 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.