Animator: an on-line two-dimensional film animation system

Peggy Anne Talbot, John W Carr III, Richard R Coulter , Rosa C Hwang, The Moore School of Electrical Engineering, University of Pennsylvania, Philadelphia

April 1971

CACM

Abstract

Animator is a computer animation system which was designed to overcome some of the inherent didadvantages associated with conventional computer animation techniques. The DEC-338 serves as an input terminal for movie making, allowing the trial and error design of picture sequences in a conversational mode. During all stages of the movie specification, a record of the user's actions on the system input elements (lightpen, pushbuttons, and teletype) is maintained. At the user's request, this record is sent to the IBM 360/75 where the S-D 4020 instructions necessary to produce the same sequence of pictures can be generated. It is anticipated that one of the primary contributions of Animator will be the provision of a facility which will allow any professor to produce his own expository film strips.

Research for this paper was supported by the National Science Foundation grant GY-3262.

Introduction

Although there are certain inherent advantages to current computer animation techniques [1], there are still significant weaknesses which restrict their everyday application This paper reports on a computer animation system that eliminates two of the most serious deficiencies (1) by providing feedback from the system to the human animator and (2) by removing many of the conventional programming language constraints.

In most conventional computer animation systems, the movie maker is faced with a critical lack of feedback during the process of movie specification. The reason for this lack of feedback is that the movie definition must always be translated into an intermediate or final form before any information can be procured as to exactly what has been prescribed. As a result, significant delays can easily be introduced between the time of movie specification and the time when feedback information can be obtained, Not only do these delays slow down the process of film generation, but they decrease the effectiveness of the programmer.

Often the movie maker is not fortunate enough to have complete computer animation facilities (usually a digital computer and a microfilm recorder) available to him. Typically, the microfilm recorder that he must use is located at a site different from that of the digital computer. Where this is true, the movie making process can be slowed down considerably. The magnetic tape containing the machine instructions for the microfilm recorder is generated on location but then must be sent away for processing to the site of the film recorder. Since debugging runs are usually necessary before satisfactory results are achieved, this process has to be repeated several times for each scene, and long delays develop.

To overcome this problem, many installations which do not have a microfilm recorder provide programs which allow the movie maker to produce graphic output on a mechanical plotter or line printer using the same commands which produce microfilm output [1]. Debugging runs are always made using the programs which can produce graphical output on location and, as a result, only the production runs need be sent away for processing.

However, disregarding the unavailability of complete computer animation facilities, other time delays can occur. In many systems, the programs for movie specification are batch processed, and turnaround time can introduce feedback delays which can range from several hours to several days. Even systems which are implemented on time-shared computers and which operate in a conversational mode still must go through the intermediate step of producing magnetic tapes that must then be remounted and processed on a film recorder. It is true that in at least one system the user can choose to have his images directly displayed on a CRT [2]. However, this is not the mode of operation for movie production, as the user is not able to get this feedback and still produce instructions for a microfilm recorder.

What is desired is a system which allows the movie maker to view the results of his work at any time during the process of movie construction.

Another disadvantage is that the movie maker has always been restricted to the use of a one-dimensional, formalized programming language, either as a subset of the FORTRAN programming language or a language specialized in nature such as BEFLIX [3, 4]. As a result, someone unfamiliar with computer programming, or at least some form of formal reasoning, has to go through a period of indoctrination before he can successfully generate movies by means of computer. For although the recent movie specification languages tend to be very specialized, the user must still conform to sometimes undesirable programming constraints. For example, a professional animator would be forced to describe his figures in terms of sets of coordinates, which is an approach quite different from the one to which he is accustomed, that of sketching his figures on a piece of paper.

It would be advantageous to allow the user to construct his pictures in a way analogous to those procedures normally employed by an animator or artist and to completely eliminate the necessity of any familiarity with computers or computer programming techniques.

One means of solving these problems is to develop an on-line, interactive computer animation system capable of sustaining a pictorial display, which could be used in the generation of a broad class of animated films. Using an input device such as a lightpen in conjunction with pushbuttons, toggle switches, teletype, etc., the movie maker could now construct or draw his figures on the face of a CRT. Moreover, now the user could have continuous graphical interaction with the display and could create and modify his images in a trial and error fashion with immediate feedback. One previous system partially fulfilling these requirements, the GENESYS system, has already been developed at the MIT Lincoln Laboratory [5, 6].

