The Making of Shareware

By 1986, a moose could appear on a Macintosh 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. Few pixels were enough to give this character a personality.

Questions about artificial intelligence tend to follow today's talking computers. 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.

So why a moose?

Antlers played a part.

The original Talking Moose appears in pictures as 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 liked moose as well, and that settled the choice.

The original code was written by Halls in assembly language. Making the lips follow the speech took real ingenuity. The program located Macintalk in memory, as Halls recalls, that being the Macintosh speech engine. It watched information about the sound being played, then adjusted the Moose's mouth shape accordingly.

This didn't change the speech engine's memory. The Moose was observing that memory. Early Macintosh software could reach across applications into memory, in ways modern operating systems generally restrict.

With that access, the character could comment on window and document names in applications users knew well. Information on your own computer was what a seemingly knowledgeable Moose was responding to. Its behavior was programmed, with no language model behind the face.

The color years

Color arrived for the Moose around 1989. On his wall, Halls kept a picture of that version, printed with an early Macintosh color printer. His color Moose account includes scans with the printing dots 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.

Another kind of record came from old users. In a letter published in 2016, Mike Ellis recalled 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 sent to Halls. People still remembered the character well enough to write to its maker, decades after using the software.

Making a 3D Head Seem Alive

The later Windows Moose had a three-dimensional head. Its eyes looked around, and its ears moved. Eyebrows and mouth gave it more expressive scope than the original pixels could manage.

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

The animation, as Halls explains it, uses controlled randomness. A movement could stop near a target rather than at exactly the same spot each time. Its speed varied as well, and so did the pause before the next movement. The result avoided looking mechanical, thanks to smooth acceleration and deceleration.

The lip-sync mechanism changed with the platform. 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 useful to say

Plugins gave the Moose other things to talk about, while jokes remained part of it. To reminders and notifications were added news and weather.

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

You didn't have to keep checking a screen for those messages. Hearing them was enough.

A Voice That Had a Face

The original Moose appeared in 1986, some forty years before the current enthusiasm for AI assistants. What Halls actually built would be missed by calling it an early version of today's conversational AI. Enough to make a joke seem to come from an antlered companion were speech synthesis and carefully written animation code.

Mike Ellis felt that companion belonged on his Mac Plus. It could announce rain or greet someone arriving home in the later Windows project.

The early screenshots still repay a look. It is plainly a face made of pixels, yet a former user remembered a companion. That's quite a result for a joke-telling moose.