Remarks on Interactive Computer Mediated Animation

Thomas A Standish

Harvard University

1970

UAIDE
INTRODUCTION - WHERE MIGHT WE GO FROM HERE?

One of the reasons that computer animation excites me is because I feel it has the potential for becoming an important tool of the intellect. As science has matured, observation and deduction have grown more indirect. Nowadays one seldom uses ones primary senses, such as seeing, hearing or feeling, to make direct observations. Rather, instruments such as microscopes, spectrophotometers, oscilloscopes, bubble chambers and radio-telescopes apprehend phenomena that lie outside the range of human perception and translate them into a time scale and a sensory medium appropriate for human consumption. Theories have become richer and more complex as they attempt to describe symbolically the dynamics of complex systems. In fact, the inherent complexity of systems may be the single most important barrier to advanced scientific understanding in the latter half of this century. This is probably true in the life sciences, in computer science and in the social sciences, and may even be true of many industrial situations as the big northeast power blackout of a few years ago seems to illustrate. We must find ways of dealing with complexity and of rendering the behavior of complex systems intelligible in order that complex systems be made to serve man rather than man becoming the servant of the complex systems he creates. To what degree is man the master and to what degree is he the servant of his transportation systems, economic systems, industrial systems and the ecological system of the entire planet?

It is in helping to render the behavior-of complex systems intelligible that computer assisted animation has a largely unexplored potential. The computer can generate and present many species of visual images in many patterns and variations. But perhaps more important, it can translate sterile data into intuitively appealing pictures, it can change time scales and it can suppress details that impede understanding. Thus, like the oscilloscope, it becomes an instrument which transforms phenomena outside the range of human apprehension, into phenomena inside the range of human comprehension. But unlike the oscilloscope, the computer has a tantalizing potential for dealing with complex systems through its ability to be dynamically selective in what it looks at and to supply elegant translations of data unfit for human consumption into displays that are both palatable and revealing.

To give just one small example, suppose you are a biologist studying the effects of thermal and chemical pollution on a given local environment. You devise a set of 50 differential equations which express the population size of each species in the food chain in terms of the population size of other species in the food chain and in terms of some independent variables for thermal and chemical factors. Now how do you access the behavioral implications of your model under important sample conditions? You can try to do it by hand calculations, which is certainly tedious, and probably error-prone. You can write a computer program that prints reams of numbers for you to stare at, which is better. But if you really want to get a feel for the time dynamics of your model, for the rates of growth and decay, and for critical points at which the system will shift toward new equilibria, I know of no better idea than to animate it. Even a simple animation will do. For example, portray each species as a labelled circle whose area is proportional to the species population size. Drive the size of each circle off the differential equation for the population size of its associated species. Then choose an appropriate time scale, some initial conditions, set the beast in motion, and watch what happens. Your eye will be drawn to the olace where action is happening and unusual or surprising implications of the model will be likely to draw your attention. Now vary the initial conditions and set the system in motion again and watch what happens. If your model is wrong you will be able to find out how it is wrong so that you can tune it. If your model is right and agrees with important sample data, you may even begin to understand ecology.

There are many other situations where watching the behavior of something dynamic is maybe a better way to aid understanding than is reading a static description. Not the least of these is in understanding how computer software works. Why not animate operating systems, assemblers, compilers and loaders to see how they work and to get a feeling for where they are spending their time?

So, to summarize, while computer animation has many well known uses in art, in education, in entertainment and elsewhere, one of the most exciting largely unexplored applications of it is as a tool to help render intelligible the behavior of complex systems and the behavioral implications of complex descriptions.

I now want to explore some of the purely technical computing issues connected with animation.

THE RELATION BETWEEN ANIMATION AND CONVERSATION

Animation involves the use of the dynamics of picture change through time to express behavior. Thus, in computer-assisted animation one is always recomputing pictures. If the animation is non-interactive and is played back off-line from a recording medium such as a film or a video tape, then the response time of the computer in generating new pictures is not an issue, especially since the rates of generation and playback can be different. But if the animation is either interactive or is non-interactive but still generated on-line. Then the computer should generate picture updates at a rate that satisfies the human appetite for information. Thus the response time of the computer in supplying updates becomes an issue. Few batch or remote job entry systems have turnaround times fast enough to supply picture updates for the interactive consumption. Thus, ones attention turns to the systems that provide fast response times, these being single user systems or time shared systems with conversational or interactive facilities. The essence of these systems is simply this: Response time is proportional to the demand for computation and, in particular, there is rapid response to trivial requests.