We will describe in this paper the Animator system, another computerized film animation system currently being developed at the University of Pennsylvania, which provides a solution to these problems quite different from that offered by GENESYS, in an attempt to further the development of a natural and versatile method for computer animation. It should also be pointed out that the work presented here represents one of the first attempts to catalogue and study methods of motion picture descriptions from both a conceptual and an implementation point of view.

Hardware Configuration

The hardware configuration on which Animator is implemented consists of a DEC-338 with a Type DF32 Disk File, an ASR 33 Teletype, a Type TC01 DECtape Control, and one Type TU55 Dectape Transport interfaced with an IBM 360/75, as shown in Figure 1. This interfacing between the two computers is accomplished through a leased full duplex phone line terminating in Western Electric 201B Data Sets. The data sets are interfaced to the DEC-338 through the DEC DP01A Interface and to the IBM 360/75 through the IBM 2701 Data Adapter Unit. Because no microfilm recorder is available at the University of Pennsylvania, the magnetic tapes that are produced are sent to the Polytechnic Institute of Brooklyn for processing on their Stromberg Datagraphix 4020.

DEC-338 DF32 MINI-DISK TC01 DEC-TAPE TELETYPE LIGHT BUTTONS CRT LIGHT PEN USER DEC 637 DATAPHONE INTERFACE 201 B MODEM IBM 2701 DATA ADAPTER IBM 360/75 AND ASSOCIATED PERIPHERAL DEVICES MAGNETIC TAPE CALCOMP PLOTTER OUTPUT ON-LINE PRINTER OUTPUT SD 4020 FILM
Figure 1 - The hardware configuration used by Animator

System Description

The DEC-338 serves as the input terminal for movie making, allowing the trial and error design of picture sequences in a conversational mode. During all stages of the movie specification, a record of the user's actions on the system input elements, e.g. the lightpen, pushbuttons, and teletype, is maintained so that it can be sent to the IBM 360/75 where the S-D 4020 instructions necessary to produce the same sequence of pictures can be generated.

The actual implementation of Animator consists of three programs. One of these programs permits the use of the DEC-338 as an input terminal for movie specification and is the only program in the system with which the user interacts. Another program transmits the record of the user's actions on the system input elements from the 338 to the IBM 360. A third program, implemented entirely on the 360, takes this record, and using the SCORS package [7], produces the specialized S-D 4020 instructions necessary to generate the movie that the user has prescribed.

The role of the 338 program is (1) to monitor the user's actions on the input elements associated with the 338, (2) to display the user's definitions on the 338 scope, sometimes automatically and sometimes upon request, and finally (3) to maintain a record of the user's input queue. For this latter purpose, a language has been developed, known as the transmission language, into which all of the user's actions are translated immediately upon being recognized by the system. The file of the user's actions is thus compiled in the transmission language and is referred to as the transmission file. The function of the 360 program is then to translate the transmission file into S-D 4020 instructions.

In many cases, the programs implemented on the 338 and the 360 are called upon to perform similar computations. For example, both must have routines which, given a center and a radius, will generate the machine code necessary to display a circle; in one case, the code produced is for the DEC-338 and, in the other, the code produced is for the S-D 4020. Because the DEC-338 is a much smaller and a much less powerful computer than the IBM 360/75, and because the images displayed on the screen of the 338 are used only to give the user feedback of the picture sequences he is defining, the DC-338 routines tend to be less sophisticated and precise than those of the 360 and often yield only approximations to the images that are produced by the S-D 4020. Even though circles are approximated on both the 338 and the 360 by regular polygons, those generated for display on the 338 generally have fewer sides. In addition, scenes are sometimes recreated on the 338 in less than real time (at a rate of less than 24 frames per second).

Constituents of a Movie

A motion picture in the Animator system is composed of four classes of constituents: pictures, motions, scenes, and movie segments. The user specifies his movie by constructing appropriate definitions of these elements.

A picture is a relocatable, static, graphical representation which can be composed both of elements from a set of picture primitives which the system provides for the user and of previously defined pictures.

It has been suggested to the authors that the choice of the word picture was an unfortunate one, as it could tend to confuse or mislead the reader, and that a more appropriate choice would have been object or figure.

At any time during the process of movie specification, new pictures may be defined and additions and/or changes made to any already existing picture definitions. During the entire process of picture definition or redefinition, the user gets immediate feedback on the 338 screen of the structures which he is defining.

A motion is an operator which can be applied to any picture and can be defined in terms of a set of motion primitives provided by the system and/or previously defined motions. A motion may be defined as either a parallel or a sequential motion. A parallel motion is one in which more than one motion primitive or defined motion is applied to a picture at a given moment of time. For example, a parallel motion defined in terms of rotate and translate, when applied to a picture, would cause the picture to simultaneously spin and move across the screen. A sequential motion is one which prescribes not only actions but the duration of actions which are to be applied to a picture. A sequential motion describes the motion primitives or defined motions that are to be applied in a sequential fashion to the picture. A sequential motion defined in terms of rotate and translate, when applied to a picture, would cause the picture to spin for a certain number of frames and then move across the screen for a certain number of frames. At any time during the process of movie specification, new motions may be defined and changes made to already existing motion definitions. Feedback of the defined motion to the user can be obtained by observing the motion operating on a standard figure. A scene represents a portion of a movie and consists of one or more pictures and the motions to be associated with them in the given scene. A scene is composed of at least one picture-motion pair and/or at least one previously defined scene. Generally speaking, a scene contains all pictures and actions that are to occur concurrently in the movie during a defined time interval. The user can request that a certain scene be recreated on the screen of the 338 at any time after that scene has been defined and, in this manner, obtain feedback from the semantics of his definition.

A movie segment is composed of at least one scene and/or one previously defined movie segment and describes how the scenes, which the user has defined, are to be put together in sequential order to form a move segment. As with a scene, the user can command that a movie segment be displayed on the 338 screen. Figure 2 illustrates how pictures, motions, scenes, and movie segments are combined to create a movie.

MOVIE SEGMENT SCENE SCENE MOVIE SEGMENT (PICTURE,MOTION) (PICTURE,MOTION) SCENE PICTURE MOTION PICTURE PRIMITIVE PICTURE PRIMITIVE PICTURE MOTION PRIMITIVE MOTION PRIMITIVE MOTION
Figure 2 - Structural Representation of a Movie

The order in which the movie maker constructs his definitions is restricted only by the requirement that any constituent used in a definition must have been previously defined. Once the user has built up definitions of the picture sequences he desires, he can specify which scenes and/or segments he wishes to produce. At this point, he can request that the record of his finalized input queue be sent to the IBM 360 for production.

Modes of Operation

The user of Animator operates in six different modes of movie specification: (1) the picture definition mode, (2) the motion definition mode, (3) the scene definition mode, (4) the movie segment definition mode, (5) the production mode, and (6) the transmission mode (see Figure 3). When the system is started, or at any other time of the user's choosing, the main cycle of the program is entered. In this routine, the user is presented with a set of light buttons with which he can select the mode of specification in which he desires to operate. The user can reenter the main cycle to change from one specification mode to another.

PICTURE DEFINITION MODE MOTION DEFINITION MODE SCENE DEFINITION MODE MOVIE SEGMENT DEFINITION MODE PRODUCTION MODE TRANSMISSION MODE MAIN CYCLE START
Figure 3 - 338 program structure. the user may activate any of the satellite programs at will. However, for efficient operation, the user;s actions should form a meaningful sequence, e.g. a scene should not be defined before its component pictures and motions.

Picture definition mode. The picture definition mode is used for the construction of static graphical objects. A picture is a relocatable closed figure whose absolute position on the screen is bound only at the time of its use in a scene definition. A picture definition consists of a name associated with a sequence of picture primitives and/or previously defined pictures. Recursive picture definitions are not allowed.

The syntax of picture definitions can be described formally in Backus Naur form in the following manner:

<picture>           ::= <name> <picture description> 
<picture description> ::= <picture primitive> | <picture> | <picture description> <picture description> 
<picture primitive> ::= CLEAR SCREEN | FIX INTENSIFIED HORIZONTAL OR VERTICAL LINE | 
     FIX UNINTENSIFIED HORIZONTAL OR VERTICAL LINE | FIX INTENSIFIED LINE | 
     FIX UNINTENSIFIED LINE | DRAW FOLLOWER LINE | CIRCLE | ENTER COORDINATES | TEXT |
     ERASE LINE | ERASE LINES | REMOVE SUBPICTURE | POINT | SPECIFY LENGTH | DUPLICATE LENGTH 