Hence, if you want to couple your graphic animation system to some background programming language L, in order to do the computations relevant to animating some particular subject area, a rule for choosing L could be: If you are animating offline L can be any language, but if you are animating on-line L must be such that programs written in it can interact with your animation graphics program and can provide rapid enough response time to satisfy your demand for picture update rates.

One has to question closely the need for interactive computer assisted animation. Must animation be conversational? Obviously, in the movies it isn't, and movies are good things. I feel that there are two important cases in which computer animation should be conversational.

The first is that conversational systems which provide rapid response to trivial requests permit one to evolve and modify a program at a very rapid pace. Many of the changes you make in writing and debugging a program are trivial. One should not have to wait four hours and be charged for recompiling ones program just to change one semicolon. For example, if you make a mistake in animating a man walking, and his feet slide over the background because he walks at the wrong rate, maybe all you need to change is one rate parameter. Conversational systems permit you to observe the misbehavior, to request a trivial change and have it rapidly satisfied, and immediately to set the program in motion again to check whether the new behavior is correct. One should not have to go through the whole cycle of updating a source file, compiling, loading, initializing and then setting up the proper routine circumstances in order to sense the behavioral implications of trivial change. Conversational programming languages are especially valuable in this context. They should be chosen for convenient symbiotic relations with an interactive graphic package.

The second case in which interactive computer animation systems are important is to satisfy applications where man must be in the loop to supply decisions about how the animation is to proceed. For example, in using animation as a tool to understand the workings of a complex dynamic system - man must be selective in deciding what to look at in the fire-hose of information and detail that the computer is capable of generating. That is man must set the time scale, the focus and the level of detail. Since man has changing interests that the machine can't predict, he must be in the loop to decide what to look at, to compress the uninteresting, to expand the interesting and to jump in and out of the hierarchy of detail depending on whether he is excited or bored. Conversational graphics systems and conversational programming languages are structured to permit just this sort of thing. They make special provision for writing programs that converse with users, that is, programs that request that information be supplied by the user at certain points, and which use this information to determine their subsequent course of action. Thus, if interaction is important you should choose languages that permit one to express interactive algorithms with ease. The conversational programming languages thus become natural candidates for marriage with interactive computer animation packages.

THE RELATION BETWEEN ANIMATION AND EXTENSIBLE LANGUAGES

Extensible languages directly concern the representational power of the medium in which animation-related computations get done. The principal contribution of extensible languages at the moment is in the realm of data definitions, but projected developments indicate a contribution in the area of control structures as well. The prototype extensible languages are in the cycle of construction and experimentation so it will be a while before they are available as commercial products. Here, as elsewhere, the lead time from conception to smooth application can be long. For example, transistors took ten years, and APL, which is a language of great beauty, took seven years.

Extensible languages help us in being flexible with respect to data, and data flexibility is important because it is related to the capacity of a representation to sustain variation.

In animation, we have to specify which parts of a picture are variable and how they are to vary. Do they change position, color, texture, size, orientation, shape or what? Do they move, and if so how continuously or discretely, and at what rate? So the decision about what shall be variable and how it shall vary in a picture implies a need for a data structure flexible enough to represent the set of possible variations. In reference to extensible languages, what we are really speaking about is a difference in scale and convenience in the effort required to set up new data structures. i.e. does it take six months of arduous programming in machine language to get the data representations you want, or does it take a few data definitions and three days of polishing to get going? And what happens if you want to change your mind. These are the issues that extensible languages address, and my own experience with a prototype language we have running in our laboratory indicates that a pleasant improvement in programming convenience is in store for those who graduate to extensible languages, particularly the conversational ones.

For example, six years ago three colleagues and I spent eight man years implementing a compiler for Formula Algol. This year one of my students was able to do all of the formula manipulation we did in Formula Algol one week in a prototype conversational extensible language he implemented as a student project in six months.

So if you are going to build a non-interactive animation package consider marrying it to either an extensible language or a low level list processing language like Knowlton's L6, and if you are going to build an interactive animation package, consider marrying it to a conversational extensible language, because having representational flexibility pays off.

ANIMATION - RESOURCE SHARING AND-COMPUTER NETWORKS

Among other possibilities scan conversation, video discs and off-line refreshing give us a technique for flicker-free sharing of a computer resource that generates different pictures for each of many users. The question then boils down to a matter of dynamics - i.e. the rate at which the picture or its parts is being recomputed. This depends on the response-time of the computer for various amounts of computation. Additionally,, in the case or networking, band width and operating system service times may enter in. One should probably not count on getting updates fast enough to fashion continuous motion for sustained time intervals, but discrete picture changes every so often appear quite feasible. It is still possible to have an animation style without continuous motion of images, but the motion-related sensual qualities of the medium probably have to be sacrificed.

More Computer Animation Papers 1964-1976