<name>              ::= <character>6 | <character>5  | <character>4  | 
     <character>3  | <character>2  | <character> 
<character>         ::= A|B|C|D|E|F|G|H||J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|y|Z| 
                       0|1|2|3|4|5|6|7|8|9|.|'|/|+|-|*|(|)

The semantics of the picture primitives are explained briefly in Table I.

PrimitiveSemantics
CLEAR SCREENcompletely erase the current picture definition
FIX INTENSIFIED HORIZONTAL OR VERTICAL LINE establish an intensified horizontal or vertical line whose length and orientation are determined by the current rubber band vector
FIX UNINTENSIFIED HORIZONTAL OR VERTICAL LINE establish an unintensified horizontal or vertical line whose length and orientation are determined by the current rubber band vector
FIX INTENSIFIED LINE establish an intensified line determined by the current rubber band vector
FIX UNINTENSIFIED LINEestablish an unintensified line determined by the current rubber band vector
DRAW FOLLOWER LINE approximate the path of the tracking square with short line segments
CIRCLE add a circle with specified center and radius
ENTER COORDINATES add lines and/or points specified by coordinates entered through the teletype
TEXT add text at specified location (3 size options available)
ERASE LINE erase line drawn at the current level of definition
ERASE LINES erase group of lines which have been consecutively drawn at the current level of definition
REMOVE SUBPICTURE remove an occurrence of a subpicture, circle, or text character
POINT establish a point at the center of the tracking square
SPECIFY LENGTH establish an intensified line of a specified length whose orientation is determined by the current rubber band vector
DUPLICATE LENGTH establish an intensified line of the same length as another line in the definition with an orientation determined by the current rubber band vector
Table 1 - Picture Primitive Semantics

Motion definition mode. The motion definition mode is used for the construction of the action operators which are applied to pictures. To allow the movie maker the maximum flexibility in constructing more complex motions, motion definitions can be built up in both a parallel and a sequential fashion. In other words, the user can specify that operators be applied either simultaneously or sequentially to an object. The number of frames during which an operator is applied to a picture is bound only at the time of the operator's use in a sequential motion definition. Operators used in parallel motion definitions do not have any prescribed time durations.

A parallel motion definition consists of a name associated with a sequence of motion primitives and/or previously defined parallel motions. A sequential motion definition consists of a name associated with a sequence of motion primitives and/or previously defined parallel motions each associated with a frame count, and/or previously defined sequential motions. Recursive motion definitions are not permitted.

Because parallel motions do not have associated durations, only sequential motions can actually be applied to a picture in a scene definition. Parallel motions, however, can be used in the definitions of other parallel and sequential motions. Since all sequential motions do have associated durations, they cannot be used in the definitions of parallel motions.

The syntax of motion definitions can be described formally in Backus Naur Form in the following manner:

<parallel motion>    ::= <name> <parallel motion description> | <motion primitive> 
<sequential motion>  ::= <name> <sequential motion description> 
<parallel motion description> ::= <motion primitive> | <parallel motion> |
                         <parallel motion description> <parallel motion description>
<sequential motion description> ::= <parallel motion> <frame count> | <sequential motion> | 
                         <sequential motion description> <sequential motion description> 
<motion primitive>   ::= ERASE DEFINITION | HOLD | TRANSLATE | ROTATE ABSOLUTE | 
                         ROTATE RELATIVE | ZOOM ABSOLUTE | ZOOM RELATIVE  | FILL | BLINK 
<frame count> ::= a decimal number between 1 and 2000 
<(name>       ::=  <character>6 | <character>5 | <character>4 |
               <character>3 | <character>2 | <character>
<character>         ::= A|B|C|D|E|F|G|H||J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|y|Z| 
                       0|1|2|3|4|5|6|7|8|9|.|'|/|+|-|*|(|)
                       

The semantics of the motion primitives are presented in Table II.

PrimitiveSemantics
ERASE DEFINITIONcompletely erase the current motion defnition
HOLD identity operator
TRANSLATE move in a linear path prescribed relative to the initial position of the object
ROTATE ABSOLUTE rotate about an absolute point
ROTATE RELATIVE rotate about a point specified relative to the defined center of the object
ZOOM ABSOLUTE scale about an absolute point
ZOOM RELATIVE scale about a point specified relative to the defined center of the object
FILL move in a linear path prescribed relative to the initial position of the object filling in the area through which it passes
BLINK blink at a specified rate
Table II - Motion Pictures Semantics

Scene definition mode. The scene definition mode is used to specify the pictures which occur concurrently during a portion of a movie, the absolute starting positions of these pictures, and the sequential motions to be associated with each. The duration of a scene is governed by the frame count associated with the shortest sequential motion used in the scene definition. A scene definition consists of a name associated with a sequence of basic scene descriptions and/or existing scene definitions. A basic scene description is itself a sequence consisting of a pair of coordinates, a picture and a sequential motion (called a picture-motion pair). Recursive scene definitions are not allowed.

The syntax of scene definitions can be described as follows:

<scene>           ::= <name> <scene description> 
<scene description>       ::= <basic scene description> | <scene> | 
      | <scene description> <scene description> 
<basic scene description> ::= <X>   <Y>  <picture> <sequential motion>
<X> ::= a decimal number between 0 and 1023
<Y> ::= <X>
<name> ::= <character>6 | <character>5  | <character>4  | 
     <character>3  | <character>2  | <character> 
<character>         ::= A|B|C|D|E|F|G|H||J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|y|Z| 
                       0|1|2|3|4|5|6|7|8|9|.|'|/|+|-|*|(|)

Movie segment definition mode. The movie segment definition mode is used to describe a movie or portion of a movie by specifying the temporal relationships among the scenes which the user has defined. A movie segment definition consists of a name associated with a sequence of scenes and/or existing movie segment definitions. Recursive movie segment definitions are not permitted.

The following is a formal description of the syntax of movie segment definitions:

<movie segment> ::= <name> <movie segment description>
<movie segment description> ::= <scene> | <movie segment> |
   <movie segment description> <movie segment description>
<name> ::= <character>6 | <character>5  | <character>4  | 
     <character>3  | <character>2  | <character> 
<character>         ::= A|B|C|D|E|F|G|H||J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|y|Z| 
                       0|1|2|3|4|5|6|7|8|9|.|'|/|+|-|*|(|)

Production mode. The production mode is used to specify the names of the scenes and/or movie segments that the user desires to have produced by the 360.

Transmission mode. The transmission mode is used to transmit the user's relevant actions on the system input elements (those actions pertaining to the scenes and/or movie segments which the user has requested to be produced) to the IBM 360/75. Although the Animator system was designed primarily for the production of 16 and 35 mm film or hardcopy output on the S-D 4020, for debugging purposes, the user can also produce CalComp 565 plots or obtain simulated graphic output on the line printer.

A simple example

To illustrate the use of Animator, the following man-machine dialogue is presented which traces the production of the very simple picture sequence shown in Figure 4. For a more detailed description of the specification procedure for the same sequence, the reader is referred to Reference [8].

1 2 3 4 5 6
Figure 4 - A very simple sequence of six frames illustrating the use of Animator
  1. USER (U): types the name Animator.
  2. ANIMATOR (A): mode specification light buttons appear on the 338 screen.
  3. U: selects the 'PICTURE DEFINITION' button with the lightpen.
  4. A: picture definition mode semantics are attached to pushbuttons.
  5. U: hits appropriate pushbutton, initiating a new picture definition; types the name 'WAVES', assigning this name to the definition; and using a combination of the pushbuttons and lightpen, sketches a sequence of lines representing waves on the face of the CRT.
  6. U: initiates a new picture definition; types the name 'BOAT'; and sketches a sequence of lines representing a boat on the CRT.
  7. U: hits appropriate pushbutton to return to the main cycle.
  8. A: mode specification light buttons appear on the screen.
  9. U: selects the 'MOTION DEFINITION' button with the lightpen.
  10. A: motion definition mode semantics are attached to pushbuttons.
  11. U: hits appropriate pushbutton, initiating a parallel motion definition; types the name 'ROCK1', assigning this name to the definition; and using a combination of the pushbuttons, teletype, and lightpen, constructs the following definition:
    ROCK1 = TRANSLATE with 
    ΔX/frame = 88 and
    ΔY/frame = 0 and 
    ROTATE RELATIVE with 
    ΔX = 0 and
    ΔY = 0 and
    Δθ/frame = -25°. 
    
  12. U: initiates a new parallel motion definition; types the name 'ROCK2'; and constructs the following definition:
    ROCK2 = TRANSLATE with 
    ΔX/frame = 128 and
    ΔY/frame = -64 and 
    ROTATE RELATIVE with 
    ΔX = 0 and
    ΔY = 0 and
    Δθ/frame = 50°. 
    
  13. U: initiates a new parallel motion definition; types the name 'ROCK3'; and constructs the following definition:
    ROCK3 = TRANSLATE with 
    ΔX/frame = 128 and 
    ΔY/frame = 64 and 
    ROTATE RELATIVE with 
    ΔX = 0 and
    ΔY = 0 and
    Δθ/frame = -50°. 
    
  14. U: hits appropriate pushbutton, initiating a sequential motion definition; types the name 'STILL'; and constructs the following definition:
    STILL = HOLD with 
    frame count = 6.
    
  15. U: initiates a new sequential motion definition; types the name 'ROCK23'; and constructs the following definition:
    ROCK23 = ROCK2 with 
    frame count = 1 
    followed by ROCK3 with 
    frame count = 1.
    
  16. U: initiates a new sequential motion definition; types the name 'ROCK'; and constructs the following definition:
    ROCK = ROCK1 
    with frame count 1 
    followed by ROCK23 
    followed by ROCK23 
    followed by ROCK2 
    with frame count = 1. 
    
  17. U: hits appropriate pushbutton to return to the main cycle.
  18. A: mode specification light buttons appear on the 338 screen.
  19. U: selects the 'SCENE DEFINITION' button with the lightpen.
  20. A: scene definition mode semantics are attached to pushbuttons.
  21. U: hits appropriate pushbutton, initiating a new scene definition; types the name 'SCENE', assigning this name to the definition; and using the pushbuttons, teletype, and lightpen, constructs the definition of SCENE in terms of the picture WAVES centered at the point (512,544) with associated motion STILL and the picture BOAT centered at the point (0,244) with associated motion ROCK.
  22. U: hits appropriate pushbutton to return to the main cycle.
  23. A: mode specification light button appear on the 338 screen.
  24. U: selects the 'PRODUCTION MODE' button with the lightpen.
  25. A: production mode semantics are attached to pushbuttons.
  26. U: using pushbuttons and teletype, indicates that the scene SCENE is to be produced.
  27. U: hits appropriate pushbutton to return to the main cycle.
  28. A: mode specification light buttons appear on the 338 screen.
  29. U: selects the 'TRANSMISSION MODE' button with the lightpen.
  30. A: transmission mode semantics are attached to pushbuttons, and output light buttons appear on the screen.
  31. U: selects the 'CalComp' button with the lightpen and hits appropriate pushbutton to initiate transmission to the 360.

Discussion

Implications for Computer Graphics. Animator is basically an interactive computer graphics system and as such provides the usual system software requirements: data base, telecommunication routines, man-machine interfacing routines, etc. The division of labor or task sharing is one aspect of interactive computer graphics systems which is handled particularly well by Animator. Although the 338 plays the role of the satellite computer in the system organization, it very nearly functions as a stand alone computer. The 338 handles not only the task of movie specification but also the task of movie monitoring. The 360/75 is utilized only when the user requests production, thus minimizing the overhead on the central computer.

Implications for Computer Animation. Animator was motivated by an attempt to overcome the disadvantages associated with current computer animation techniques. The authors believe this attempt has met with much success. Animator permits the interleaving of movie definition and monitoring, allowing the movie maker to view the results of his work at any time during the process of movie construction. Moreover, the user of Animator is no longer restricted to a conventional onedimensional programming language. Thus even an amateur, with neither the skills of the computer programmer nor the skills of the professional animator, could produce a film using this system.

The one apparent weakness of Animator is its limited applications. The primitives provided by the system allow the description of only two-dimensional data and are by no means universal in scope (additional primitives will be proposed). However, it is believed that this system can easily produce many two-dimensional animated cartoons and educational films. It is anticipated that one principal use of this system will be to allow a professor or teacher to produce a film strip in a relatively short period of time (perhaps an hour or two) to illustrate a concept which he desires to present to his class.

Additions and Extensions

As a result of the experience that has been gained in the study and use of on-line, interactive computer animation systems, there are some desirable additions to Animator that are recommended at this time which would markedly extend the power of this system.

Primitive (picture)Semantics
GRAPHadd a graph of an analytic expression at a specified location
Primitive (motion)Semantics
BLANKeliminate a picture from a scene for a specified time interval
DRAWincrementally draw a picture on the screen in a specified time interval
COMPUTE PATHmove in a path determined by a mathematical equation prescribed by the user
SKETCH PATHmove in a path sketched by the user (the user could specify the amount of time that a picture is to take in traversing the designated path by entering a frame count, or alternatively, perhaps the user could specify and even vary the speed of the picture by sketching the path in real time)
Table III - Proposed Additional Primitives
  1. Additional picture and motion primitives are suggested. These primitives and their semantics are presented in Table III.
  2. In the motion, scene, and movie segment definition modes, it would be useful to be able to instruct the system to iterate; in other words, to be able to use a statement similar to the ALGOL for statement inside motion, scene, and movie segment definitions. For example, such a statement would be useful to specify repeated stop and go action in a sequential motion defnition.
  3. An obvious extension of the current system would be to close the loop and allow the DEC-338 to receive direct feedback from the IBM 360. In this manner, the user would be able to circumvent the approximations inherent in the local computation algorithms.

The authors believe that it would be easily possible to implement the above additions to Animator on the hardware that is available at the University of Pennsylvania, and, in the case of (3), such work is now underway.

However, there are two more major problems that the design of the Animator system completely overlooks. The first of these is the extension of the current two-dimensional system to its three-dimensional counterpart. Such a modification would most likely double the necessary storage capacity of the system, and additional processing steps would be required to reduce the threedimensional data to a two-dimensional form suitable for display on the DEC-338. Moreover, a natural way to input three-dimensional data would have to be found.

The second problem which was not included in the design of the Animator system is the mechanization of an interpolation procedure. Interpolation is a technique usually employed in conventional animation in which the principal animator actually draws only certain key frames of a film, while assistant animators later fill in the intermediate frames using the critical frames as guidelines. It would be highly desirable to be able to use computers to introduce the interpolation procedure through computation. Miura, Iwata, and Tsuda suggest the use of hybrid curve generation techniques as an approach to this problem [9].

Summary

Animator is an on-line, interactive film animation system which possesses the following features:

  1. The use of a CRT display system as an input terminal for movie production allowing picture construction, modification, and manipulation.
  2. The ability to store, retrieve, and revise cinematographic information during any stage of movie specification.
  3. Definitional capabilities for all levels of specifcation in which:
    1. Static figures can be defined in terms of certain primitives and previously defined figures.
    2. Motions can be defined in terms of certain primitives and previously defined motions.
    3. Picture sequences can be defined in terms of figures and motions and previously defined picture sequences.

Although Animator overcomes some of the disadvantages associated with conventional computer animation techniques, it is not a universal system. It is a two-dimensional system intended primarily for the production of certain types of cartoons and expository films. In particular, it is envisioned that one important use of this system will be the provision of classroom visual aids.

References

1. Weiner, D, D., and Anderson, S. E. A computer animation movie language for educational motion pictures. Proc. AFIPS 1968 FJCC Vol. 33, Pt 2

2. Nolan, J., and Yarbrough, L. An on-line computer drawing and animation system. Proc. IFIP 1968

3. Knowlton, K. C. A computer technique for producing animated movies. SJCC Vol. 25, 1964

4. Knowlton, K. C. Computer-produced movies. Science 150 (Nov. 1965)

5. Baecker, R. M. Picture driven animation. Proc. AFIPS 1969 SJCC Vol. 34

6. Baecker, R. M. Interactive computer-mediated animation. Ph.D. Diss., Dep. of Electrical Engineering, MIT (Mar. 1969).

7. Programmers' Reference Manual, S-C 4020 Computer Recorder.

8. Talbot, P. A. Animator - system for using the DEC -338 as an input terminal for movie making. Master's Thesis, Moore School of Electrical Engineering, U. of Pennsylvania, Aug. 1969.

9. Miura, T., Iwata, J., and Tsuda, J. An application of hybrid curve generation cartoon animation by electronic computers. 1967 SJCC, Vol. 30

10. Deily, D. New principles for producing computer animated motion pictures. Ph.D. Diss., Moore School of Electrical Engineering, U. of Pennsylvania, Dec. 1968.

11. Cotton, I W, Greatrex Jnr, F S, Data Structures and techniques for remote computer graphics. FJCC 1968