UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Towards a new animation technology Barenholtz, Jerome 1979

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-UBC_1979_A6_7 B37.pdf [ 8.14MB ]
Metadata
JSON: 831-1.0051799.json
JSON-LD: 831-1.0051799-ld.json
RDF/XML (Pretty): 831-1.0051799-rdf.xml
RDF/JSON: 831-1.0051799-rdf.json
Turtle: 831-1.0051799-turtle.txt
N-Triples: 831-1.0051799-rdf-ntriples.txt
Original Record: 831-1.0051799-source.json
Full Text
831-1.0051799-fulltext.txt
Citation
831-1.0051799.ris

Full Text

TOWARDS A NEW ANIMATION TECHNOLOGY by Jerome B a r e n h o l t z B.S'S., U n i v e r s i t y o f M i c h i g a n , 1968 T h e s i s Submitted i n P a r t i a l F u l f i l l m e n t The Requirements f o r the Degree of Master o f S c i e n c e i n The F a c u l t y o f Graduate S t u d i e s The Department o f Computer S c i e n c e We a c c e p t t h i s t h e s i s as conforming to the r e q u i r e d s t a n d a r d THE UNIVERSITY OF BRITISH COLUMBIA December, 1978 Jerome B a r e n h o l t z , 1978 I n p r e s e n t i n g t h i s t h e s i s i n p a r t i a l f u l f i l m e n t o f t h e r e q u i r e m e n t s f o r an a d v a n c e d d e g r e e a t t h e U n i v e r s i t y o f B r i t i s h C o l u m b i a , I a g r e e t h a t t h e L i b r a r y s h a l l make i t f r e e l y a v a i l a b l e f o r r e f e r e n c e a n d s t u d y . I f u r t h e r a g r e e t h a t p e r m i s s i o n f o r e x t e n s i v e c o p y i n g o f t h i s t h e s i s f o r s c h o l a r l y p u r p o s e s may be g r a n t e d by t h e Head o f my D e p a r t m e n t o r by h i s r e p r e s e n t a t i v e s . I t i s u n d e r s t o o d t h a t c o p y i n g o r p u b l i c a t i o n o f t h i s t h e s i s f o r f i n a n c i a l g a i n s h a l l n o t be a l l o w e d w i t h o u t my w r i t t e n p e r m i s s i o n . D e p a r t m e . r C o m p u t e r S c i e n c e n t o f •  T h e U n i v e r s i t y o f B r i t i s h C o l u m b i a 2075 W e s b r o o k P l a c e V a n c o u v e r , C a n a d a V6T 1W5 3 1 D e c e m b e r 1 9 7 8 ABSTRACT **•*'-T h i s t h e s i s ' . i s \ ah•'e^aM'naliXQn'^f. trie ' cqncep-fciaal and c o m p u t e r - s c i e n c e ': i s s u e ' s \ - . i n v o l ^ t h e d e s i g n , and programming o f a .system, fo"r(;|in-i ;rq^ d r a wings i n a m i n i - c o m p u t e r environment'.-^tThe^Vintent i s t o -produce a sys t e m w h i c h - . w i l l be o f dire'.Gtjvya^ue t o a r t i s t s , r a t h e r t h a n some o t h e r u s e r s ' cqnununity.- , ' . - . . Because o f t h i s , t h e : t h e s i s ^ s w i t h .an;, a n a l y s i s o f * the- a n i m a t i o n :* p r o c e s s , as f-x'tX'i^ F i r s t , • t h e r e i s - .a:- r e v i e w .-.of-- the' ^ c ^ ^ ^ c ^ ' e ^ ^ i l l - ! t e c h n o l o g y > w i t h ' p a r -' t a c.ular. ^ tt^^oJx-:t6v^^e:i^^^^jmvch- have been, imposed by p u r e l y - t e c h n o l o g i c a l ' ; c b h s ^ a l t e r n a t i v e way o f .viewing, t h e • a n i m a t i o n /piioeess' i s p r oposed. ' T h i s 'proposal; 'c^hta'ins/,^^ language- Jip£^d^^^ The f i r s t ; s e c t i o n c l o s e s - w i t h t h e pre^sefn^ o f t h e G r a p h i c P r o c e s s , w h i c h ^ ^ - i ^ i ^ ^ ^ ^ ' f ^ ^ ^ l e l 'and d e f i n e d mechanism f o r d i s c u s s i h g . - a n c l ^ The second s e c t i b n ^ c o h t ^ 'how - w e l l t h e a u t h o r ' s s y s t e m , "GRAX,* mee ts.--' the v need s .• o f , t h e G r a p h i c P r o c e s s paradigm. - Systems'! c r e a W d f b y - o t h e r workers, a r e . a l s o e v a l u a t e d a l o n g t h i s c r i t e r i o n ' . •H;Thie'-r'e. is' !a'\general- d i s -c u s s i o n o f some o f t h e features'demanded 'by-"the; G r a p h i c P r o c e s s paradigm, b u t included'' in''rip" systems- c r e a t e d t o dat e . These f e a t u r e s a r e a s c r i b e d t o a h y p o t h e t i c a l language c a l l e d SUPER. L The t h i r d section contains a discussion of the l i n g u i s t i c styles which have been employed by various animation systems, and an argument that the sty l e pioneered by DeFanti i n his GRASS-MACRO system i s the best available..', A second section presents some of the d i f f i c u l t i e s which are encountered i n any< .attempt to b u i l d an interp r e t i v e data base for animation. Several strategies are outlined for surmounting these d i f -f i c u l t i e s , and there i s a discussion of the probable success and implications of each of these strategies. There are two appendices:' to the thesis. The f i r s t i s a very b r i e f description of the main programming structures in GRAX. This, taken together with the discussions pres-ented i n the body of the thesis, form a programmer's guide to GRAX. The second appendix i s the GRAX user's guide, i n a version which r e f l e c t s the state of the system as of December 1978. TABLE OF CONTENTS ABSTRACT TABLE OF CONTENTS TABLE OF FIGURES A PERSONAL ODYSSEY ACKNOWLEDGEMENTS ANIMATION ANALYSED A REVIEW. OF' THE" CONVENTIONAL.i;A^M^3?JWvwTEGaNp^Lp AN ABSTRACT DESCRIPTION OFV ; T H £ ^ N I M T ^ GRAPHIC PROCESSES: A '--NEW \ PAR^D^M'"FOR ; ANIM A T l6Ni CROSS-REFEREWriAL ORGAN'I%A|?|:QN,: . " H O O K S '• ' ' ; - : . : ' v ' • • DATA.;- EXTRACTORS V ^ / V ^  ARC WELDING SUBSTITUTIONS . • GRAPHIC ^PROCESSES . TOWARDS /rH&f||^fGN^yF- 'A • GOMpilT|]R: ANIM^IpN-^SYSTEll INPUT OF GRAPHIC DATA- : ANIMATION TECHNIQUES •-, SELECTION DESCRIPTIONS P-CURVES KEYFRAME ANIMATION SKELETON INTERPOLATION TOWARDS THE DESIGN OF A BETTER .'SYSTEM PROGRAMMING LANGUAGE STYLE. SUBROUTINE EXTENSIONS TO .EXISTING LANGUAGES i v PICTURE DRIVEN COMMAND LANGUAGES 80 CONTROL STRUCTURE EXTENSIONS TO COMMAND LANGUAGES 84 DATA STRUCTURE PROBLEMS 90 THE GRAX DATA STRUCTURE 90 STRATEGIES FOR INTERPRETATION OF COMPLEX DATA STRUCTURES 95 METHODS WHICH DO NOT INVOLVE PRE-COMPUTATION 97 METHODS WHICH INVOLVE SOME PRE-COMPUTATION 101 RE-ARRANGEMENT OF THE DATA TREE 101 PRE-COMPUTATION OF SELECTED SCALAR VALUES 103 PRE-COMPUTATION OF SELECTED CONSTRAINT EQUATIONS 10 6 PRE COMPUTATION OF SELECTED GRAPHICS VALUES 107 CONCLUSIONS 118 REFERENCES 119 APPENDICES 121 THE STRUCTURE OF GRAX 122 THE GRAX MAIN LOOP 123 ANIMATION WITH GRAX 127 GRAX—OVERVIEW 128 USING THE KEYBOARD 129 USING THE DATA TABLET 132 GENERAL COMMANDS 134 DRAW(D): 136 ERASE (E:) 139 GRID(GRI:) ' 140 V GROUP (GRO) 141 I.D. (ID:) 142 INSTANCE (IN:) 144 LIST (L:) 145 MENU (ME:) 146 MODIFY (MO:). 147 MODIFY AND INSTANCE CONTROLS 148 NAME (N:) 150 PICK (PI:) 151 RESTART (RES:) 152 RT-11 (RT:) 153 UNNAME (UNN:) 154 SNAPSHOT (S:) 155 ZAP (Z:) 156 P-CURVE ANIMATION: INTRODUCTION 157 . SCOPES 158 PATHS 158 TIMING 159 MASTERS 160 SETTING UP AN ANIMATION: 160 \ TRACK: 162 THROB: 163 PULSE: ROLL: XTAFFY: YTAFFY: THE KEYFRAME LANGUAGE COMMANDS KEYFRAME ANIMATION — INTRODUCTION HOW KEYFRAMING WORKS SETTING UP A KEYFRAME ANIMATION KEYFRAME SCRIPT COMMANDS — NEW SCRIPT: AND EDIT SCRIPT: THE MODE-SETTING COMMANDS KEYFRAME PERFORMANCE COMMANDS — INTERPRET:, PHASE-TIMING:, and KEYFRAME TIMING INTERPRET: ( I : ) KEYFRAME-TIMING: (K:) PHASE-TIMING: (P:) THE SAVESFETCH LANGUAGE HOW THINGS ARE SAVED IN LIBRARIES SAVE (S:) RESAVE (RES:) UPDATE (U:) FETCH (F:) REFETCH (REF:) RENEW (REN:) ASSIGN-LIBRARY (A:) CREATE-LIBRARY (C:) LIST-LIBRARY (L:) DISCARD (D:) OK (O:) v i i TABLE OF FIGURES I : Two p i c t u r e s (a) i n the same sp a c e , and (b) i n d i f f e r e n t s p a c e s . 10 I I : Two v i e w s o f an o b j e c t t r a v e l l i n g t h r o u g h a n o n - u n i f o r m v i e w i n g space. 11 I I I : Views o f an o b j e c t moving t h r o u g h a v i e w i n g space w i t h a l e n s i n i t . 11 IV: The e f f e c t s o f w e l d i n g an a r c t o a c i r c l e . 24 V: A few i n t e r m e d i a t e s t a g e s i n an a r c - w e l d i n g sequence. 26 V I : E x t e n d e d a r c - w e l d i n g as s u r f a c e w e l d i n g and as ti m e s e r i e s . 26 V I I : Some spaces b e i n g b e n t around t h e l i n e X = 3. 60 V I I I : Use o f an A b s o l u t e Time G r a p h i c t o d e f i n e hooks. . 63 X: An a n i m a t i o n as i t appears (a) i n Phase 2, ( b ) — (e) d u r i n g Phase 3, ( f ) i n Phase 4. 68 X I : A t i m i n g sequence i n v o l v i n g t i e s and a b s o l u t e a s s i g n m e n t o f hooks. 97 v i i i A PERSONAL ODYSSEY The e x p l o r a t i o n s r e p o r t e d i n t h i s t h e s i s s t a r t e d i n 1971-1972, when I was w o r k i n g a t the O n t a r i o C o l l e g e o f A r t as the r e s i d e n t s c i e n t i s t . My f i r s t awareness o f computer a n i m a t i o n was the r e s u l t o f f o l l o w i n g up on q u e s t i o n s my s t u d e n t s were a s k i n g about t h a t s t r a n g e duo, Baecker and Mezei (up the b l o c k a t the U n i v e r s i t y o f T o r o n t o ) , who were t r y i n g t o s p i r i t away our s t u d e n t s f o r some type o f G u i n e a - p i g s e r v i c e on t h e i r e x p e r i m e n t a l a n i m a t i o n system. T a l k i n g t o B a e c k e r , I became c o n v i n c e d t h a t t h e r e was s i g n i f i c a n t p o t e n t i a l i n computer a n i m a t i o n . U n f o r t u n a t e l y , t h e system then a v a i l a b l e a t the U n i v e r s i t y o f Toronto was p r i m i t i v e i n com p a r i s o n t o a system such as GENESYS, which was d e s c r i b e d i n B a e c k e r ' s t h e s i s . Not knowing what I was a s k i n g f o r , I l e a r n e d FORTRAN, and a c c e p t e d Baecker's k i n d o f f e r o f u n l i m i t e d computer time u n t i l h i s r e s e a r c h g r a n t ran o u t . B e f o r e t h a t happened, I had de v e l o p e d a v e r y i m p r e s s i v e ab-s t r a c t a n i m a t i o n , w h i c h was " w i t h i n a few days" o f b e i n g debugged. ( S i n c e the U o f T system was not i n t e r a c t i v e , my knowledge o f the i m p r e s s i v e n e s s o f the a n i m a t i o n was P l a t o n i c ) . My c u r i o s i t y b e i n g g r e a t e r than my common sens e , I then took up Computer S c i e n c e a t t h e U n i v e r s i t y o f B r i t i s h C o l u m b i a . The upshot o f t h a t c h o i c e i s summarized i n t h i s wor k. i x I was a l s o f o r t u n a t e enough to l a n d a j o b a t Simon F r a s e r U n i v e r s i t y , d o i n g the g r a p h i c s programming f o r Tom C a l v e r t ' s . Computer I n t e r p r e t a t i o n o f Dance N o t a t i o n p r o j e c t . The d i f f i c u l t i e s we e n c o u n t e r e d i n t h a t p r o j e c t , and what I l e a r n e d from U.B.C.'s C o m p u t a t i o n a l L i n g u i s t i c s and A r t i f i c i a l I n t e l l i g e n c e c o u r s e s c o n v i n c e d me t h a t the problems i n computer a n i m a t i o n were l i n g u i s t i c i n n a t u r e , r a t h e r t h a n , as I had supposed, due t o hardware l i m i t a t i o n s or l a c k o f a l g o r i t h m s . As I became aware o f more and more s o p h i s t i c a t e d a n i m a t i o n s y s t e m s , (NRC and C h i c a g o C i r c l e i n p a r t i c u l a r ) , i t became c l e a r t h a t each system d e s i g n r e f l e c t e d p r i m a r i l y the d e s i r e t o p r o v i d e some p a r t i c u l a r type o f g r a p h i c s e r v i c e , and s e c o n d a r i l y , t o i n t e g r a t e the c o n c e p t s and r e s u l t s d e v e l o p e d by o t h e r systems. That i s t o say, the user languages b e i n g implemented were o r i e n t e d t o the s p e c i f i c g r a p h i c t a s k s a t hand, r a t h e r than t o some more g e n e r a l concept o f a n i m a t i o n . D u r i n g t h i s t i m e , c o n v e r s a t i o n s w i t h B a r r y Truax o f Simon F r a s e r ' s Department o f Communications S t u d i e s c o n v i n c e d me t h a t the p r o p e r s t r a t e g y was t o c o n c e i v e o f the a n i m a t i o n p r o c e s s per s e , and b u i l d a language which i n s t a n t i a t e d t h a t c o n c e p t i o n , making a v a i l a b l e t h r o u g h i t whatever s p e c i f i c g r a p h i c s e r v i c e s c o u l d be programed i n the s p e c i f i c hardware e n v i r o n m e n t a v a i l a b l e . T h i s s t r a t e g y , a p p l i e d t o music c o m p o s i t i o n , had r e s u l t e d i n a m a z i n g l y complete systems (POD VI and POD V I I ) r u n n i n g on a m a z i n g l y u n i m p r e s s i v e hardware. X With t h i s s u c c e s s i n mind, I undertook to f i n d a paradigm f o r t h i n k i n g about a n i m a t i o n s independent o f what one might be a b l e t o do on a g i v e n computer. As the t h i n k i n g d e v e l o p e d , i t was implemented i n p a r t , f i r s t on a GT-40, and more r e c e n t l y on an Evans and S u t h e r l a n d P i c t u r e System I . U n f o r t u n a t e l y , SMALLTALK i s not a v a i l a b l e on t h e s e machines, and I have o n l y r e c e n t l y g a i n e d a c c e s s t o C and PASCAL. T h i s means t h a t I was committed t o the b r u t a l t a s k o f b u i l d i n g an a n i m a t i o n system i n a s s e m b l e r . The b r u t a l i t y o f t h a t t a s k has made i t i m p o s s i b l e t o use the i m p l e m e n t a t i o n as a "bread board" f o r t r y i n g out i d e a s . R a t h e r , t h e system has grown i n t o a l a r g e , f a i r l y c o m p l e t e , f a i r l y c a s t - i n - c o n c r e t e program which implements i n v a r i o u s p a r t s my t h i n k i n g a t v a r i o u s t i m e s over the l a s t s e v e r a l y e a r s . That s y s t e m , c a l l e d GRAX, i s d e s c r i b e d i n t h i s t h e s i s and i n the a p p e n d i c e s . x i ACKNOWLEDGEMENTS For the good i d e a s i n GRAX, and f o r the good i d e a s i n the t h e s i s p r o p e r , I am d e e p l y i n d e b t e d t o : - Ron Baecker ( P - c u r v e a n i m a t i o n , and many hours o f good c o n v e r s a t i o n . ) - Tom D e F a n t i and Dan S a n d i n ( l o o p l e s s programming, i n s p i r a t i o n , sympathy, and enough good c r i t i c i s m t o save me from even more f a l s e s t a r t s ) . - N e s t o r B e r t n i k and M a r c e l l e Wein (keyframe a n i m a t i o n , s k e l e t o n a n i m a t i o n , and e x c e l l e n t g e n e r a l work i n people-machine c o m m u n i c a t i o n s ) . - B a r r y Truax (the importance of wo r k i n g from an o v e r a l l , ab-s t r a c t c o n c e p t i o n r a t h e r than from s p e c i f i c g r a p h i c c a p a b i l i t i e s ) . - Efrem L i p k i n ( e n d l e s s hours o f c o n s t r u c t i v e c r i t i c i s m and i d e a - s h a r p e n i n g argument) O t h e r s who have h e l p e d me a l o n g i n c l u d e : - C h r i s Dewhurst ( s t u b b o r n r e f u s a l t o l e t t h e GT-40 d i e b e f o r e the P i c t u r e System came on l i n e , and t h e code f o r t h e keyframe i n t e r p o l a t i o n r o u t i n e s ) . - Tom C a l v e r t ( u n l i m i t e d a c c e s s t o the GT-40, f i n a n c i a l s u p p o r t , m o r a l s u p p o r t ) . - I . Ganapathy ( t h e dynamic memory a l l o c a t i o n system i n GRAX) - Rob Fowler and Roger Toren (the f i l e - h a n d l i n g and l i b r a r y programs i n GRAX). - J i l l Mandrake and Sandy Emerson ( h e l p i n p r e p a r i n g the manuscr i p t ) . I ANIMATION ANALYSED, * * * A REVIEW OF THE CONVENTIONAL ANIMATION TECHNOLOGY AN ABSTRACT DESCRIPTION OF THE ANIMATION PROCESS GRAPHIC PROCESSES: A NEW PARADIGN FOR ANIMATION CROSS-REFERENTIAL ORGANIZATION HOOKS DATA EXTRACTORS ARC WELDING SUBSTITUTIONS GRAPHIC PROCESSES 2 A REVIEW OF THE CONVENTIONAL ANIMATION TECHNOLOGY There are s e v e r a l d i f f e r e n t p r o c e s s e s known as " a n i m a t i o n " . Throughout t h i s d i s c u s s i o n , we w i l l be concerned w i t h c e l l - t y p e a n i m a t i o n , which i n v o l v e s c r e a t i n g and photo-g r a p h i n g a s e r i e s o f p i c t u r e s , r a t h e r than w i t h modeling c l a y m a n i p u l a t i o n , or o t h e r a n i m a t i o n t e c h n i q u e s . A n i m a t i o n i s a c h i e v e d by p r o d u c i n g a sequence o f i n d i v i d u a l s t i l l images, each d i f f e r i n g o n l y s l i g h t l y from i t s n e i g h b o u r s , and then d i s p l a y i n g the sequence a t a r a t e h i g h enough t o a c h i e v e the i l l u s i o n o f c o n t i n u o u s t r a n s i t i o n from one s t i l l t o the n e x t . U s i n g 16 mm f i l m as the r e c o r d i n g medium, each image c o r -responds t o two frames o f f i l m , so the animator i s r e q u i r e d t o produce 12 images f o r each second o f a n i m a t i o n . Thus a one minute sequence r e q u i r e s t h a t 720 s e p a r a t e images be produced. T e c h n i q u e s have, o f c o u r s e , been deve l o p e d t o a l l o w one p a i n t i n g t o be used i n more than one image. For example, a f i x e d background i s p a i n t e d , and f o r e g r o u n d f i g u r e s are p a i n t e d on t r a n s p a r e n t s h e e t s o f c e l l u l o i d ( c a l l e d " c e l l s " ) . The f o r e g r o u n d f i g u r e can then be moved w i t h r e s p e c t t o the background by s i m p l y r e p o s i t i o n i n g the c e l l . Other t e c h n i q u e s a r e e s s e n t i a l l y e x t e n s i o n s and v a r i a t i o n s o f t h i s method. Much o f a n i m a t i o n ' s t e c h n o l o g y i s i n v o l v e d w i t h machines f o r moving c e l l s w i t h r e s p e c t t o one another i n a c o n t r o l l a b l e , 3 o r d e r l y way. P r a c t i c a l i t y d i c t a t e s t h a t a n i m a t i o n s be planned so as to use t h i s t e c h n o l o g y e f f i c i e n t l y . The u s u a l s t r a t e g y f o r de-v e l o p i n g a n i m a t i o n s has grown o u t o f t h i s demand. B r i e f l y , t h e sequence i s : 1- C o n c e i v e the a n i m a t i o n i n whatever terms are c o n v e n i e n t . 2- Draw a " s t o r y b o a r d " , which i s a s e t o f s t i l l images r e p r e -s e n t i n g e s s e n t i a l p o i n t s i n the a n i m a t i o n . 3- Do " s t u d i e s " o f the v a r i o u s c h a r a c t e r s o r o b j e c t s . Each s t u d y i s a s e t o f s k e t c h e s showing the c h a r a c t e r or o b j e c t i n " t y p i c a l " p o s i t i o n s . 4- E v o l v e the s t o r y b oard i n t o a p i c t o r i a l " s c r i p t " , a s e t o f key images, which show the t r a n s f o r m a t i o n s from each s t o r y b oard image t o the n e x t . 5- D e t a i l the backgrounds t o be used. 6- D e t a i l r e p e t i t i v e sequences ( l i k e c h a r a c t e r s w a l k i n g ) as s e t s o f c e l l s . 7- U s i n g the s c r i p t and s t u d i e s t o p r o v i d e c o n t i n u i t y , c r e a t e a s e t o f c e l l s from which t o b u i l d a l l the 720 images per minute r e q u i r e d f o r t h e a n i m a t i o n . 8- P h o t o g r a p h t h e images, m a n i p u l a t i n g c e l l s as r e q u i r e d be-tween s u c c e s s i v e s h o t s . 9- View t h e r e s u l t s and weep or g r i n as a p p r o p r i a t e . I f r e -s u l t s a re not s a t i s f a c t o r y , l o o p . U s u a l l y one l o o p s back t o ( 7 ) , sometimes even f a r t h e r back, and o c c a s i o n a l l y back o n l y t o ( 8 ) . 4 T h i s p r o c e s s i s q u i t e p o w e r f u l i n t h a t s p e c t a c u l a r a n i m a t i o n s can be produced by i t . But, i t has s i g n i f i c a n t drawbacks. For l a r g e p r o d u c t i o n s , l a r g e numbers of people are r e q u i r e d t o c r e a t e a l l the i n d i v i d u a l c e l l s . In commercial s t u d i o s , t h e s e " i n k e r s " and " p a i n t e r s " are t y p i c a l l y g r u m b l i n g a r t s t u d e n t s , who would a l m o s t r a t h e r s t a r v e than a c c e p t the f e d e r a l minimum wage or l e s s o f f e r e d f o r t h e i r work. In non-commercial s i t u a t i o n s , the i n k e r s and p a i n t e r s are o f t e n s o f t - h e a r t e d f r i e n d s o f the a n i m a t o r , or s t u d e n t s t r y i n g t o g e t a good g r a d e . The i n k e r s and p a i n t e r s must be c a r e f u l l y s u p e r v i s e d by t h e key a n i m a t o r ( s ) , t o e nsure c o n s i s t e n c y o f s t y l e and c o l o u r . The key a n i m a t o r s must, i n t u r n , be c l o s e l y s u p e r v i s e d by t h e s c r i p t a r t i s t ( s ) , t o i n s u r e t h a t the f i n a l a n i m a t i o n f o l l o w s the s c r i p t . Of c o u r s e , the s c r i p t a r t i s t s must be s u p e r v i s e d by t h e s t o r y - b o a r d a r t i s t ( s ) . I t i s then n e c e s s a r y t o c r e a t e the sound t r a c k and s y n c h r o n i z e i t w i t h the a n i m a t i o n . E v e n t u a l l y , t h e z i l l i o n s o f c e l l s are s e n t t o the a n i m a t i o n t a b l e o p e r a t o r s , who a r r a n g e and photograph them. The f i l m i s f i n a l l y r e a d y — f o r e d i t i n g and sound m i x i n g . Commercial r a t e s f o r a n i m a t i o n s t a r t a t about $5000 per m i n u t e , and p r i c e s p r o g r e s s g e o m e t r i c a l l y upward from t h e r e , d epending on the c o m p l e x i t y o f the a n i m a t i o n . These c o s t s , o f c o u r s e , a r e w e l l out o f the p r i c e range of most a r t i s t s . Indeed, most a n i m a t i o n i s funded by commercial markets ( S a t u r d a y morning T.V., T.V. ads, o c c a s i o n a l Hollywood f i l m s ) , r a t h e r than by a r t i s t s . In a d d i t i o n t o making a n i m a t i o n s p r o h i b i t i v e l y e x p e n s i v e , t h e l o n g time d e l a y s between c o n c e p t i o n and c o m p l e t i o n , and the l a r g e number of p e o p l e i n v o l v e d have o t h e r adverse i m p l i c a t i o n s f o r a r t i s t s . Minor m i s t a k e s are s i m p l y t o l e r a t e d . I f a f t e r the e n t i r e p r o c e s s i s ground t h r o u g h , a f i n i s h e d scene b e a r s l i t t l e or no r e l a t i o n t o i t s i n i t i a l c o n c e p t i o n , o f t e n the new, g r a t u i t o u s l y amended scene i s used, s i n c e i t would t a k e t o o much t i m e , money, and a r g u i n g w i t h a l a r g e group o f p e o p l e t o g e t i t f i x e d . Subsequent scenes must be a d j u s t e d t o f i t . Each o f t h e s e i s , o f c o u r s e , s u b j e c t to m i s a d v e n t u r e o f i t s own, c r e a t i n g the p o s s i b i l i t y t h a t an a n i m a t i o n p r o j e c t w i l l wander, b r o n t o s a u r u s l i k e , away from i t s o r i g i n a l c o n c e p t i o n . Whoever i s i n charge must expend c o n s i d e r a b l e e nergy b r o n t o s a u r u s - h e r d i n g . Perhaps even more f r u s t r a t i n g l y , t h e r e i s l i t t l e o p p o r t u n i t y t o e x p e r i m e n t , t o " f o o l around", t o f i n d out what a s p e c u l a t i o n might l o o k l i k e . The tendency i s t o t r y some-t h i n g s a f e , something which p r o b a b l y won't b e n e f i t much from b e i n g re-done, r a t h e r than t o work i t e r a t i v e l y towards an i d e a or i d e a l . The c r e a t i v e and p r o d u c t i v e a s p e c t s o f the work become s e p a r a t e d , s i n c e i t i s too e x p e n s i v e i n t i m e , money, 6 and a n g u i s h t o a l l o w them to m i n g l e much. T h i s s e p a r a t i o n i s a l m o s t unique t o a n i m a t i o n amongst the a r t forms, and i s a n t i t h e t i c a l t o most a r t i s t s ' w o r k i n g s t y l e s . The c o n v e n t i o n a l t e c h n o l o g y has another drawback, which i s due to the n a t u r e o f the t e c h n o l o g y i t s e l f , r a t h e r than t o the economics or p o l i t i c s o f the p r o c e s s . The b a s i c d e s c r i p -t i v e medium f o r t h e animator i s t h e s t o r y b o a r d , which i s i n t r i n s i c a l l y s t a t i c , w h i l e the b a s i c c o n c e p t u a l " u n i t s " o f a n i m a t i o n i n c l u d e m o t i o n s and t r a n s f o r m a t i o n s , which are i n t r i n s i c a l l y dynamic. The c o n v e n t i o n a l t e c h n o l o g y o f f e r s no d i r e c t r e p r e s e n t a t i o n scheme f o r some of the most b a s i c p a r t s o f i t s s u b j e c t l M o t i o n s and t r a n s f o r m a t i o n s must be e i t h e r k ept i n the a n i m a t o r ' s mind's eye, or r e p r e s e n t e d as a s e r i e s o f t i m e - i n s t a n c e s . By way o f c o m p a r i s o n , c o n s i d e r a m a t h e m a t i c i a n who wishes t o d e s c r i b e a c i r c l e . I f he i s a l l o w e d to use m a t h e m a t i c a l j a r g o n , a l l i s w e l l . But suppose he i s r e q u i r e d t o say "when x i s - 3 , then y i s 0, and when x i s -2, then y i s 1, and...; and imagine a l l o f t h e s e p o i n t s connected smoothly t o g e t h e r " . Higher mathematics would d o u b t l e s s s u f f e r . The problem i s not m e r e l y t h a t complex motions and t r a n s -f o r m a t i o n s cannot be communicated from animator t o a s s i s t a n t . G e s t i c u l a t i o n s and g r u n t s can be made t o s e r v e h e r e . The a n i m a t o r s i m p l y i s not p r o v i d e d w i t h a s u i t a b l e mechanism f o r d e f i n i n g and r e f i n i n g the m o t i o n s and t r a n s f o r m a t i o n s which 7 are c e n t r a l to the work. I t i s n o t s u r p r i s i n g t h a t even h i g h l y s o p h i s t i c a t e d a n i m a t i o n s c o n f i n e themselves to r e l a t i v e l y s i m p l e t y p e s o f m o t i o n s and t r a n s f o r m a t i o n s o f t h e i r o b j e c t s . From the above, i t i s e v i d e n t t h a t a new a n i m a t i o n t e c h n o l o g y s h o u l d s t r i v e t o (1) reduce the number o f p e o p l e , the c o s t , and the amount o f time i n v o l v e d i n a n i m a t i o n , (2) p r o v i d e mechanisms f o r g a t h e r i n g and u s i n g feedback from p a r t i a l l y completed a n i m a t i o n s , t h e r e b y r e d u c i n g the p e n a l t i e s f o r i t e r a t i v e r e f i n e m e n t s and e x p e r i m e n t a t i o n , and (3) p r o v i d e mechanisms f o r m o r e - o r - l e s s d i r e c t r e p r e s e n t a t i o n s and m a n i p u l a t i o n s o f m o t i o n s , t r a n s f o r m a t i o n s , and o t h e r e s s e n -t i a l l y dynamic o b j e c t s . 8 AN ABSTRACT DESCRIPTION OF THE ANIMATION A g i v e n a n i m a t i o n may be d e s c r i b e d i n a v a r i e t y o f ways. One view sees a c o l l e c t i o n o f s t i l l images, one a f t e r a n o t h e r . Each s t i l l may be d e s c r i b e d as a f u n c t i o n , f ( t ) , from a r e c t a n g l e i n the p l a n e t o the space { ( c o l o u r s ) X ( b r i g h t n e s s e s ) } . From t h i s , another f u n c t i o n , F , can be c r e -a t e d which would a s s i g n each time t o one o f the f ( t ) ' s . T h i s v i e w , w h i l e f o r m a l and c o m p l e t e , i s more or l e s s u s e l e s s t o a n i m a t o r s s i n c e the f ( t ) ' s would be g e n e r a l l y d i s c o n t i n u o u s a t b e s t , and F would be a nightmare t o r e p r e s e n t or compute, and any semantic i n f o r m a t i o n i n the o r i g i n a l a n i m a t i o n would l i k e l y be o b s c u r e d . At another extreme, one c o u l d s i m p l y d e s c r i b e i n E n g l i s h what one s e e s . But E n g l i s h , or any o t h e r n a t u r a l l a n g u a g e , g e t s worse and worse as the images move away from the r e p r e -s e n t a t i o n a l . And even f o r r e p r e s e n t a t i o n a l images, n a t u r a l languages are not v e r y good f o r d e s c r i b i n g v i s u a l and t e m p o r a l r e l a t i o n s between t h i n g s . T h i s s e c t i o n a t t e m p t s t o s t e e r between t h e s e extremes by u s i n g a few m a t h e m a t i c a l c o n c e p t s l e s s than r i g o u r o u s l y i n o r d e r to d e v e l o p a g e n e r a l scheme f o r d e s c r i b i n g a n i m a t i o n s . We s h a l l c o n s i d e r an a n i m a t i o n to be a m o t i o n - p i c t u r e o f " o b j e c t s " i n a " v i e w i n g space". At t h i s l e v e l , we need not be concerned w i t h what type o f camera i s used t o make the m o t i o n p i c t u r e . Nor does i t m a t t e r whether the o b j e c t s are two or 9 t h r e e d i m e n s i o n a l , or whether they are s k e l e t o n d r a w i n g s or o u t l i n e s or f u l l y shaded and c o l o u r e d images or fuzzy- e d g e d b l o b s . A l l t h a t we r e q u i r e o f our o b j e c t s i s t h a t they be v i s i b l e , and d e s c r i b a b l e i n a E u c l i d i a n space. The E u c l i d i a n spaces i n which v a r i o u s o b j e c t s are d e f i n e d need not be the same. For example, we might d e s c r i b e a square by s p e c i f y i n g i t s v e r t i c e s as i f on graph paper: SQUARE = {(0,0) , (0 ,1) , (1,1) , (1,0) } and a t r i a n g l e by TRIANGLE = { (0,0) , (1,1) , (1,0) } . I f we f u r t h e r s p e c i f y t h a t the two de-s c r i p t i o n s r e f e r t o the same s p a c e , we would g e t a p i c t u r e l i k e l a . W i t h o u t t h i s f u r t h e r s t i p u l a t i o n , however, we would g e t a p a i r o f p i c t u r e s l i k e l b . U n l e s s o t h e r w i s e s t a t e d , each o b j e c t s h o u l d be c o n s i d e r e d t o have i t s own space, c a l l e d t h a t o b j e c t ' s "home" space. We a t t a c h t o each o b j e c t ' s home space a time s c a l e , c a l l e d the o b j e c t ' s "home t i m e " . By a " s i m p l e m o t i o n " , or j u s t " m otion", o f an o b j e c t , we mean a t r a n s l a t i o n and r o t a t i o n o f t h a t o b j e c t i n i t s home space and t i m e . The i d e a here i s t h a t the o b j e c t i t s e l f d o e s n ' t change, but i t s p o s i t i o n and o r i e n t a t i o n i n i t s space do change i n t i m e . By a "more complex t r a n s f o r m a t i o n " or j u s t " t r a n s f o r m a -t i o n " , we mean any change i n the o b j e c t which i s not a s i m p l e m o t i o n . Note t h a t a t r a n s f o r m e d o b j e c t cannot be made t o c o i n c i d e w i t h i t s u n t r a n s f o r m e d , former s e l f by s i m p l y r e p o s i t i o n i n g i t i n i t s space. 10 o b. FIGURE I : Two p i c t u r e s (a) i n the same space, and (b) i n d i f f e r e n t spaces M o t i o n s and t r a n s f o r m a t i o n s a re a l l t h a t can happen t o an o b j e c t i n i t s home space. The v i e w i n g spaces i n which o b j e c t s appear need n ot be th e same i n a l l p l a c e s , nor a t a l l t i m e s . Because o f t h i s , i t may appear t h a t an o b j e c t i n a v i e w i n g space i s un d e r g o i n g some change, even though i n i t s home space the o b j e c t i s not c h a n g i n g . Suppose f o r example t h a t the v i e w i n g space has a t r a n s p a r e n t y e l l o w b l o b i n i t s c e n t r e . A b l u e o b j e c t t r a v e l l i n g b e h i n d the b l o b would appear t o t r a n s f o r m t o green and back t o b l u e i f viewed from c e r t a i n vantage p o i n t s . Another v i e w i n g space might c o n t a i n a ' l e n s ' , so t h a t o b j e c t s 11 a non-uni {forrnitij. / FIGURE I I : Two views o f an o b j e c t t r a v e l l i n g t h r ough a non- u n i f o r m v i e w i n g space. 1 Q ef O FIGURE I I I : v i e w s o f an o b j e c t moving through a v i e w i n g space w i t h a l e n s i n i t . t r a v e l l i n g t h r o u g h i t would appear m a g n i f i e d . In g e n e r a l , once an o b j e c t i s i n a v i e w i n g s p a c e , t h e p r o p e r t i e s o f the space i n t e r a c t w i t h the o b j e c t t o c r e a t e what i s , s e e n . On the one hand, t h i s a l l o w s f o r a l l s o r t s o f s t r a n g e e f f e c t s , l i k e t h o s e o f the examples above. On the 12 o t h e r hand, t h i s c o n c e p t u a l framework g i v e s a n i c e handle on mundane e f f e c t s l i k e p e r s p e c t i v e p r o j e c t i o n s , which become s i m p l y b u i l t - i n f e a t u r e s o f the v i e w i n g space. Another r e a s o n f o r h a v i n g the v i e w i n g space as a s e p a r a t e e n t i t y from the home spaces i s t h a t i t a l l o w s one c o n v e n i e n t l y t o d i s t i n g u i s h changes i n an o b j e c t from changes i n the v i e w e r ' s r e l a t i o n s h i p t o i t . For example, t o animate a r o c k e t s h i p t a k i n g o f f , one might r e p r e s e n t a p l a n e t as a b a l l . As time goes on, the b a l l a ppears t o s h r i n k . We would l i k e t o d e s c r i b e t h i s s h r i n k i n g as a p r o p e r t y o f our vi e w o f the p l a n e t , r a t h e r than as some s t r a n g e d i s e a s e which the p l a n e t has c o n t r a c t e d as a r e s u l t o f our l e a v i n g . The s e p a r a t i o n o f home and v i e w i n g spaces imposes the need f o r a f a m i l y o f mapping f u n c t i o n s which s p e c i f y where, when, and how o b j e c t s are t o be i n j e c t e d i n t o a v i e w i n g space from t h e i r home s p a c e s . These f u n c t i o n s a l l o w an o b j e c t i n i t s home space t o be p l u n k e d down anywhere i n a v i e w i n g space, and a t any t i m e . B e f o r e b e i n g p l u n k e d down, the o b j e c t may be made l a r g e r or s m a l l e r , may be m i r r o r e d i n time or space, and may be spun around t o any o r i e n t a t i o n . The re a s o n f o r wanting t h e s e f u n c t i o n s i s t o be a b l e t o c r e a t e a c e r t a i n sense o f c o m p a r a b i l i t y between o b j e c t s i n t h e i r v a r i o u s home s p a c e s . T r a n s l a t i o n s and r o t a t i o n s c o r r e s p o n d t o the c o n c e p t s o f p i c k -i n g t h i n g s up where you f i n d them, and p u t t i n g them down where 13 you want them. Reflections extend this concept. Scaling corresponds to looking at things close-up or far away in their home spaces, and in "proper" relationship to other objects in the viewing space. Each object can have i t s own mapping into a viewing space. This means that each home space can be considered a " d e t a i l " of a larger scene v i s i b l e in the viewing space. This i s p a r t i c u l a r l y useful i f the viewing space has a perspective transformation b u i l t in to i t , or i f there i s such a perspec-tive mapping available from the home space to the viewing space. Also, any given object can be mapped into the viewing space by various d i f f e r e n t maps. The object in the home space acts a pattern from which various instances can be struck. We might, for example, describe a sphere moving along a l i n e , and use i t with d i f f e r e n t mappings to get big spheres, l i t t l e spheres, fa s t moving spheres, etc. a l l in the same viewing space. Notice that by expanding the admissible class of mappings, (e.g. to handle colour transformations as well as geometry, non-linear time mappings, e t c . ) , we emphasize the pattern aspect of the objects in their home spaces, and r e l a t i v e l y de-emphasize the comparable objects aspect. Indeed, the larger the admissible class of mappings, the more tempting i t i s to think of objects in their home spaces purely as templates, or skeleton descriptions. 14 T h i s c o n c e p t has i n t e r e s t i n g i m p l i c a t i o n s when extended i n two p a r t i c u l a r d i r e c t i o n s . F i r s t , i t s h o u l d be r e a l i z e d t h a t the mappings from the home space t o the v i e w i n g space must s p e c i f y what i s t o happen t o the time a x i s i n the home sp a c e , as w e l l as t o the s p a t i a l a x e s . Speed-ups, slow-downs, f r e e z e a c t i o n s , e t c . , can a l l be b u i l t i n t o t he mapping o f the o b j e c t s i n t o the v i e w i n g space. More i n t e r e s t i n g l y , when mapping o b j e c t s from s e v e r a l home spaces i n t o a g i v e n v i e w i n g s pace, c o i n c i d e n c e s or any o t h e r d e s i r e d t i m i n g r e l a t i o n s h i p s can be c r e a t e d by c o n t r o l -l i n g the time a s p e c t o f the mappings. These t i m i n g r e l a t i o n -s h i p s need not be s p e c i f i e d i n the i n i t i a l d e p i c t i o n o f the v a r i o u s o b j e c t s i n t h e i r home s p a c e s . A second i n t e r e s t i n g d i r e c t i o n f o r the e x t e n s i o n o f the mapping i d e a i s t h a t a v i e w i n g space may be c o n s i d e r e d a home space c o n t a i n i n g complex o b j e c t s d e r i v e d from mappings from o t h e r s p a c e s . Mappings may then be b u i l t i n t o y e t o t h e r v i e w i n g spaces,. a l l o w i n g c o m p l e x i t y t o c a s c a d e , and a l l o w i n g t h e animator t o d e c i d e where t o d e a l w i t h each i s s u e ( i . e . , a t what p o i n t t o work o u t t h e d e t a i l s o f some p a r t i c u l a r r e l a t i o n s h i p . ) W i t h t h e s e c o n c e p t s i n mind, t h e a n i m a t i o n p r o c e s s may be summarized as f o l l o w s : There e x i s t s s e v e r a l o b j e c t s , each i n a space o f i t s own. 15 These may be moving around or d o i n g some more complex t r a n s -f o r m a t i o n s . Each o b j e c t may be s i m p l e or complex (the r e s u l t o f mapping t o g e t h e r s i m p l e r o b j e c t s i n t o one s p a c e ) . Each o b j e c t may be s i m p l y p l u n k e d down i n t o a v i e w i n g space, or may be seen as a t e m p l a t e , g i v i n g r i s e t o i n s t a n c e s o f i t s e l f i n t h e v i e w i n g space. E i t h e r way, t h e o b j e c t s i n the v i e w i n g space are no l o n g e r i s o l a t e d from one a n o t h e r . They have been a r r a n g e d i n some s p e c i f i c r e l a t i o n s h i p s , as d e f i n e d by the mappings which g e t them from t h e i r home spaces to the v i e w i n g space. The v i e w i n g space may be as s i m p l e as a f i s h b o w l , or as complex as t h e geometry o f G e n e r a l R e l a t i v i t y . What one sees l o o k i n g i n t o i t , the a n i m a t i o n i t s e l f , r e s u l t s from the i i n t e r a c t i o n o f t h e o b j e c t s w i t h one a n o t h e r , t h e way the ob-j e c t s a re p r e s e n t e d ( i . e . , the mapping s ) , and the i n s t r i n s i c v i s u a l p r o p e r t i e s o f the p a r t i c u l a r v i e w i n g space t h e y end up i n . 16 GRAPHIC PROCESSES: A NEW PARADIGM FOR ANIMATION In t he p r e c e d i n g s e c t i o n , a n - a b s t r a c t view o f a n i m a t i o n was p r e s e n t e d , but l i t t l e was s a i d about how one might go about t h i n k i n g up an a n i m a t i o n . In t h i s s e c t i o n , the concept o f a " g r a p h i c p r o c e s s " i s p r e s e n t e d , and s e v e r a l t y p e s o f g r a p h i c p r o c e s s e s are d i s c u s s e d . A d d i t i o n a l c o n c e p t s are de v e l o p e d t o be used w i t h g r a p h i c p r o c e s s e s , and i t i s argued t h a t an i n t e r e s t i n g c l a s s o f a n i m a t i o n s may be c o n c e i v e d and dev e l o p e d i n terms o f t h e s e c o n c e p t s . I t i s a l s o shown t h a t the v a r i o u s c o n c e p t s from the ab-s t r a c t a n i m a t i o n scheme may be r e p r e s e n t e d i n a s t r a i g h t f o r w a r d way as g r a p h i c p r o c e s s e s , so t h a t the c l a s s o f a n i m a t i o n s which can be r e p r e s e n t e d as g r a p h i c p r o c e s s e s i n c l u d e s t h o s e which can be d e s c r i b e d by the a b s t r a c t f o r m a l i s m . In i t s s i m p l e s t form, a g r a p h i c p r o c e s s i s a s p e c i f i c a -t i o n o f how g i v e n b i t s o f a n i m a t i o n are to f i l l a g i v e n b i t o f tim e and space. Thus a t t h i s l e v e l , s t o r y - b o a r d s and s h o o t i n g s c r i p t s f i l l the r o l e n i c e l y . But as mentioned above, t h e s e forms o f e x p r e s s i o n l a c k any ways o f d e s c r i b i n g m o tions and r e l a t i o n s h i p s between m o t i o n s , e t c . So, we enhance the s i m p l e p r o c e s s by a d d i n g t o i t d e f i n i t i o n s o f some s t r u c t u r e s f o r h a n d l i n g such r e l a t i o n s h i p s . 17 CROSS-REFERENTIAL ORGANIZATION The f i r s t s t r u c t u r e t o be added i s c r o s s - r e f e r e n t i a l o r g a n i z a t i o n , b oth i n t i m e and i n space. In s p e c i f y i n g an a n i m a t i o n , i t i s o f c o u r s e n e c e s s a r y t o s p e c i f y when any given,. b i t o f a n i m a t i o n i s t o s t a r t , and how l o n g i t i s t o be. These s p e c i f i c a t i o n s are c o n v e n t i o n a l l y handled by s p e c i f y i n g an a b s o l u t e s t a r t t i me (frame number), and by adding t o and/or r e d u c i n g the s t a c k o f c e l l s which r e p r e s e n t the a n i m a t i o n t o the c o r r e c t number o f frames f o r the g i v e n t i m e . HOOKS As an a l t e r n a t i v e t o t h i s , we may s i n g l e out two i n s t a n t s w i t h i n t h e b i t o f a n i m a t i o n , name them and a s s i g n t i m e v a l u e s t o t h o s e names. The o v e r a l l l e n g t h and s t a r t i n g time o f the a n i m a t i o n a re then d e t e r m i n e d by the time i n t e r v a l between the two a s s i g n e d t i m e s , and by t h e i n s t r i n s i c rhythm o f the anima-t i o n . That i s , we may d e s i g n the mapping from the a n i m a t i o n b i t ' s home space i n t o t h e v i e w i n g space i n such a way t h a t the o v e r a l l time and s t a r t t ime i n the home space a re mapped t o the c o r r e c t t ime i n t e r v a l and i n s t a n t i n time i n the v i e w i n g s p a c e . For example, i f we have a two second b i t o f a n i m a t i o n , and s p e c i f y t h a t i t s m i d d l e i s to.happen a t second s i x o f the o v e r a l l a n i m a t i o n , and t h a t i t s end i s t o come a t second n i n e o f the o v e r a l l a n i m a t i o n , t h e n c l e a r l y we must m u l t i p l y the 13 b i t ' s i n s t r i n s i c t i me s c a l e by t h r e e . T h i s i m p l i e s t h a t the b i t w i l l s t a r t a t second t h r e e o f the o v e r a l l a n i m a t i o n . Or, we c o u l d choose some more complex, n o n - l i n e a r time mapping from the home space to the v i e w i n g space. One c o u l d f o r example s p e c i f y t h a t a b i t o f a n i m a t i o n i s t o s t a r t a t some time i n the v i e w i n g space and a c c e l e r a t e from t h a t p o i n t i n t i m e . I t i s a l s o p o s s i b l e t o s p e c i f y t i m i n g and tempo i n a r e l a t i v e manner, r a t h e r than w i t h r e f e r e n c e t o the a b s o l u t e t i me frame o f the o v e r a l l a n i m a t i o n . Suppose, f o r example, t h a t we w i s h t o animate a p e r s o n r u n n i n g . We may work up f i r s t the t o r s o moving a c r o s s the s c r e e n , and s e p a r a t e l y the arms s w i n g i n g and t h e l e g s s t r i d i n g . I t might t u r n o u t t h a t one c y c l e o f the arms i n t h e i r home space t a k e s 20 seconds, and t h a t one c y c l e o f the l e g s i n t h e i r home space t a k e s 25 se c o n d s . We have some p r o b l e m s : (1) The c y c l e s must t a k e the same t o t a l t i me i n the v i e w i n g s p ace, (2) They must be q u i c k e r , and (3) They must bear a v e r y s p e c i f i c r e l a t i o n s h i p t o one another (namely, r i g h t arm f a r t h e s t back when l e f t l e g i s f a r t h e s t b a c k ) . The f i r s t and t h i r d o f t h e s e problems can be s o l v e d as f o l l o w s : a s s i g n names t o the p o i n t s when the r i g h t arm and l e f t l e g are f a r t h e s t back, and s p e c i f y t h a t t h e s e two names must always be a s s i g n e d the same time v a l u e , ( i . e . t i e t h e two names t o g e t h e r i n time.) Do l i k e w i s e f o r the p o i n t s when t h e l e f t arm and r i g h t l e g are f a r t h e s t back. T h i s i s e f f e c t i v e l y p u t t i n g c o n s t r a i n t s on t h e mappings from 19 the two home spaces i n t o the v i e w i n g space i n such a way t h a t t h e mappings t h e m s e l v e s w i l l g u a r a n t e e the d e s i r e d c o i n c i d e n c e s . The second problem would be s o l v e d by a s s i g n i n g names t o p o i n t s i n the t o r s o ' s motion a c r o s s the s c r e e n . Each f u l l s t e p w i l l r e q u i r e two names, which s h o u l d spaced e v e n l y w i t h i n t h e s t e p . Thus i f t h e a n i m a t i o n i s t o r e p r e s e n t s i x s t e p s , t w e l v e e v e n l y spaced p o i n t s i n the t o r s o ' s p a t h are a s s i g n e d names. To the f i r s t , t h i r d , f i f t h , e t c . o f thes e i s t i e d t h e name o f the p o i n t where the l e f t l e g i s f a r t h e s t back, and to the second, f o u r t h , e t c . i s t i e d the name o f the p o i n t a t which the r i g h t l e g i s back. These t i e s , a l o n g w i t h the c o n s t r a i n t s imposed a l r e a d y , s p e c i f y the time a s p e c t s o f the mapping from the two home spaces i n t o t he v i e w i n g space w h i c h a l r e a d y c o n t a i n s t h e t o r s o and the t r a j e c t o r y . Now we need o n l y a s s i g n t i m e s t o two p o i n t s i n the t o r s o ' s p a t h t o g i v e us a r u n n i n g f i g u r e . The time a s s i g n m e n t s f o r t h e t o r s o can be e i t h e r i n t r i n s i c (the t i m i n g f i r s t used i n d e f i n i n g the a n i m a t i o n ) , a b s o l u t e ( s t a r t a t frame so-and-so, end a t frame such-and-such i n the o v e r a l l a n i m a t i o n ) , or r e l a t i v e ( t i e the b e g i n n i n g o f the second s t e p t o name "BLAH", and the b e g i n n i n g o f the t h i r d s t e p t o name "BLORP".) 20 In o r d e r to complete t h i s example, and a l s o to demonstrate how c r o s s - r e f e r e n t i a l t i e s are used i n s p a c e , r a t h e r than t i m e , we s p e c i f y t h a t p l a c e s as w e l l as times may have names. Then we can t i e end-of-arms t o s h o u l d e r s and e n d - o f - l e g s t o c r o t c h e s , t h e r e b y g i v i n g us an a n i m a t i o n o f a p e r s o n , r a t h e r t h a n a meat wagon. We can a l s o name e n d p o i n t s o f the t o r s o ' s p a t h , and a s s i g n these names as we w i l l , a l l o w -i n g the same a n i m a t i o n segment t o s e r v e as a p e r s o n r u n n i n g up h i l l , down h i l l , u p s i d e down a c r o s s the t o p o f the s c r e e n , or whatever. In t h i s l a s t i n s t a n c e , we are t r e a t i n g the v i e w i n g space c o n t a i n i n g t h e moving t o r s o as a home s p a c e , t o be mapped i n t o a n o ther v i e w i n g space. Throughout the above, we have been a s s i g n i n g names t o p o i n t s i n time and space, and d e s c r i b i n g v a r i o u s mappings i n terms of t h e s e p o i n t s . P o i n t s i n an a n i m a t i o n segment which have been so s i n g l e d out and named w i l l be c a l l e d "hooks". The hooks i n an a n i m a t i o n segment are the attachment s i t e s f o r b u i l d i n g s a c r o s s r e f e r e n t i a l s t r u c t u r e out o f v a r i o u s segments. The f o r m a l p r o p e r t i e s o f hooks a r e : 1- A hook can be named. 2- A hook can be made t o r e f e r t o a b s o l u t e time and/or space c o o r d i n a t e s i n a g i v e n v i e w i n g space. 3 - E i t h e r i t s t i m e or space c o o r d i n a t e s may be t i e d t o (d-e c l a r e d synonomous w i t h ) the r e s p e c t i v e c o o r d i n a t e s o f another hook, and 21 4- A hook i s p a r t o f the home space i n which i t i s o r i g i n a l l y d e f i n e d . The p o i n t o f hooks, t h e i r r e a s o n f o r b e i n g , i s to make i t r e l a t i v e l y easy t o s p e c i f y mappings from home spaces i n t o v i e w i n g spaces ( p r o p e r t i e s (2) and ( 4 ) ) , and t o f a c i l i t a t e c o o r d i n a t i o n and s y n c h r o n i z a t i o n o f ev e n t s i n v a r i o u s spaces ( p r o p e r t i e s (1) and ( 3 ) ) . A r e v i e w o f the p r e v i o u s examples w i l l show hooks b e i n g used i n b o t h o f these r o l e s . For c o n v e n i e n c e , we may assume t h a t e v e r y b i t o f a n i m a t i o n , even s t a t i c images, c o n t a i n s a t l e a s t one hook, which by c o n v e n t i o n r e f e r s t o the b i t ' s o r i g i n i n time and space. DATA EXTRACTORS A second a d d i t i o n t o the con c e p t o f g r a p h i c p r o c e s s e s i s th e c l a s s o f d a t a e x t r a c t o r s . The i d e a i n d a t a e x t r a c t i o n i s t o s p e c i f y where d a t a i s t o be f o u n d , r a t h e r than what the d a t a i s . For example, i n s p e c i f y i n g a s t a t i c image which i s t o f i t i n w i t h some a l r e a d y d e f i n e d background, i t may be de-s i r a b l e t o e x p e r i m e n t w i t h the s i z e o f the new o b j e c t . To f a c i l i t a t e t h i s , we may b u i l d i n t o the d e f i n i t i o n o f the new o b j e c t t h a t i t i s t o take a s c a l e parameter from a knob. T h i s e f f e c t i v e l y s p e c i f i e s a map from the o b j e c t ' s home space i n t o t h e v i e w i n g space c o n t a i n i n g the background t o be matched, but i t does n o t s p e c i f y what the mapping i s . Or, one c o u l d d e s c r i b e the s i t u a t i o n by s a y i n g t h a t the c a l l t o a knob 22 s p e c i f i e s where a s c a l i n g f u n c t i o n i s t o be, and where to loo k f o r t he f u n c t i o n , but doesn't r e a l l y s p e c i f y the f u n c t i o n . The c a l l f o r use o f a knob i s a d a t a e x t r a c t o r : when i t i s i n t e r p r e t e d i n the a p p r o p r i a t e c o n t e x t (the d i s p l a y o f the a n i m a t i o n ) , i t w i l l e x t r a c t d a t a from the s p e c i f i e d knob t o produce a s p e c i f i c mapping f u n c t i o n . Data e x t r a c t o r s may a l s o be a t t a c h e d t o o t h e r s o u r c e s o f i n f o r m a t i o n . For example, p o s i t i o n a l i n f o r m a t i o n may be e x t r a c t e d from a s k e t c h . To e f f e c t t h i s , we would name a p o i n t i n an a n i m a t i o n (such as i t s v i s u a l c e n t r e ) , and s p e c i f y t h a t the named p o i n t i s t o be l o c a t e d a t p o s i t i o n s i n the v i e w i n g space which f a l l a l o n g some g i v e n c u r v e i n the v i e w i n g s p ace. We might s p e c i f y t h a t the cu r v e i s to be . d i v i d e d i n t o 200 even segments, and t h a t s u c c e s s i v e segments are t o p r o v i d e the p o s i t i o n o f the named p o i n t i n 200 s u c c e s s i v e frames o f the o v e r a l l a n i m a t i o n . Thus the v i s u a l c e n t r e o f the a n i m a t i o n w i l l appear t o t r a c k the c u r v e i n the v i e w i n g space over a p e r i o d o f t i m e . The i d e n t i c a l v i s u a l e f f e c t can be a c h i e v e d by e x p l i c i t l y i d e n t i f y i n g the 200 p o i n t s , and s e t t i n g up 200 s e p a r a t e mappings u s i n g hooks, and f u r t h e r s p e c i f y i n g t h a t the a n i m a t i o n i s t o c y c l e t h r o u g h the 200 so d e f i n e d mappings. In t h i s c a s e , t h e r e i s no r e a l d i f f e r e n c e between u s i n g a d a t a e x t r a c t o r r a t h e r t h a n hooks, but t h e r e i s an enormous l o s s o f c o n v e n i e n c e o f s p e c i f i c a t i o n . In the p r e v i o u s example, 23 however, s i n c e f u t u r e r e a d i n g s o f some knob are not a v a i l a b l e , the d a t a e x t r a c t o r cannot be r e p l a c e d by an e q u i v a l e n t s e t o f hook-induced mappings. ARC WELDING A t h i r d t e c h n i q u e f o r c r e a t i n g g r a p h i c p r o c e s s e s i s " a r c w e l d i n g " . A r c - w e l d i n g i s the mapping o f a cur v e ( a r c ) i n a home space t o an a r c i n a v i e w i n g space a l o n g the two a r c s ' e n t i r e l e n g t h s . In g e n e r a l , the two a r c s w i l l not have the same shape, so one o f them w i l l have to be d i s t o r t e d t o con-form t o the o t h e r . We w i l l choose the c o n v e n t i o n t h a t the home-space a r c w i l l be d i s t o r t e d . The d i s t o r t i o n o f the home space a r c i s embedded i n the whole home space. For example, i f a l i n e i n a home space i s welded t o a c i r c l e i n a v i e w i n g space i n such a way t h a t "up" i s t r a n s f o r m e d i n t o " i n s i d e " , a l l the items i n the home space which were above the unwelded l i n e end up i n s i d e the c i r c l e . In some ways, a r c - w e l d i n g i s s i m i l a r t o d e f i n i n g mappings w i t h hooks or w i t h d a t a e x t r a c t o r s . For example, we c o u l d i n the above example t h i n k o f the c i r c l e and the l i n e as h a v i n g innumerable hooks a l o n g t h e i r l e n g t h , and then h o o k i n g the c o r r e s p o n d i n g hooks t o g e t h e r . But "innumerable hooks" i s a tr o u b l e s o m e c o n c e p t , f o r i t l e a d s t o the need f o r innumerable h o o k - i n d u c e d mappings, which w i l l n o t be c o n s i s t e n t i n t h e i r e f f e c t s on the sp a c e . 2 4 r f b FIGURE IV : The E f f e c t s o f W e l d i n g an A r c t o a C i r c l e A r c w e l d i n g i s a l s o s i m i l a r t o d a t a - e x t r a c t i o n , i n t h a t a t e c h n i q u e f o r g e t t i n g d a t a from a s o u r c e i s b e i n g s p e c i f i e d . But t h e i n t e n t i o n o f d a t a - e x t r a c t i o n was t o g e t s i n g l e parame-t e r s from some s o u r c e , n o t t o d e f i n e e n t i r e t r a n s f o r m a t i o n s on s p a c e s . As an e x t e n s i o n o f t h e c o n c e p t o f a r c - w e l d i n g , we may t h i n k o f a whole t i m e s e r i e s o f a r c w e l d s . A g a i n u s i n g the example o f w e l d i n g a l i n e segment t o a c i r c l e , we may c o n c e i v e a s e r i e s o f i n t e r m e d i a t e t r a n s f o r m a t i o n s , each i n d u c e d by the a r c - w e l d o f t h e l i n e t o a c u r v e somewhere i n t e r m e d i a t e between a l i n e and a c i r c l e . A l t e r n a t i v e l y , we may t h i n k o f w e l d i n g s u r f a c e s i n space-t i m e t o g e t h e r , w i t h each s l i c e t h r o u g h t h e t i m e a x i s b e i n g one element o f t h e t i m e s e r i e s mentioned above. These two v i e w s o f e x t e n d e d a r c - w e l d i n g a r e e q u i v a l e n t i n t h e i r d e s c r i p t i v e power, b u t each has i t s own advantages i n terms o f c o n c e p t u a l 25 ease o f use. The s u r f a c e - w e l d i n g concept a l l o w s one to t h i n k i n terms o f one c o n t i n u o u s mapping, but t h a t mapping i s i n s p a c e - t i m e , r a t h e r than i n j u s t space or i n t i m e . The t i m e - s e r i e s view a l l o w s one to t h i n k i n the s i m p l e r terms o f space o n l y mappings, but r e q u i r e s a t l e a s t "many" (one per frame) such mappings, or an innumerable q u a n t i t y o f them (one f o r each " p o i n t " i n t i m e ) . SUBSTITUTIONS In a d d i t i o n to the c r o s s - r e f e r e n t i a l o r g a n i z a t i o n p r i n c i p l e s d e s c r i b e d i n the above p a r a g r a p h s , we may d e f i n e , a nother c l a s s o f t o o l s f o r d e f i n i n g g r a p h i c p r o c e s s e s , namely s u b s t i t u t i o n s . The s i m p l e s t type o f s u b s t i t u t i o n i s home-space f o r home-space. Suppose we have two home s p a c e s , each c o n t a i n i n g , a hook. Suppose f u r t h e r t h a t one o f the home spaces has been hooked i n t o some v i e w i n g space. Then, we may j u s t unhook i t and s u b s t i t u t e the hook i n the other.home space. The v i s u a l e f f e c t w i l l be t h e s u b s t i t u t i o n o f whatever o b j e c t i s i n t h e second space f o r whatever o b j e c t was i n the f i r s t space i n the o v e r a l l a n i m a t i o n . The b a s i s f o r s u b s t i t u t i o n s o f t h i s t y pe i s t h e f a c t t h a t mappings i n d u c e d by hooks can be thought o f as d e f i n e d i n terms o f the names o f the hooks, r a t h e r than i n terms o f the hooks t h e m s e l v e s . 26 FIGURE V: A Few I n t e r m e d i a t e S tages i n an A r c - w e l d i n g Sequence. FIGURE V I : Exten d e d A r c - w e l d i n g as s u r f a c e w e l d i n g and as Time S e r i e s . 27 In the example of the runner developed i n a p r e v i o u s s e c -t i o n , we c o u l d s u b s i t u t e a space c o n t a i n i n g t u r n i n g wheels f o r the space c o n t a i n i n g l e g s . Popeye c a r t o o n s from the 1940's used t h a t e x a c t s u b s t i t u t i o n to good(?) e f f e c t . More i m p o r t a n t than d u p l i c a t i n g Popeye c a r t o o n s i s the i d e a t h a t a name-for-name s u b s t i t u t i o n i n t h e d e s c r i p t i o n o f a g r a p h i c p r o c e s s r e s u l t s i n an o b j e c t - f o r - o b j e c t s u b s t i t u t i o n i n t h e a n i m a t i o n d e s c r i b e d . Another type o f s u b s t i t u t i o n i n v o l v e s c h a n g i n g the a b s o l u t e time or space d e f i n i t i o n s g i v e n to some o f the hooks. I n t h e example o f t h e r u n n e r , a l l t h a t i s n e c e s s a r y t o e f f e c t speed-ups and slow-downs i n the r u n n e r ' s p r o g r e s s i s r e a s s i g n m e n t o f the t ime c o o r d i n a t e s o f the hooks t h a t d e f i n e t h e ends o f the s t e p s . In t h i s c a s e , we are c h a n g i n g the mappings, r a t h e r than what the mappings r e f e r t o , and a g a i n we are u s i n g the f a c t t h a t the mappings are d e f i n e d i n terms o f names, r a t h e r than v a l u e s o f hooks. U s i n g t h e s e two t y p e s o f s u b s t i t u t i o n s , we may d e f i n e q u i t e q u i c k l y an a n i m a t i o n which would be r a t h e r t e d i o u s by c o n v e n t i o n a l t e c h n i q u e s : We w i s h t o show a f o o t r a c e between two p e o p l e , who we may c a l l Joe and J o s e p h i n e . F i r s t , we d e f i n e Joe by a t t a c h i n g a head t o t h e r u n n i n g t o r s o d e v e l o p e d b e f o r e . We d e f i n e J o s e p h i n e by s u b s t i t u t i n g a new t o r s o f o r the one we gave J o e , and a t t a c h i n g an a p p r o p r i -a t e head. 23 Now, we t i e the e n d p o i n t s o f the two a n i m a t i o n s t o g e t h e r . We see now a dead h e a t , w i t h the c o n t e s t a n t s matching each o t h e r s t e p f o r s t e p . U s i n g the time s u b s t i t u t i o n s o f the p r e c e d i n g p a r a g r a p h s , we may have Joe p u l l ahead e a r l y i n the r a c e , and then have J o s e p h i n e c a t c h up l a t e r . But then we have a s t r a n g e r a c e i n the sense t h a t each s t e p , no ma t t e r how l o n g i t t a k e s , i s the same l e n g t h . Going back t o J o e , we may change the space v a l u e s a s s o c i a t e d w i t h the hooks a t the ends o f the i n d i v i d u a l s t e p s , so t h a t when he i s s t e p p i n g q u i c k l y , h i s s t r i d e s a re l o n g e r . R i g h t i n the m i d d l e o f Joe' s r a c e , we may g i v e him one v e r y s l o w , v e r y s h o r t s t e p ( i . e . we make him s t u m b l e ) . Thus we p r o v i d e the v i s u a l m o t i v a t i o n f o r the slowdown which a l l o w s J o s e p h i n e t o c a t c h up. Now we reward J o s e p h i n e f o r not s t u m b l i n g by h a v i n g her win the r a c e by one s t e p . To do t h i s , we s i m p l y t i e the hook a t the end o f her s e c o n d - t o - l a s t s t e p t o the hook a t the end o f J o e ' s l a s t s t e p . Thus she c o v e r s the space t h a t Joe c o v e r s i n one l e s s s t e p , and i n c o r r e s p o n d i n g l y l e s s t i m e . The p o i n t o f t h i s example i s t h a t we have been a b l e t o use a l r e a d y e x i s t i n g m a t e r i a l s v e r y f l e x i b l y t o d e s c r i b e new ones. I t i s o n l y when ite m s r e a l l y d i f f e r ( J o e ' s head and J o s e p h i n e ' s ) t h a t we had t o d e s c r i b e them i n d e p e n d e n t l y . The language we used a l l o w e d the new ite m s t o be e x p r e s s e d i n terms o f t h e i r r e l a t i o n s h i p s t o t h e i r p r e d e c e s s o r s and t o each o t h e r , r a t h e r t h a n as s e p a r a t e e n t i t i e s . The e n t i r e d e f i n i t i o n was made i n i t e r a t i v e s t a g e s ( f i r s t the o v e r a l l 29 r a c e , then J o e ' s r a c e , then J o s e p h i n e ' s , then the t e n t a t i v e d e c i s i o n t o make i t a . t i e , then J o e ' s s t u m b l e , and then the d e c i s i o n t o l e t J o s e p h i n e win.) S u b s t i t u t i o n s , r a t h e r than s t a r t i n g o v e r , were used t o proceed from stage to s t a g e . Each m a p p i n g - d e f i n i n g t e c h n i q u e g i v e s r i s e t o a c l a s s o f s u b s t i t u t i o n s . For example, wherever we have employed a d a t a e x t r a c t o r , we can s u b s t i t u t e one d a t a s o u r c e f o r a n o t h e r . T h i s i s u s e f u l because i t a l l o w s one t o use knobs, f o r exam-p l e , i n d e f i n i n g an a n i m a t i o n , and then s u b s t i t u t e the appro-p r i a t e c o n s t a n t v a l u e once the d e f i n i t i o n i s c o m p l e t e . L i k e w i s e , we can s u b s t i t u t e one a r c f o r another i n an a r c - w e l d , e n a b l i n g r e l a t i v e m o t i o n s t o be i t e r a t i v e l y d e f i n e d and r e f i n e d . GRAPHIC PROCESSES In the above d i s c u s s i o n s , we have seen t e c h n i q u e s f o r d e f i n i n g mappings i n t o v i e w i n g s p a c e s , and s u b s t i t u t i n g i n t o e x i s t i n g mappings. These t e c h n i q u e s are q u i t e u s e f u l f o r de-v e l o p i n g g r a p h i c p r o c e s s e s from s m a l l e r p a r t s . But t h e r e i s an o t h e r a s p e c t t o g r a p h i c p r o c e s s e s which may be even more i m p o r t a n t t h a n the f l e x i b i l i t y t h e y p r o v i d e i n u s i n g e x i s t i n g m a t e r i a l s . That a s p e c t i s the s o u r c e f o r the name " p r o c e s s " . I t i s p o s s i b l e t o b u i l d up a s e t o f mappings w i t h o u t any e x p l i c i t c o n s i d e r a t i o n o f what o b j e c t s are u l t i m a t e l y g o i n g to be i n t h e spaces c o n t a i n i n g the v a r i o u s hooks, a r c s , d a t a 3 0 s o u r c e s , e t c . , r e f e r r e d to by the mappings. Such a s e t of mappings i s t r u l y a d e s c r i p t i o n o f a p r o c e s s , r a t h e r than of a s p e c i f i c a n i m a t i o n , s i n c e the o b j e c t s t o be animated are not y e t s p e c i f i e d . But the r e l a t i o n s h i p s between the p a r t s , whatever t h e y may u l t i m a t e l y be, i s s p e l l e d o u t . The p r o c e s s has a l i f e independent of the a n i m a t i o n which i t d e s c r i b e s . Indeed, by s y s t e m a t i c s u b s t i t u t i o n s i n t o a g i v e n p r o c e s s , whole f a m i l i e s o f a n i m a t i o n s w i l l r e s u l t , which w i l l be r e l a t e d by w h i c h e v e r f e a t u r e s o f s t r u c t u r e are b u i l t i n t o the p a r e n t p r o c e s s , and which w i l l d i f f e r i n whatever d e t a i l s are s p e c i f i c t o the v a r i o u s s u b s t i t u t i o n i n s t a n c e s . T h i s c a p a b i l i t y i s perhaps l e s s e x c i t i n g i n the realm of r e p r e s e n t a t i o n a l a n i m a t i o n than i n the realm of a b s t r a c t a n i m a t i o n , s i n c e i n the f o r m e r , the o b j e c t s themselves have meanings, which w i l l , i n g e n e r a l , d i c t a t e most of the d e t a i l s o f the r e l a t i o n s h i p s between them. For example, i n b u i l d i n g the a n i m a t i o n o f a r u n n e r , one i s not much tempted t o e x p e r i m e n t w i t h the l o c a t i o n o f the hook by which the arm i s j o i n e d t o the s h o u l d e r . I t would make l i t t l e v i s u a l sense t o see t h i s c o n n e c t i o n made a t t h e w r i s t or elbow. But i f one i s i n t e r e s t e d i n a n i m a t i n g a b s t r a c t shapes, then s i n c e the shapes th e m s e l v e s p l a c e no c o n s t r a i n t s on the r e l a t i o n s h i p s betweens i t e m s , the r e l a t i o n s h i p s imposed by the a n i m a t o r a r e a l l the more i m p o r t a n t . Suppose, f o r example, t h a t one wished t o e x p l o r e a v i s u a l analogue o f the 17th c e n t u r y m u s i c a l c o n c e p t o f the fugue. B e f o r e s p e c i f y i n g what 31 s p e c i f i c v i s u a l m o t i f s a re t o take the p l a c e s o f the fugue v o i c e s , i t might be w e l l t o s p e c i f y the o v e r a l l a r c h i t e c t u r e o f the p i e c e . That i s an e n t i r e l y r e a s o n a b l e way t o p r o c e e d , s i n c e t h e r e i s not a p a t t r a n s l i t e r a t i o n o f the fugue's r e l a t -i o n a l c o n c e p t s i n t o the v i s u a l domain, so the e x p e r i m e n t a l ( i n t e r e s t i n g ) p a r t o f the e x e r c i s e from the a n i m a t o r ' s v i e w p o i n t i s t h e i n v e n t i o n o f thes e t r a n s l i t e r a t e d r e l a t i o n s h i p s . Some o f the fugue-form r e l a t i o n s h i p s can p r o b a b l y be t r a n s c r i b e d i n t o e s s e n t i a l l y c h o r e o g r a p h i c v i s u a l r e l a t i o n s h i p s . The common d e v i c e o f h a v i n g a l l save one o f the v o i c e s s l i p i n t o a s i m p l e harmonic " h o l d i n g p a t t e r n " w i t h no p a r t i c u l a r r h y t h m i c i n t e r e s t , w h i l e one v o i c e goes on a f a n c i f u l f l i g h t t h r o u g h a v a r i e t y o f keys and r h y t h m i c p a t t e r n s , f o r example might show up v i s u a l l y as most o f the m o t i f s l i n i n g up i n a row, moving s l o w l y and i n s t e p , g e t t i n g s m a l l e r and dimmer, w h i l e one s e l e c t e d m o t i f grows t o f u l l s c r e e n s i z e , f l a s h e s a l o t , and z i p s around w i t h e v e r - c h a n g i n g v e l o c i t y . To t r y t h i s o u t , one would c a l l up h a l f a dozen or so dummy o b j e c t s (one f o r each v o i c e ) , and a s s i g n them t r a j e c t o r i e s , b r i g h t n e s s e s , e t c . , i n the r e l a t i o n s h i p s d e s c r i b e d . I f t h i s produced p r o m i s i n g g r a p h i c s , one c o u l d then go on t o r e f i n e the motions i n d e t a i l , and l a t e r t o the s p e c i f i c d e s i g n o f the o b j e c t s t o be used as m o t i f s . Working the o t h e r way around, i . e . from the d e s i g n o f t h e s p e c i f i c m o t i f s t o the o v e r a l l m o t i o n , would n ot work as w e l l , 32 s i n c e f o r example, one would have no i d e a a t the o u t s e t o f the e x e r c i s e t h a t they would u l t i m a t e l y be r e q u i r e d to l o o k good w h i l e s t a n d i n g q u i e t l y a t such and such a p o s i t i o n on the s c r e e n . What o b j e c t s are used t o "dummies" i s n ' t v e r y i m p o r t a n t . L i t t l e t r i a n g l e s or s quares w i l l do f i n e . What i s i m p o r t a n t i s t h e a b i l i t y t o d e s i g n o v e r a l l t i me and space s t r u c t u r e s i n terms o f i t e m s which have not y e t been s p e c i f i e d i n any d e t a i l . As we c o n t i n u e the fugue example, t h i s c a p a b i l i t y becomes even more i m p o r t a n t . Having d e s i g n e d t h r e e or f o u r f u g u e - f l a v o u r e d p a t t e r n i n g s , we can then s t a r t a s s i g n i n g s p e c i f i c o b j e c t s t o the dummies. One g r a p h i c p r o c e s s would be used s e v e r a l p l a c e s i n the o y e r a l l . s t r u c t u r e , but i n each appearance, d i f f e r e n t a s s i g n m e n t s would be made of the m o t i f - o b j e c t s t o the dummies. T h i s would a u t o m a t i c a l y produce the most i m p o r t a n t s t r u c t u r a l f e a t u r e o f the fugue form, name-l y t h e f a c t t h a t each m o t i f g e t s i t s chance t o appear i n a l l the r o l e s , and i n a l l r e l a t i o n s h i p s t o the o t h e r m o t i f s . In the c o n v e n t i o n a l a n i m a t i o n scheme, the f a c t t h a t we are w o r k i n g w i t h s e v e r a l i n s t a n c e s o f the same s t r u c t u r a l r e l a t i o n s would be an i n t e r e s t i n g s i d e l i g h t a t b e s t , because the c o n v e n t i o n a l t e c h n o l o g y does not p r o v i d e any mechanism f o r e x p l o i t i n g s t r u c t u r a l sameness. That i s , the f a c t t h a t one g r a p h i c p r o c e s s was b e i n g used and r e used does not a l l o w the a n i m a t i o n t o be done i n any fewer c e l l s , or w i t h any fewer runs t h r o u g h th e i n k i n g - p a i n t i n g - s h o o t i n g - c u r s i n g c y c l e . 33 To complete the fugue example, once the assignment o f m o t i f s have been made t o dummy o b j e c t s , we have a rough c u t o f the a n i m a t i o n o f the fugue. We can then go back and modify by s u b s t i t u t i o n s t he s p e c i f i c mappings or m o t i f s , c r e a t i n g i t e r a t i v e l y e x a c t l y t h e e f f e c t s d e s i r e d . T h i s i s a tune-up p r o c e s s , s i m i l a r i n i t s f l a v o u r t o g o i n g through an almost completed fugue, c h a n g i n g the odd sharp t o a n a t u r a l , c r e a t i n g or r e l e a s i n g the o c c a s i o n a l s u s p e n s i o n , c r u m p l i n g up and r e w r i t i n g the odd page. Even though here we are d o i n g an e d i t i n g - f l a v o u r e d t a s k on an e s s e n t i a l l y complete p i e c e o f work, the use o f dummy ob-j e c t s and a b s t r a c t p r o c e s s e s w i l l s t i l l be of use. For exam-p l e , i n o r d e r t o g e t the r e l a t i o n s h i p between two m o t i f s j u s t r i g h t , we c o u l d s i m p l i f y t h e d i s p l a y by dummying out a l l the r e s t o f the m o t i f s , and work on j u s t the troublesome p a i r . WORKING STYLE B e f o r e l e a v i n g t he s u b j e c t o f g r a p h i c p r o c e s s e s , a few no t e s a re i n o r d e r about the wo r k i n g s t y l e t hey promote i n the d e s i g n o f the a n i m a t i o n . In t h e c o n v e n t i o n a l t e c h n o l o g y , the animator goes from s t o r y board t o s k e t c h e s f o r i n d i v i d u a l c e l l s . There i s no way to work o u t t e m p o r a l and s p a t i a l r e l a t i o n s e x c e p t t o b u i l d up the s k e t c h e s which r e p r e s e n t them. S h o r t - c u t t e c h n i q u e s have been d e v e l o p e d , but t h e s e do not change the b a s i c f a c t t h a t 34 n o t h i n g i s v i s i b l e u n t i l a s i g n i f i c a n t number o f c e l l s have been drawn. In d e s i g n i n g g r a p h i c p r o c e s s e s , on the o t h e r hand,, one can use dummy o b j e c t s from the s t a r t . A p r o c e s s , once d e f i n e d , i s v i e w a b l e as an a n i m a t i o n , so the animator can b e g i n i m m e d i a t e l y u s i n g the r e s u l t s o f the work so f a r t o g u i d e the r e s t o f t h e work. I n d e e d , a whole a n i m a t i o n p r o j e c t can be seen as d e f i n i -t i o n and r e f i n e m e n t o f a s e t o f p r o c e s s e s . At any i n s t a n t , t h e p a r t l y f i n i s h e d work i s a v a i l a b l e f o r i n s p e c t i o n . . V a r i o u s " t o o l s " f o r d e f i n i t i o n and r e f i n e m e n t can be brought t o bear i n v i r t u a l l y any o r d e r . In t h i s , d e f i n i n g a g r a p h i c p r o c e s s i s s i m i l a r t o p a i n t i n g or s c u l p t i n g i n a p l a s t i c medium. The r e s u l t s o f changes are i m m e d i a t e l y a v a i l a b l e , a l l o w i n g r e v i s i o n s t o be made at the time the need f i r s t becomes c l e a r . P a r t i a l r e s u l t s , i n the form of p a r t i a l l y s p e c i f i e d p r o c e s s e s , can be d e v e l o p e d i n any number of ways. T a k i n g one b r a n c h i n the development o f a p i e c e o f work does not p r e c l u d e t a k i n g o t h e r s . T h i s i s an advantage t h a t the g r a p h i c p r o c e s s p aradigm o f f e r s over many o t h e r media. In p a i n t , f o r example, t h e r e i s t h e c a n v a s . I t t a k e s c o n s i d e r a b l e work t o c r e a t e an-o t h e r a l m o s t i d e n t i c a l canvas w i t h o n l y some minor change, l i k e s u b s t i t u t i n g red f o r g r e e n . The s i t u a t i o n w i t h g r a p h i c p r o c e s s e s i s c l o s e r t o music c o m p o s i t i o n or w r i t i n g . At any t i m e , a copy o f a h a l f - f i n i s h e d m a n u s c r i p t may be t a k e n , and each copy may be d e v e l o p e d i n d e p e n d e n t l y o f the o t h e r . The r e a s o n t h i s p o s s i b i l i t y e x i s t s w i t h g r a p h i c p r o c e s s e s and not 35 w i t h p a i n t i n g s i s t h a t t h e r e i s a s e p a r a t i o n between the p r o c e s s per se and the a n i m a t i o n which i t d e s c r i b e s . Another d e s i r a b l e p r o p e r t y o f u s i n g g r a p h i c p r o c e s s e s as a way o f b u i l d i n g a n i m a t i o n s i s t h a t t h e r e i s v i r t u a l l y no " c o r r e c t " o r d e r f o r d o i n g the v a r i o u s t a s k s t h a t must be done. One i s f r e e t o s t a r t by d e f i n i n g m o t i o n s f i r s t , or t i m i n g s , or d e t a i l e d s t i l l images, or to do a b i t o f work i n each a r e a , d e f e r i n g the d e c i s i o n o f when to do what u n t i l the work i t s e l f d i c t a t e s a d e c i s i o n . We may summarize the d i s c u s s i o n of g r a p h i c p r o c e s s e s as f o l l o w s : The a n i m a t o r has a v a i l a b l e a c o l l e c t i o n o f t e c h n i q u e s - * f i t o u R ' s ; ' d a t a - e x t r a c t i o n , a r c - w e l d i n g ) f o r c r e a t i n g mappings from home spaces t o v i e w i n g s p a c e s . These are used t o s p e c i f y a framework f o r a g i v e n a n i m a t i o n * S u b s t i t u t i o n o p e r a t o r s are used t o b r i n g the framework i n t o l i n e w i t h the a r t i s t ' s c o n c e p t f o r the f i n a l a n i m a t i o n . The p r o c e s s e s so d e f i n e d can be thought o f e i t h e r as s p e c i f i c d e s c r i p i o n s o f s p e c i f i c a n i m a t i o n s , or as r e c i p e s f o r a n i m a t i o n s , p a t t e r n s from w h i c h f a m i l i e s o f s t r u c t u r a l l y r e l a t e d a n i m a t i o n s can be p r o d u c e d . A g i v e n g r a p h i c p r o c e s s may be s p e c i a l i z e d i n t o any number o f a n i m a t i o n s , and i s r e - u s a b l e w i t h or w i t h o u t m o d i f i c a t i o n s . The p r o c e s s may be d e f i n e d i n any w o r k i n g s t y l e a p p r o p r i a t e t o i t s s u b j e c t and t o t h e a n i m a t o r ' s t a s t e . TOWARDS THE DESIGN OF A COMPUTER ANIMATION SYSTE * * * TOWARDS THE DESIGN OF A COMPUTER ANIMATION SYSTEM INPUT OF GRAPHIC DATA ANIMATION TECHNIQUES SELECTION DESCRIPTIONS P-CURVES KEYFRAME ANIMATION SKELETON INTERPOLATION MAPPING AND SYNCHRONIZATION TECHNIQUES 37 In the p r e v i o u s s e c t i o n , we p r e s e n t e d i d e a s which are i n v o l v e d i n the c o n c e p t i o n and development o f a n i m a t i o n s . In t h i s s e c t i o n , we s h a l l examine some p o s s i b l e i m p l e m e n t a t i o n s o f some o f thes e i d e a s i n a c o m p u t e r i z e d environment. Two systems , GRAX and SUPER, are d i s c u s s e d i n some d e t a i l . GRAX was w r i t t e n as an attempt t o work out some o f the i d e a s p r e s e n t e d i n the f i r s t s e c t i o n o f t h i s t h e s i s . SUPER w i l l be a r e - w o r k i n g o f the same b a s i c i d e a s , c o r r e c t i n g d e s i g n f l a w s i n GRAX and b e t t e r r e a l i z i n g the concept o f the g r a p h i c p r o c e s s . GRAX runs on a PDP 11/34 w i t h 28K 1 6 - b i t words o f memory, a c a r t r i d g e d i s k , a g r a p h i c s t a b l e t , s e v e r a l knobs connected t h r o u g h a a n a l o g - t o - d i g i t a l c o n v e r t e r , and an Evans and S u t h e r l a n d P i c t u r e System I . SUPER does n o t e x i s t , w hich means t h a t i t can be c o n s i d e r e d t o run on any u n s p e c i f i e d hardware, and to produce any d e s i r e d q u a l i t y o f g r a p h i c s . A l t h o u g h i t d o e sn't e x i s t , i f i t d i d , i t would a l m o s t c e r t a i n l y run on a h o t r o d o f the Xerox R e s e a r c h I n t e r i m Dynabook w i t h a h i g h q u a l i t y c o l o u r d i s p l a y , w hich has a 1500-2000% q u i c k e r p r o c e s s o r and memory th a n the PDP 11/34. The u n d e r l y i n g system programming l a n -guage f o r SUPER would be SMALLTALK, or a s u c c e s s o r t o SMALLTALK wh i c h p r e s e r v e s and expands t h e c l a s s / i n s t a n c e s t r u c t u r e s and the message paradigm o f command p r o c e s s i n g . Though SUPER does not e x i s t , w hich means t h a t t h i s document i s 38 the o n l y d e s c r i p t i o n o f i t , t h e r e a re d e s c r i p t i o n s a v a i l a b l e 1,1 o f SMALLTALK and the I n t e r i m Dynabook . From the a n i m a t o r ' s v i e w p o i n t , GRAX i s a c o l l e c t i o n o f t o o l s f o r b u i l d i n g and r e f i n i n g g r a p h i c p r o c e s s e s . Each com-mand e i t h e r d i r e c t l y a f f e c t s the p r o c e s s b e i n g b u i l t , or changes the a n i m a t o r ' s w o r k i n g environment so t h a t o t h e r com-mands may be used. Thus GRAX promotes a wo r k i n g s t y l e l i k e t h a t a p p r o p r i a t e t o a wood shop or an auto mechanic's shop. At any i n s t a n t , the p a r t i a l l y completed work i s a v a i l a b l e f o r f u r t h e r w o r k i ng w i t h any t o o l i n the shop. The a n i m a t o r , l i k e the c r a f t s m a n , s e l e c t s the o r d e r i n which the s t e p s are t a k e n , and can e v a l u a t e the r e s u l t s o f any s t e p b e f o r e t a k i n g the n e x t one. When the system i s f i r s t s t a r t e d , the animator i s g r e e t e d by a menu c o n t a i n i n g a l m o s t t h i r t y commands. Some o f t h e s e , such as DRAW, are used t o s t a r t work on a new o b j e c t . O t h e r s , l i k e ANIMATIONS, g i v e the animator a c c e s s t o a new menu o f commands u s e f u l f o r wo r k i n g w i t h e x i s t i n g m a t e r i a l s . Commands are grouped t o g e t h e r i n t o " l a n g u a g e s " , which are s e t s o f o p e r a t i o n s which p e r f o r m c o n c e p t u a l l y r e l a t e d t a s k s , and can a l l be a c c e s s e d from one menu. The languages i n GRAX a r e : 1- The t o p - l e v e l menu—A p o t p o u r i o f commands and a c c e s s t o the o t h e r menus. 39 2- SAVE&FETCH—for moving items between the a n i m a t o r ' s a c t i v e workspace and the permanent l i b r a r y f i l e s m a i n t a i n e d on d i s k . 3- K E Y F R A M E S — d e f i n i n g and e d i t i n g keyframe a n i m a t i o n s . 4- A N I M A T I O N S — d e f i n i n g and e d i t i n g p - c u r v e a n i m a t i o n s . In g e n e r a l , as soon as a command i s i s s u e d , i t s e f f e c t i s v i s i b l e t o the a n i m a t o r . For example, the MODIFY command causes an item t o change s i z e a c c o r d i n g t o the c u r r e n t s e t t i n g o f a knob. As soon as the command i s i s s u e d , the item jumps to the s i z e s e t on the knob. Then, the animator a d j u s t s the s i z e w i t h the knob u n t i l the image i s s a t i s f a c t o r y . T h i s i s c o n t r a s t e d w i t h the s i t u a t i o n where a s c a l e parameter i s spe-c i f i e d , but t h e r e i s no v i s u a l i n d i c a t i o n o f i t s e f f e c t u n t i l some o t h e r a c t i o n (such as r e c o m p i l a t i o n ) i s pe r f o r m e d . At any t i m e , t h e r e i s a " c u r r e n t " o b j e c t i n the a n i m a t o r ' s a c t i v e workspace. Many commands, such as MODIFY, a p p l y t o the c u r r e n t o b j e c t . O t h e r s , l i k e DRAW, c r e a t e a new c u r r e n t o b j e c t . Some commands, l i k e GROUP ( c o n c a t i n a t e p i c t u r e s ) a l l o w the animator t o s e l e c t the o b j e c t s t o which the command a p p l i e s . Such s e l e c t i o n can be made by t y p i n g an o b j e c t ' s name, or by p o i n t i n g t o i t w i t h the s t y l u s . A few commands, l i k e FETCH ( r e t r i e v e an item from a l i b r a r y f i l e ) a c c e p t o n l y typed i n p u t . In any c a s e , the o b j e c t r e s u l t i n g from the e x e c u t i o n o f a command becomes the new c u r r e n t o b j e c t . 40 SUPER w i l l r e t a i n the g e n e r a l c h a r a c t e r o f GRAX, a l t h o u g h i t w i l l have more languages and more p o w e r f u l commands. As was mentioned above, GRAX and SUPER are d e s i g n e d around t h e a n a l y s i s p r e s e n t e d i n t h e p r e c e e d i n g s e c t i o n . In the p r e s e n t s e c t i o n , t h e s e s y s t e m s , a l o n g w i t h o t h e r s , w i l l be examined t o see how w e l l they r e p r e s e n t or f a i l to r e p r e s e n t t h e c o n c e p t s a s s o c i a t e d w i t h g r a p h i c p r o c e s s e s . There w i l l a l s o be a few comments on the v a r i o u s systems' o t h e r s t r e n g t h s and weaknesses. In t he case o f GRAX, some o f the s p e c i f i c s o f the i m p l e -m e n t a t i o n w i l l be d i s c u s s e d , w i t h an eye t o d e m o n s t r a t i n g the type o f problems and s o l u t i o n s a s s o c i a t e d w i t h i m p l e m e n t a t i o n o f g r a p h i c p r o c e s s e s . The d i s c u s s i o n s t a r t s w i t h a c o n s i d e r a t i o n o f g r a p h i c i n -put t e c h n i q u e s . A l t h o u g h t h i s i s not a p a r t i c u l a r l y i m p o r t a n t p a r t o f the g r a p h i c p r o c e s s p a r a d i g m , i t i s o b v i o u s l y i m p o r t a n t t o any a c t u a l computer system. The n e x t t o p i c w i l l be a n i m a t i o n s . The v a r i o u s systems w i l l be examined t o see what t o o l s t h e y o f f e r the animator f o r d e f i n i n g b a s i c mappings and t r a n s f o r m a t i o n s . F i n a l l y , each system's f a c i l i t i e s f o r b u i l d i n g complex t e m p o r a l and s p a c i a l maps from home t o v i e w i n g spaces w i l l be examined. 41 INPUT OF GRAPHIC DATA To open the d i s c u s s i o n , we s h a l l d e s c r i b e what type o f g r a p h i c i n p u t i s a v a i l a b l e i n GRAX and SUPER. GRAX, l i k e most o t h e r v e c t o r - d r a w i n g CRT system s , has a d a t a t a b l e t and s t y l u s . These are w e l l - s u i t e d t o i n p u t , i n t h a t t h e y a l l o w t h e user t o s k e t c h f r e e h a n d as w i t h a b a l l p o i n t pen, or t o use rubber-band l i n e s f o r more p r e c i s e d r a w i n g s . That i s , the maximum freedom from a r t i f i c i a l , s t r i c t l y c o m p u t e r - c r e a t e d d i f f i c u l t y i s a c h i e v e d . Memory, d i s p l a y b u f f e r , and speed l i m i t s make s h a d i n g so d i f f i c u l t i n GRAX t h a t no s p e c i a l f a c i l i t y e x i s t s f o r e n t e r i n g s h a d i n g or tone i n f o r m a t i o n . SUPER s u p p o r t s a much more c a p a b l e d i s p l a y t h a n GRAX, and t h e r e f o r e has more e l a b o r a t e i n p u t needs. The SUPER d i s p l a y ; i s a f u l l c o l o u r , h i g h r e s o l u t i o n CRT. The b a s i c i n p u t d e v i c e f o r g r a p h i c s i s s t i l l a t a b l e t , b u t t h e r e i s a l s o a James C l a r k - t y p e t h r e e d i m e n s i o n a l wand a v a i l a b l e . The l a t t e r i s used t o d e f i n e the geometry o f t h r e e d i m e n s i o n a l o b j e c t s , and the t a b l e t and s t y l u s a re used t o p r o v i d e s h a d i n g , t e x t u r i n g , c o l o u r , and b r i g h t n e s s i n f o r m a t i o n . The b a s i c programs are v a r i a n t s o f Xerox Research's p a i n t b r u s h system. I n GRAX, each s t a t i c o b j e c t i s g i v e n i t s own name, and may be f i l e d i n a named d i s k l i b r a r y under i t s name. There i s no p r o v i s i o n f o r f a m i l i e s o f o b j e c t s , as t h e r e i s i n B a e c k e r ' s Genesys, nor i s t h e r e a w e l l - d e f i n e d c o n c e p t o f an i n s t a n c e o f a c l a s s , such as i s a v a i l a b l e i n a language l i k e SMALLTALK. 42 There i s , however, the a b i l i t y t o form INSTANCES of a g i v e n p i c t u r e , which are p i c t u r e s which d i f f e r from the o r i g i n a l i n p o s i t i o n , o r i e n t a t i o n , or s c a l e ( d i f f e r e n t s c a l e f a c t o r s a l l o w e d a l o n g a s e t o f o r t h o g o n a l a x e s ) . T h i s , t o g e t h e r w i t h the e d i t i n g c a p a b i l i t i e s o f GRAX and the c a p a b i l i t y o f g r o u p i n g a r b i t r a r y g r a p h i c s t o g e t h e r i n t o a s i n g l e p i c t u r e g i v e s the system enough power e f f e c t i v e l y t o c r e a t e f a m i l i e s o f images. The a b i l i t y t o c r e a t e and use s e v e r a l named l i b r a r i e s g i v e s some semblance o f the i n s t a n c e - o f - a - c l a s s s t y l e . I n SUPER, t h e p a t t e r n a s p e c t o f each i n d i v i d u a l drawing i s made q u i t e e x p l i c i t , and GRAX's "INSTANCE" command i s expanded t o an e n t i r e command language. In a d d i t i o n t o s i m p l e l i n e a r t r a n s f o r m a t i o n s o f an image, a v a r i e t y o f shape, hue, and b r i g h t n e s s c o n t r o l l i n g t r a n s f o r m a t i o n s are p r o v i d e d . I t s h o u l d be noted t h a t SUPER bases i t s d e s c r i p t i o n o f o b j e c t s on b r i g h t n e s s ( t h e u s u a l b l a c k - a n d - w h i t e b r i g h t n e s s c o n c e p t ) , s a t u r a t i o n ( the " p u r i t y " o f a c o l o u r ) , and hue (the c o l o u r i t s e l f ) . T h i s system i s used r a t h e r t h a n the s t a n d a r d RED-GREEN-BLUE v i d e o language because i t c o r r e s p o n d s more c l o s e l y t o the c o n c e p t s u s u a l l y t a u g h t under the name " c o l o u r t h e o r y " i n a r t s c h o o l s , and seems t o c o r r e s p o n d t o p e o p l e ' s u n t r a i n e d i n t u i t i o n s about the n a t u r e o f c o l o u r s b e t t e r t h a n RED-GREEN-BLUE. One i m p l i c a t i o n o f t h i s c h o i c e o f d e s c r i p t i v e b a s i s i s 43 t h a t the i n d i v i d u a l a t t r i b u t e s o f a g i v e n c o l o u r can be i n d e -p e n d e n t l y m a n i p u l a t e d . In SUPER one has the c a p a b i l i t y o f d e f i n i n g r e g i o n s on the s u r f a c e o f o b j e c t s , and a p p l y i n g maps to t h o s e r e g i o n s o n l y . Thus f o r example, i t i s p o s s i b l e i n SUPER t o s t r i k e an i n s t a n c e o f a cube which d i f f e r s from the o r i g i n a l o n l y i n the s a t u r a t i o n o f the c o l o u r o f one f a c e . For each b a s i c g r a p h i c o b j e c t drawn i n by the a n i m a t o r , SUPER c r e a t e s a c l a s s d e f i n i t i o n v e r y much i n the f l a v o u r o f SMALLTALK c l a s s e s . An e x t e n s i o n o f the SMALLTALK message s t r u c t u r e b l u r s the d i s t i n c t i o n between commands which are messages t o c l a s s i n s t a n c e s and names f o r c l a s s i n s t a n c e s . Thus f o r example, h a v i n g d e f i n e d a cube c a l l e d CUBE1, one c o u l d c r e a t e a n o t h e r cube c a l l e d CUBE2 w i t h a command l i k e SET CUBE2 = CUBE1 BUT REDDER. But the name "CUBEl+REDDER" would be u s a b l e t h r o u g h o u t the system as a synonym f o r CUBE2. T h i s scheme o f d e f i n i t i o n means t h a t e v e r y o b j e c t has two t y p e s o f names, which we may c a l l the o b j e c t ' s " e v o l u t i o n a r y name", and i t s " proper name". The prop e r name ( e . g . CUBE2) w i l l be used most o f the t i m e , because most r e f e r e n c e s t o an o b j e c t are not i n t e n d e d as ways o f g e t t i n g a t i t s i n t e r n a l s t r u c t u r e . The e v o l u t i o n a r y name o f an o b j e c t w i l l c o n t a i n the i n f o r m a t i o n which went i n t o c r e a t i n g the o b j e c t , a r r a n g e d i n the s t r u c u t r e imposed by t h e c l a s s d e f i n i t i o n f o r the o b j e c t . When i t i s d e s i r e d t o r e f e r t o some s t r u c t u r a l a s p e c t o f the o b j e c t f o r the purpose o f e x t r a c t i n g some f e a t u r e , o r c r e a t i n g another o b j e c t which has a s p e c i f i e d r e l a t i o n t o some g i v e n s t r u c t u r a l 44 a s p e c t o f the o r i g i n a l , i t i s u s e f u l to r e f e r to the o b j e c t by e v o l u t i o n a r y name. A l s o , a t the l e v e l o f the programs which have t o make sense o f a l l t h i s , i t i s d e s i r a b l e t o have a u n i f o r m , w e l l worked out c a t e g o r i z a t i o n system b u i l t i n t o the programming language i n which the system i s w r i t t e n . The e v o l u t i o n a r y name of an o b j e c t w i l l be a v a i l a b l e f o r the a n i m a t o r ' s i n s p e c t i o n w i t h a SMALLTALK type o f c l a s s e d i t o r , or w i t h a LISP s t y l e p r e t t y - p r i n t f u n c t i o n . T h i s w i l l p r o v i d e the a n i m a t o r w i t h a c o n c i s e d e s c r i p t i o n i n an a n a l y t i c language o f what he/she has c r e a t e d i n a t a c t i l e - v i s u a l manner. T h i s s h o u l d be q u i t e v a l u a b l e f o r both p e d a g o g i c a l p u r p o s e s , and f o r r e f i n e m e n t o f g r a p h i c s . The d u a l naming scheme i s SUPER'S main t e c h n i q u e f o r f u l l y r e a l i z i n g t h e p a t t e r n a s p e c t o f o b j e c t s i n t h e i r home s p a c e s , w h i c h was d i s c u s s e d i n an e a r l i e r s e c t i o n . 45 ANIMATION TECHNIQUES The p o i n t o f an a n i m a t i o n system i s , o f c o u r s e , to animate images. In t h i s s e c t i o n , we s h a l l l o o k a t some o f the t e c h n i q u e s a v a i l a b l e f o r d o i n g t h i s . SELECTION DESCRIPTIONS The s i m p l e s t t y pe o f a n i m a t i o n i n a computer c o n t e x t i s j u s t a r e - i n t e r p r e t a t i o n o f the c o n v e n t i o n a l t e c h n o l o g y . G i v e n a s e t o f p i c t u r e s , one s p e c i f i e s a sequence i n which the p i c t u r e s a re t o be d i s p l a y e d . B a a c k e r ^ c a l l s t h i s type o f s p e c i f i c a t i o n a " s e l e c t i o n d e s c r i p t i o n " , and i n GENESYS t h e r e a r e g r a p h i c means f o r d e f i n i n g and r e f i n i n g s e l e c t i o n d e s c r i p -t i o n s . In GRAX, t h e r e i s no mechanism f o r e x p l i c i t l y c r e a t i n g a s e l e c t i o n sequence, b u t i t i s c e r t a i n l y w i t h i n the c a p a b i l i t y o f D e F a n t i ' s MACRO language t o s p e c i f y such a sequence?'^& GRAX does not have any mechanism f o r b u i l d i n g s e l e c t i o n d e s c r i p t i o n s . T h i s i s not p u r e l y o v e r s i g h t . In GRAX, the att e m p t was made t o do away w i t h t h a t p a r t i c u l a r c o n s t r u c t as a way o f t h i n k i n g about a n i m a t i o n s . Indeed, GRAX more or l e s s l a c k s any good ways o f t h i n k i n g on a frame-by-frame l e v e l . T h i s o m i s s i o n i s not so much a statement o f the a u t h o r ' s dogma as an e x p e r i m e n t . S i n c e t h e c o n v e n t i o n a l t e c h n o l o g y i s c o m p l e t e l y based on frame-by-frame d e s c r i p t i o n , which has some 46 v e r y s e v e r e drawbacks, and s i n c e GRAX attempts to l o o k a t new ways o f o r g a n i z i n g a n i m a t i o n s , i t was d e c i d e d not t o i n t r o d u c e t h e c o n v e n t i o n a l t e c h n i q u e u n t i l the need f o r t h a t t e c h n i q u e was c l e a r . For most a n i m a t i o n s , the c o n n e c t i o n between one frame and the n e x t i s w e l l d e s c r i b e d i n terms o f some t r a n s f o r m a t i o n a l p r i n c i p l e or a n o t h e r , r a t h e r t h a n by a d i s c r e e t - v a l u e d s e l e c t i o n p r i n c i p l e . But t h e r e are s i t u a t i o n s when a e s t h e t i c c o n s i d e r a t i o n s d i c t a t e a n o n - c o n t i n u o u s change from one i n s t a n t t o the n e x t . That i s , the c o n t i n u i t y i s a t some a e s t h e t i c o r s y m b o l i c l e v e l , r a t h e r t h a n a t a l e v e l e a s i l y s u s c e p t i b l e t o computer programming. The most o b v i o u s example o f such a t r a n s i t i o n i s a jump c u t from one scene to a n o t h e r . The i n a b i l i t y ofGRAX t o a c c e p t scenes which i n v o l v e c u t s i s n o t p a r t i c u l a r l y h a n d i c a p p i n g i n terms o f f i l m or v i d e o p r o d u c t i o n , s i n c e i t i s n o t a g r e a t i n c o n v e n i e n c e t o have t o do a s e t - u p f o r each scene. But i t i s not p o s s i b l e i n GRAX as i t now s t a n d s t o view an a n i m a t i o n made up o f more than one s c e n e , w h i c h makes i t d i f f i c u l t t o judge t h e r e l a t i o n s h i p s i n t i m e between s c e n e s , and the o v e r a l l p a c i n g o f an a n i m a t i o n . S i n c e t h e s e judgements are i m p o r t a n t t o the u l t i m a t e s u c c e s s o f an a n i m a t i o n , the s e q u e n c i n g command w i l l soon be added t o GRAX. T h i s command w i l l n o t be r e s t r i c t e d , as i t i s i n GENESYS, t o the o r d e r i n g o f i n d i v i d u a l s t i l l images. R a t h e r , any 47 animated o b j e c t s can be i n c l u d e d i n the domain o f a s e l e c t i o n d e s c r i p t i o n . A l s o , the d e s c r i p t i o n s w i l l be on a time domain d e f i n e d i n time i n t e r v a l s , r a t h e r than i n frames. The s i g n i f i c a n c e o f t h i s i s t h a t d e s c r i p t i o n s by r e l a t i v e time i n t e r v a l s make more sense and r e q u i r e l e s s d e t a i l e d a r i t h m e t i c on the p a r t o f the animator than do d e s c r i p t i o n s based on frame numbers. P-CURVES The " s e l e c t i o n d e s c r i p t i o n " t e c h n i q u e does r e s u l t i n a n i m a t i o n s , b u t i t seems to do so w i t h o u t any c o n s i d e r a t i o n o f the b a s i c problem o f a n i m a t i o n , which i s : G i v e n one or s e v e r a l s t i l l images and a p l a n f o r a m o t i o n , cause the images t o move and/or t r a n s f o r m a c c o r d i n g t o the p l a n . Another a n i m a t i o n scheme, which we may c a l l " g l o b a l , p a r a m e t r i c a n i m a t i o n s " , cause an image t o be modifed i n a u n i f o r m f a s h i o n as s p e c i f i e d by some time-dependent parameter. Any g l o b a l m o d i f i c a t i o n o f a p i c t u r e which can be d e s c r i b e d i n terms o f a parameter or s e t o f para m e t e r s which a r e independant o f t h e p i c t u r e i t s e l f may be the b a s i s f o r an a n i m a t i o n . For example, s i z e may be d e s c r i b e d by a s i m p l e m u l t i p l i c a t i v e s c a l e f a c t o r , S. To c r e a t e an a n i m a t i o n , a l l t h a t i s n e c e s s a r y i s t o d e s c r i b e a p i c t u r e as some i n i t i a l p i c t u r e s c a l e d by S, and t o s u b s t i t u t e a time dependent f u n c -t i o n S ( t ) f o r t h e c o n s t a n t S. 48 T h i s t e c h n i q u e i s g e n e r a l : Whenever a p i c t u r e can be d e s c r i b e d i n terms o f another p i c t u r e and some s e t o f parame-t e r s , an a n i m a t i o n w i l l r e s u l t from s u b s t i t u t i n g a f u n c t i o n o f time, f o r any or a l l o f t h e parameters i n the d e s c r i p t i o n o f the p i c t u r e . In GENESYS, t h i s i s the o n l y a n i m a t i o n t e c h n i q u e o t h e r than s u b s t i t u t i o n d e s c r i p t i o n s a v a i l a b l e . A l t h o u g h o t h e r ap-p l i c a t i o n s a r e d i s c u s s e d i n B a e c k e r ' s t h e s i s , GENESYS o n l y a l l o w s p a t h s o f o b j e c t s t o be animated. There i s no mechanism o t h e r t h a n r e d r a w i n g i n d i v i d u a l frames f o r c o n t r o l l i n g s c a l e , i n t e n s i t y , e t c . GENESYS p r o v i d e s two f o r m a l i s m s f o r d e f i n i n g p a r a m e t r i c f u n c t i o n s t o be used i n a n i m a t i o n s . Each o f t h e s e i s " p i c t u r e d r i v e n " , i n t h e sense t h a t the a c t u a l p a r a m e t r i c f u n c t i o n s are d e r i v e d from p i c t u r e s drawn by the a n i m a t o r . One o f the t e c h n i q u e s , "waveforms", i s a r e s u l t o f s i m p l y g r a p h i n g some parameter a g a i n s t a time a x i s . The o t h e r f o r m a l i s m i s " p - c u r v e s " , w h i c h a re t i m e - o r d e r e d s e r i e s o f d o t s i n t h e p l a n e . Each a x i s o f the p l a n e may be i n t e r p r e t e d as some parameter o f p i c t u r e d e s c r i p t i o n . Baecker uses the c o n v e n t i o n t h a t the h o r i z o n t a l a x i s and v e r t i c a l a x i s i n a p - c u r v e r e p r e s e n t the h o r i z o n t a l and v e r t i c a l p o s i t i o n o f the o r i g i n o f a s t i l l image. Thus t h e f i r s t d o t r e p r e s e n t s t h e p o s i t i o n o f t h e o r i g i n o f the f i r s t image i n a sequence, the second d o t r e p r e s e n t s the p o s i t i o n o f the o r i g i n o f the 49 second image, e t c . Time i s not e x p l i c i t l y r e p r e s e n t e d i n p - c u r v e s . The con-v e n t i o n i s t h a t the c o n s e c u t i v e d o t s w i l l c o r r e s p o n d t o c o n s e c u t i v e frames ( i . e . , t h a t frames w i l l appear a t u n i f o r m i n t e r v a l s i n t i m e ) . T h i s means t h a t t h e s p a c i n g between d o t s r e p r e s e n t s the change i n p o s i t i o n o f o r i g i n per t i m e i n t e r v a l , w h i c h i s t o say t h a t t h e s p a c i n g between d o t s d i r e c t l y r e p r e s e n t s t h e v e l o c i t y o f the a n i m a t i o n ' s m o t i o n . To r e c o v e r p o s i t i o n , one must i n t e g r a t e the v e l o c i t y . Once a waveform or p-curve has been d e f i n e d i n GENESYS, i t o r s e l e c t e d p a r t s o f i t may be redrawn. There are no o t h e r , s y s t e m a t i c e d i t i n g o p t i o n s f o r p - c u r v e s , though B a e c k e r ' s t h e s i s mentions the need f o r b e t t e r e d i t i n g . The h a n d l i n g o f p - c u r v e s i n GRAX i s much b e t t e r d e v e l o p e d t h a n i n GENESYS. F i r s t , GRAX a l l o w s not o n l y p o s i t i o n s , b u t a l s o b r i g h t n e s s , r o t a t i o n , u n i f o r m s c a l i n g , and independant s c a l i n g o f the h o r i z o n t a l and v e r t i c a l axes t o be c o n t r o l l e d by p - c u r v e s . Second, GRAX a l l o w s p - c u r v e a n i m a t i o n t o be ap-p l i e d t o a r b i t r a r y a n i m a t i o n s , r a t h e r than j u s t t o s t a t i c images. F i n a l l y , GRAX c o n t a i n s much more s o p h i s t i c a t e d t o o l s f o r c r e a t i n g and m o d i f y i n g p - c u r v e s than does GENESYS. The a b i l i t y t o v a r y a l a r g e number o f para m e t e r s v i a p - c u r v e s i s v i r t u a l l y b u i l t i n t o GRAX hardware. Each v e c t o r which i s d i s p l a y e d on t h e P i c t u r e System I i s m u l t i p l i e d by a m a t r i x b e f o r e a c t u a l l y b e i n g drawn. The hardware uses 50 homogeneous c o o r d i n a t e s i n i t s r e p r e s e n t a t i o n o f v e c t o r s , so t h a t p o s i t i o n i s handled u n i f o r m l y a l o n g w i t h s c a l e , e t c . Thus the problem o f im p l e m e n t i n g any o f the mentioned p-curve c o n t r o l s r e d u c e s t o one s i m p l e program which reads a master c l o c k , f i n d s the p o i n t i n a p-curve a p p r o p r i a t e t o the c u r r e n t t i m e , and w r i t e s a m a t r i x w i t h t h i s c u r r e n t v a l u e t o the P i c t u r e System b e f o r e d i s p l a y i n g the o b j e c t t o be animated. The hardware a l s o has m a t r i x s t a c k s , so i t i s p o s s i b l e t o save the c u r r e n t t r a n s f o r m a t i o n b e f o r e m o d i f y i n g i t t o the t r a n s f o r m needed t o f o r a p-curve a n i m a t i o n . The scheme f o r p-curve a n i m a t i o n s used i n GRAX can be d e s c r i b e d t h u s : 1- S t a c k t h e t r a n s f o r m a t i o n c u r r e n t l y i n the system. 2- L o c a t e the c u r r e n t parameter i n the g i v e n p - c u r v e . 3- Develop the m a t r i x which r e p r e s e n t s the t r a n s f o r m a t i o n b e i n g c o n t r o l l e d by t h e p - c u r v e . 4- M u l t i p l y t h i s m a t r i x by the c u r r e n t m a t r i x . 5- D i s p l a y t h e g r a p h i c s b e i n g c o n t r o l l e d by the p - c u r v e . 6- Pop the o l d c u r r e n t t r a n s f o r m a t i o n o f f the s t a c k . Note t h a t s e t p (5) i s an u n r e s t r i c t e d r e c u r s i v e c a l l t o the p i c t u r e i n t e r p r e t e r . T h i s means t h a t a n y t h i n g which can be d i s p l a y e d i n GRAX can be d i s p l a y e d under p-curve c o n t r o l . In p a r t i c u l a r , p - c u r v e a n i m a t i o n s can be c a s c a d e d , so t h a t a r o l l o f a s c a l e o f . . . o f an image can be handle d as e a s i l y as a 51 s i m p l e 1-deep p-curve a n i m a t i o n . Another advance i n GRAX over GENESYS i s the way p-curves are c r e a t e d and i n t e r p r e t e d . In B a e c k e r ' s system, a p-curve c o n t r o l s some f i x e d number of frames, namely the number of p o i n t s i n the c u r v e i t s e l f . Thus i n s p e c i f y i n g a p - c u r v e , one i s s p e c i f y i n g b o t h t o t a l time and rhythm. There i s no mechanism s h o r t o f r e d r a w i n g the p-curve f o r r e q u e s t i n g an a n i m a t i o n based on a p-curve t o run a t a d i f f e r e n t tempo. T h i s l i n k i n g o f tempo and rhythm s i g n i f i c a n t l y reduces the power of GENESYS. In GRAX, any s i m p l e s k e t c h may be used as a p - c u r v e , and any g r a p h i c on the s c r e e n may be reduced to a s i m p l e s k e t c h w i t h t h e SNAPSHOT command. S i n c e GRAX has a number of com-mands f o r m o d i f y i n g the appearance o f a s k e t c h , i t has a s i g -n i f i c a n t a b i l t y t o e d i t p - c u r v e s . A l s o , i n GRAX p- c u r v e s s e t o n l y rhythm, n o t tempo. At the time when a p-curve a n i m a t i o n i s f i r s t d e f i n e d , the t o t a l time o f the a n i m a t i o n (and t h e r e f o r e i t s tempo) are s p e c i f i e d by t w i s t i n g a knob. There i s no need t o draw a p-curve w i t h e x a c t l y one dot per frame, and the number of frames c o n t r o l l e d by a p-curve i s r e s e t t a b l e . Thus the promise o f p i c t u r e d r i v e n a n i m a t i o n i s b e t t e r s e r v e d , i n the sense t h a t m o tions can be c o n c e i v e d i n terms o f t h e i r o v e r a l l c h a r a c t e r i s t i c s , r a t h e r than i n terms o f numbers o f frames. One p a r t i c u l a r l y i m p o r t a n t advantage o f the s e p a r a t i o n o f 52 rhythm and tempo i s t h a t when i t i s d e s i r e d t o s y n c h r o n i z e two a n i m a t i o n s ' s t a r t and end p o i n t s i n t i m e , i t i s not n e c e s s a r y t o know i n advance what i n t e r v a l o f time the a n i m a t i o n s are to f i l l . Each a n i m a t i o n may be d e f i n e d a t whatever tempo i s con-v e n i e n t t o t h e a n i m a t o r , so t h a t f u l l a t t e n t i o n can be p a i d t o the r h y t h m i c a s p e c t s o f the a n i m a t i o n . Tempos can be matched l a t e r . The s e p a r a t i o n o f tempo and rhythm i n GRAX i s a c h i e v e d by use o f a d a t a e x t r a c t o r , which t a k e s as arguments a s k e t c h (the p - c u r v e ) , an o v e r a l l time (the number o f frames t o be g e n e r a t e d ) , and the c u r r e n t t i m e . The v a l u e o f the e x t r a c t o r f u n c t i o n f o r any c u r r e n t time i s the p o s i t i o n a l o n g the p-cu r v e a s s o c i a t e d w i t h t h a t t i m e . When t h e o v e r a l l t ime i s e x a c t l y e q u i v a l e n t t o the number o f segments i n the p - c u r v e , the e x t r a c t o r w i l l r e t u r n the p o s i t i o n s o f the p o i n t s them-s e l v e s . O t h e r w i s e , the e x t r a c t o r w i l l do an i n t e r p o l a t i o n as needed t o g e t the d e s i r e d r e s u l t s . The e q u a t i o n f o r the p-curve e x t r a c t o r i s : EXT(t) = P ( I N T ( t * D E L ) ) + (FRACT(t*DEL)) * {P(INT(t*DEL)+1) - P (I N T ( t * DEL))} Where P ( t ) i s the p a r a m e t r i c r e p r e s e n t a t i o n o f the p a t h , INT(A) i s the i n t e g e r p a r t o f a r e a l number A, FRACT(A) i s the f r a c t i o n a l p a r t of a r e a l number A, DEL i s the number o f p o i n t s t o use per frame, i . e . DEL = N / T, where N = the number o f p o i n t s i n P, T = the number o f frames to be produced. 53 The f i n a l s t a g e i n t h e e x t r a c t i o n p r o c e s s i s t o use the h o r i z o n t a l or v e r t i c a l v a l u e o f the p o s i t i o n r e t u r n e d , and s c a l e i t or o t h e r w i s e p r e p a r e i t f o r use i n the p a r t i c u l a r c o n t e x t where i t i s needed. (For example, s c r e e n c o o r d i n a t e s must be f u r t h e r p r o c e s s e d t o be ^ u s a b l e as s c a l e f a c t o r s ) . In t h e GRAX i m p l e m e n t a t i o n o f t h i s a l g o r i t h m , P i s a s -sumed to remain unchanged from c a l l t o c a l l , and N i s computed on the f i r s t c a l l . But T i s a l l o w e d t o change ( i . e . DEL i s recomputed each c a l l ) . T h i s means t h a t T can be read o f f a knob, and the tempo can be v a r i e d w h i l e the a n i m a t i o n i s b e i n g d i s p l a y e d . When the a n i m a t i o n i s f i r s t b e i n g d e f i n e d , or when t h e animator w i s h e s t o e d i t t he t i m i n g , a knob i s a t t a c h e d t o T. L i k e w i s e , when one a n i m a t i o n i s t o take i t s t i m i n g from an-o t h e r , T i s c o p i e d from one a n i m a t i o n t o the o t h e r . Whenever a p-curve a n i m a t i o n i s b e i n g d i s p l a y e d , v a l u e s o f P, N and T are recomputed once per d i s p l a y c y c l e . D e F a n t i ' s system does hot o f f e r p - c u r v e s as an a n i m a t i o n t y p e , and GRASS'S MACRO language does n ot l e n d i t s e l f w e l l t o programming t h e ty p e o f d a t a e x t r a c t o r d e s c r i b e d above. But t h a t i s not t o say t h a t g l o b a l , p a r a m e t r i c a n i m a t i o n s are not p o s s i b l e i n GRASS. Indeed, the main t h r u s t o f the MACRO l a n -guage i n GRASS i s t o a l l o w c o m p u t a t i o n s t o be performed on a frame-by-frame b a s i s under the e x p l i c i t c o n t r o l o f the a n i m a t o r . For example, s i n c e i t i s easy t o program a c i r c l e 54 or a s i n e wave i n MACRO, i t i s easy t o use these c u r v e s as p- c u r v e s i n an a n i m a t i o n . Indeed, i f one can d e s c r i b e any c u r v e i n D e F a n t i ' s system, i t may be used as a B a e c k e r - s t y l e (tempo and rhythm) p-curve f o r any g l o b a l parameter. i n g e n e r a l , D e F a n t i ' s s i t u a t i o n i s t h a t GRASS can e a s i l y p e r f o r m many t y p e s o f d a t a e x t r a c t i o n i n the MACRO language, but s i n c e t h a t language i s n o t c o n c e i v e d as a g e n e r a l purpose proramming lang u a g e , some s o p h i s t i c a t e d t y p e s o f d a t a e x t r a c t i o n a r e more t r o u b l e than t h e y a r e wo r t h . (Worth i n t h i s c o n t e x t must be judged not o n l y i n terms o f the a n i m a t o r ' s time i n c r e a t i n g a program, b u t i n terms o f the time i t t a k e s the program t o run each frame, i . e . , i n terms o f the d e g r a d a t i o n o f r e a l - t i m e r e s p o n s e . MACRO i s a program i n t e r p r e t e r b u i l t over an i n t e r a c t i v e i n t e r p r e t e r b u i l t i n Assembler. T h i s type o f programming system i s n o t known f o r i t s speed o f e x e c u t i o n , c . f . B a s i c e x e c u t i o n times.) SUPER w i l l e x t e n d the b a s i c p - c u r v e s t r a t e g i e s o f f e r e d i n . GRAX by add i n g the programmatic c a p a b i l i t i e s o f GRASS. S e v e r a l e x t r a c t o r s , i n c l u d i n g the b a s i c p-curve e x t r a c t o r d e s c r i b e d above w i l l be e x p l i c i t l y a v a i l a b l e as b u i l t i n l a n -guage f u n c t i o n s . Other e x t r a c t o r s w i l l a l s o be o f f e r e d t o d e t e c t and use v a r i a t i o n s i n c o l o u r , c u r v a t u r e , and t i m e - and space- r a t e s o f change, e t c . The b a s i c i d e a i s t o p r o v i d e e x t r a c t o r s f o r as many d i f f e r e n t v i s u a l p r o p e r t i e s o f a p i c t u r e as p o s s i b l e . The c h a r a c t e r o f t h e programming language o f SUPER w i l l a l l o w the 55 animator t o s p e c i f y f l e x i b l y what v i s u a l d e s c r i p t o r i n a p a rameter-scene ( a g e n e r a l i z a t i o n o f a p-curve) i s t o be a s s i g n e d t o what parameter i n the p i c t u r e b e i n g d e s c r i b e d . By the t i m e SUPER i s implemented, t h i s type o f e x t e n s i o n w i l l be j u s t a p i e c i n g t o g e t h e r o f e x i s t i n g t e c h n i q u e s , r a t h e r t h a n a r a d i c a l new e x t e n s i o n . B a e c k e r ' s work d e m o n s t r a t e s the b a s i c v i a b i l i t y o f p i c t u r e - d r i v e n a n i m a t i o n , and GRAX d e v e l o p s the use o f e x t r a c t o r s as a p o w e r f u l a d j u n c t to B a e c k e r ' s i d e a . D e F a n t i ' s work d e m o n s t r a t e s the b a s i c v i a b i l i t y o f a p p l y i n g e x t r a c t o r s i n a programming environment mixed w i t h d i r e c t g r a p h i c s p e c i f i c a t i o n s . The o n l y m i s s i n g i n g r e d i e n t s are the e x t r a c t o r s t h e m s e l v e s , and the a r e a s o f p a t t e r n r e c o g n i t i o n and scene a n a l y s i s are p r o d u c i n g new and more s e n s i t i v e e x t r a c t o r s a l l the t i m e . KEYFRAME ANIMATION Another type o f a n i m a t i o n i s the keyframe a n i m a t i o n c o n c e p t f i r s t e x t e n s i v e l y programmed by B e r t n i k and Wein a t gq the N a t i o n a l R e s e a r c h C o u n c i l o f Canada." In t h i s t e c h n i q u e , c e r t a i n c e l l s a r e s e l e c t e d as r e p r e s e n t i n g i m p o r t a n t a s p e c t s o f the o v e r a l l a n i m a t i o n , and the computer i s c h a r g e d w i t h the t a s k o f p r o d u c i n g enough c e l l s t o make a smooth t r a n s i t i o n be-tween the s e l e c t e d c e l l s . The number o f c e l l s g e n e r a t e d i s s p e c i f i e d e i t h e r i n terms o f frames, or i n terms o f time i n t e r v a l s . 56 K e y f r a m e a n i m a t i o n i s n o t a v a i l a b l e i n GENESYS, a l t h o u g h B a e c k e r d o e s d e s c r i b e i t as a d e s i r a b l e e x t e n s i o n t o h i s s y s -tem. GRASS a l s o d o e s n o t have any me c h a n i s m f o r d o i n g k e y f r a m e i n t e r p o l a t i o n s p e r s e ; h o w e v e r , as w i t h p - c u r v e s , g i v e n two p i c t u r e s w h i c h h a v e e n o u g h s i m i l a r i t i e s i n t h e i r g e n e r a t i n g f u n c t i o n s , i t i s p o s s i b l e i n MACRO.to c r e a t e t h e d e s i r e d e f f e c t . GRAX h a s a k e y f r a m e l a n g u a g e , w h i c h a l l o w s t h e a n i m a t o r t o s p e c i f y a k e y f r a m e a n i m a t i o n i n t e r m s o f t h e names o f t h e i n d i v i d u a l k e y f r a m e s , and t h e t i m e s ( o r k n o b - s o u r c e s ) b e t w e e n t h e k e y f r a m e s . The k e y f r a m e s t h e m s e l v e s must be s i m p l e s k e t c h e s . K e y f r a m i n g b e t w e e n more c o m p l e x d a t a s t r u c t u r e s i s n o t a l l o w e d . The r e a s o n f o r t h i s i s t h a t t h e amount o f p r o -c e s s i n g n e c e s s a r y t o p r o d u c e i n t e r m e d i a t e f r a m e s b e t w e e n n o n - s t a t i c k e y f r a m e s i s f a r more t h a n t h e PDP 11 c a n h a n d l e i n r e a l t i m e . S i n c e GRAX k e y f r a m e s c r i p t s a r e d e f i n e d i n t e r m s o f names, one c a n r e - i n t e r p r e t t h e s c r i p t any number o f t i m e s t o g e t d i f f e r e n t a n i m a t i o n s , s i m p l y b y r e n a m i n g p i c t u r e s . I n p a r t i c u l a r , g i v e n an a l m o s t c o r r e c t s e q u e n c e , one c a n e d i t any i n d i v i d u a l f r a m e i n t h e s e q u e n c e , and b r i n g t h e a n i m a t i o n c l o s e r and c l o s e r t o c o m p l e t i o n . A n o t h e r p r o p e r t y o f k e y f r a m e s c r i p t s i s t h a t one may e d i t a s c r i p t t o i n c l u d e a new k e y f r a m e b e t w e e n e x i s t i n g o n e s . As w i t h p - c u r v e a n i m a t i o n s , t h e g l o b a l t i m i n g (tempo) i s s e t i n d e p e n d e n t l y f r o m t h e r h y t h m o f t h e a n i m a t i o n , s o t h a t when one ad d s a new k e y f r a m e t o a 57 sequence, the o v e r a l l number of frames i n the sequence i s not a f f e c t e d . By use o f the SNAPSHOT command, i n d i v i d u a l i n t e r m e d i a t e frames can be c a p t u r e d as s k e t c h e s , and used l a t e r f o r any o t h e r g r a p h i c p urpose. The a l g o r i t h m used i n GRAX s i m p l y performs a l i n e a r i n t e r p o l a t i o n from each p o i n t i n a keyframe to the correspond,-i n g p o i n t i n the nex t keyframe, u s i n g time as an i n t e r p o l a t i o n p a r a m e t e r . I t i s u s u a l l y the case t h a t the two keyframes w i l l not have the same number of p o i n t s , so the a l g o r i t h m adds new p o i n t s t o whiche v e r p i c t u r e has fewer. There are s e v e r a l ways i n which t h i s can be done. For example, a l l the r e q u i r e d new p o i n t s can be p u t a t t h e end o f one frame, or the new p o i n t s can be d i s t r i b u t e d t h r o u g h the frame u n i f o r m l y . Each d i f f e r e n t c h o i c e has a d i f f e r e n t v i s u a l i m p l i c a t i o n , and e x p e r i e n c e has shown t h a t d i f f e r e n t a n i m a t o r s p r e f e r d i f f e r e n t e f f e c t s . So, GRAX has s e v e r a l mapping o p t i o n s f o r d e f i n i n g new p o i n t s . There a r e a l s o o p t i o n s f o r c a u s i n g the i n t e r p o l a t i o n t o match p e n - s t r o k e s t o c o r r e s p o n d i n g p e n - s t r o k e s , r a t h e r than p o i n t s t o p o i n t s . T h i s o p t i o n a l l o w s v e r y good v i s u a l c o n t i n u i t y t o be a c h i e v e d . For example, t o animate a l e g moving, the animator would draw the l e g i n each keyframe w i t h 58 the same number of p e n - s t r o k e s , drawn i n the sama o r d e r . Then the t r a n s i t i o n from keyframe to keyframe w i l l appear q u i t e n a t u r a l and smooth. As w i t h the p o i n t - t o - p o i n t mode, i f s t r o k e s are b e i n g matched t o s t r o k e s , and one o f t h e keyframes d o e s n ' t have enough s t r o k e s , the program g e n e r a t e s as many new p e n - s t r o k e s a r e needed. The c o n s t r a i n t t h a t the i n d i v i d u a l keyframes must be s k e t c h e s means t h a t t h e r e are l i m i t s t o the ways i n which p - c u r v e and keyframe a n i m a t i o n s can i n t e r a c t . In p a r t i c u l a r a p-curve a n i m a t i o n may t a k e a keyframe a n i m a t i o n as i t s scope b u t n ot v i c e - v e r s a . SKELETON INTERPOLATION B e r t n i k and Wein have extended t h e i r o r i g i n a l keyframe to c a p a b i l i t y t o " s k e l e t o n " a n i m a t i o n , which sees images d e s c r i b e d i n terms o f s k e l e t o n s imbedded w i t h i n the images. The s k e l e t o n o f one image i s mapped w i t h i n t e r p o l a t i o n t e c h n i q u e s o n t o t h e s k e l e t o n o f another image, and the s k e l e t o n mappings are extended t o i n c l u d e the e n t i r e f i g u r e b e i n g mapped. T h i s mapping c a p a b i l i t y w i l l a l s o be a v a i l a b l e i n SUPER, and l i k e keyframe a n i m a t i o n , w i l l be s p e c i f i a b l e t h r o u g h s c r i p t s which r e f e r t o images. A g e n e r a l i z a t i o n which w i l l be a v a i l a b l e i n SUPER w i l l s e p a r a t e the s k e l e t o n mapping from the images mapped. For example, one c o u l d s p e c i f y t h a t 59 the x - a x i s o f a space was to f o l d back on i t s e l f i n the x-y. p l a n e from a p o i n t x = 3. The angl e o f the f o l d (the angle .be-tween the p a r t s o f the a x i s w i t h x l a r g e r and s m a l l e r than 3) would be a f u n c t i o n o f t i m e . Such a d e s c r i p t i o n i s not com-p l e t e , s i n c e i t does not s p e c i f y what i s to happen a t the p o i n t s near the l i n e X = 3. (See FIGURE V I I . ) SUPER would o f f e r some g r a p h i c t e c h n i q u e s f o r making t h i s s p e c i f i c a t i o n , and would have w i t h i n i t e x t r a c t o r s f o r d e v e l o p i n g the mapping from the g r a p h i c i n p u t g i v e n . S i m i l a r s p e c i f i c a t i o n s c o u l d a l s o be made i n the programming language o f SUPER. S k e l e t o n a n i m a t i o n i s one type o f a r c - w e l d i n g . SUPER w i l l c o n t a i n o t h e r a r c - w e l d i n g t e c h n i q u e s , which w i l l g e n e r a l i z e t h o s e a v a i l a b l e i n the NRC systems. The l i n e s o f g e n e r a l i z a t i o n are a l l o w i n g maps from and t o o t h e r , d i f f e r e n t p a r a m e t e r s . To e x t e n d t h e above example, we might t a k e the x - a x i s as a space a x i s , and the y a x i s as a b r i g h t n e s s a x i s , w i t h d i s t a n c e from x=0 b e i n g used to c o n t r o l v a r i a t i o n i n i n t e n s i t y . Even a r e l a t i v e l y m i l d e x t e n s i o n i n t h i s d i r e c t i o n a l l o w s f o r d e f i n i t i o n o f v e r y g e n e r a l v i e w i n g space s t r u c t u r e s , and t h e r e b y a l l o w s the animator a f l e x i b l e , e s s e n t i a l l y new a r e a o f c o n t r o l over a n i m a t i o n s . 60 FIGURE VII: Some Spaces Being Bent Around the Line X = 3 . MAPPING AND SYNCHRONIZATION TECHNIQUES In the f i r s t section of t h i s work, the concept of hooks was presented as a powerful tool for defining mappings from various home spaces into a viewing space. Now we s h a l l consider some of the possible implementations of hooks, discussing the requirements and implications of each. In SUPER, a hook can be defined i n one of two ways: v i s u a l l y or computationally. To make a v i s u a l d e f i n i t i o n , one runs the display of an object u n t i l the time at which the hook i s to be inserted. Using SUPER'S variable time rate knob to slow down the clock or to run i t backwards as needed, the time coordinate of the hook can be defined as pr e c i s e l y as desired. 61 Then, u s i n g the s t y l u s and the zoom knob, the p o s i t i o n c o o r d i n a t e s o f the hooks are d e f i n e d . I t may be n e c e s s a r y t o r e p o s i t i o n the o b j e c t or t o r o t a t e i t to an o r i e n t a t i o n where the hook s i t e i s v i s i b l e , but t h i s p r e s e n t s no problem, s i n c e SUPER v / i l l r e s t o r e the it e m t o i t s o r i g i n a l o r i e n t a t i o n and p o s i t i o n once t h e hook d e f i n i t i o n i s complete. When t h e time and space c o o r d i n a t e s have been d e f i n e d , a name i s typed i n f o r the hook, or the system's d e f a u l t name i s acc e p t e d (The d e f a u l t names w i l l be compound names w i t h e s s e n t i a l l y e v o l u t i o n a r y f l a v o u r . A t y p i c a l name might be "CU3E1:3 SECONDS: X=5,Y=3". A t y p i c a l u s e r - d e f i n e d p r o p e r name might be "CUBE1.H00K1"). A l t e r n a t i v e l y , a hook may be s p e c i f i e d c o m p u t a t i o n a l l y by use o f the programming language b u i l t i n t o SUPER. The l a n -guage w i l l c o n t a i n p r i m i t i v e s c a p a b l e o f e x p r e s s i n g a b s o l u t e l o c a t i o n s i n time and spa c e , and a l s o mechanisms f o r e x p r e s -s i n g complex c o n d i t i o n a l s , such a s : DEFINE HOOK (name) AT TIME AND PLACE WHERE OBJECT "A" FIRST INTERSECTS OBJECT "B". T h i s type o f d e f i n i t i o n not o n l y commits SUPER t o some v e r y s o p h i s t i c a t e d p r o c e s s i n g c a p a b i l i t i e s , about which more w i l l be s a i d l a t e r , b ut a l s o c r e a t e s a s e t o f i n t e r e s t i n g p o s s i b i l i t i e s . For example i f the d e f i n i t i o n above i s p a r t o f an o b j e c t which i s d e f i n e d b e f o r e OBJECT B i s d e f i n e d , i t i s 62 not d e t e r m i n e d whether the named hook has been d e f i n e d or n o t , s i n c e i t cannot be known whether OBJECT A ever w i l l i n t e r s e c t OBJECT 8, and i f so.,, whether the i n t e r s e c t i o n w i l l be i n a unique p o i n t , e t c . Whenever t h i s type o f a m b i g u i t y o c c u r s , SUPER w i l l t e n t a t i v e l y a s s i g n a dummy o b j e c t which s a t i s f i e s c o n s t r a i n t s i m p l i e d by t h e ambiguous d e f i n i t i o n . In the above example, an o b j e c t c a l l e d DUMMY-B would be i n v e n t e d which would bump i n t o OBJECT A a t a unique p o i n t i n time and space. The e v o u t i o n a r y name f o r DUMMY-B would be a v a i l a b l e f o r i n s p e c t i o n , and might p r o v i d e i n f o r m a t i o n u s e f u l t o the animator f o r d e f i n i n g the d e s i r e d OBJECT B. There are s e v e r a l o p e r a t i o n s which may be performed on a hook once i t i s d e f i n e d . The most s t r a i g h t - f o r w a r d i s t o a s s i g n i t t o an a b s o l u t e time or space c o o r d i n a t e . T h i s can be done g r a p h i c a l l y i n SUPER by p i c k i n g a p o i n t on t h e master t i m e g r a p h i c or on the master space g r a p h i c (see FIGURES V I I I , IX) . Any a s s i g n m e n t s t o the a b s o l u t e time and space s t r u c t u r e s t a k e p r e c e d e n t over any o t h e r time or space i n f o r m a t i o n . Suppose t h a t an o b j e c t i n i t s home space/time t a k e s f o u r s e c o n d s , and a hook i s d e f i n e d a t the end o f each second. Now suppose t h a t hook 0 ( b e g i n n i n g o f the f o u r seconds) i s a s s i g n e d a b s o l u t e time 5, hook 1 i s a s s i g n e d t o a b s o l u t e time 20, hook 2 t o a b s o l u t e 10, hook 3 t o a b s o l u t e 15, and hook 4 63 0 1 * ' » « ' * " » II 12- /j , ¥ • i f i > 1 8 „ 2 a z l t = M C U o w e ) FIGURE v i l l : Use o f an A b s o l u t e Time G r a p h i c t o d e f i n e Hooks, / A 1 r k p 1 • 7 \ / , /( / ESS 9 T / i FIGURE I X : U s e o f an A b s o l u t e S p a c e G r a p h i c t o d e f i n e H o o k s , t o a b s o l u t e 0. T h e n , s i n c e a b s o l u t e a s s i g n m e n t s t a k e p r e c e -d e n c e o v e r h o m e - s p a c e t i m e s t r u c t u r e s , w h a t we w o u l d h a v e i n t h e v i e w i n g s p a c e i s t h e o b j e c t m o v i n g f o r w a r d a n d b a c k w a r d i n t i m e , amd s h o w i n g i t s e l f i n a s many as f o u r i n s t a n c e s s i m u l t a -n e o u s l y , ( s e e FIGURE V I I I . ) A t s e c o n d 1 i n t h e v i e w i n g s p a c e , we w o u l d s e e t h e o b j e c t 64 as i t appears a t second 3.9333 i n the home space, a t second 2 i n the v i e w i n g space we would see the o b j e c t as i t appeared a t second 3.8666 i n the home sp a c e , e t c . At second 12, we would see f o u r d i f f e r e n t images o f the o b j e c t , one on the way from second 0 t o second 1 i n the home sp a c e , one on the way t o second 2, one between second 2 and second 3, and one between seconds 3 and 4. The comparable e f f e c t s i n space would be a c h i e v e d by u s i n g p r o j e c t i o n f u n c t i o n s which s a t i s f y the c o n s t r a i n t s c r e -ated by the mappings o f hooks i n a home space onto p o s i t i o n s i n t he v i e w i n g space. A second type o f o p e r a t i o n i n v o l v i n g hooks i s the r e l a t i v e a s s i g n m e n t s o f hooks. T h i s i s s i m i l a r t o a b s o l u t e assignment o f hooks, e x c e p t t h a t i n s t e a d o f p o i n t s i n an a b s o l u t e space o f time framework, p o i n t s i n an o b j e c t a re hooked t o . The o b j e c t which p l a y s the r o l e of the a b s o l u t e space i s r e f e r r e d t o as the master and the o b j e c t which i s hooked t o i t i s c a l l e d the s l a v e . The space c o n t a i n i n g the s l a v e o b j e c t i s mapped i n t o the .space c o n t a i n i n g the master o b j e c t , and the space c o n t a i n i n g the master o b j e c t i s not a f f e c t e d . The e f f e c t s o f r e l a t i v e hooks are s i m i l a r t o the e f f e c t s o f a b s o l u t e hooks, e x c e p t t h a t they may not be e v a l u a -t e d b e f o r e t h e mapping o f the master space i n t o the v i e w i n g space i s known. For the purpose o f e s t a b l i s h i n g r e l a t i v e hook mappings, a t e n t a t i v e s i m p l e map o f the master space i n t o a v i e w i n g space i s assumed. For example, i f one were a n i m a t i n g 65 a p e r s o n b o u n c i n g a b a l l , i t would be d e s i r a b l e to c o o r d i n a t e the t o p o f the b a l l ' s p a t h w i t h the bottom o f the arm's p a t h each time the b a l l went down and up, each time the arm went up and down. To do t h i s , the arm would t e n t a t i v e l y be a s s i g n e d some p o s i t i o n , rhythm, speed, e t c . W i t h these t e n t a t i v e v a l -ues i n p l a c e , t h e hooks between t h e p a r t i c u l a r p o i n t s i n time and space where the b a l l was a t i t s h i g h e s t and the hand a t i t s l o w e s t c o u l d be e s t a b l i s h e d . When the arm i s e v e n t u a l l y a s s i g n e d i t s p r o p e r p o s i t i o n , speed, e t c . , the mapping of b a l l t o hand would be c a r r i e d a l o n g , and the d e s i r e d s y n c h r o n i z a t i o n s would be p r e s e r v e d . In e s t a b l i s h i n g r e l a t i v e hooks, as l o n g as time and space c o i n c i d e n c e s are b e i n g hooked, one can be a s s u r e d the r e l a t i o n s h i p s w i l l be p r e s e r v e d , s i n c e i n t e r v a l s o f z e r o time or space w i l l always be mapped i n t o z e r o i n t e r v a l s . But non-zero i n t e r v a l s (near c o i n c i d e n c e s ) may not be p r e s e r v e d by whatever mapping i s e v e n t u a l l y imposed on the master space. That i s , the assignment o f r e l a t i v e hooks w i l l always s u f f i c e t o e s t a b l i s h e x a c t c o i n c i d e n c e i n time or s p a c e , but sometimes w i l l f a i l t o s a t i s f a c t o r i l y h a n d l e near c o i n c i d e n c e s . A t h i r d t y p e o f mapping which can be d e f i n e d i n terms o f hooks i n v o l v e s t y i n g two or more hooks t o g e t h e r . Hooks which are t i e d a re d e c l a r e d synonymous w i t h r e s p e c t t o time and/or space v a l u e s . There i s no m a s t e r / s l a v e r e l a t i o n s h i p i m p l i e d . A l l t h a t i s i n t e n d e d i s t h a t once any one o f a t i e d group o f hooks i s g i v e n a v a l u e , a l l t h e hooks i n t h e group share t h a t 66 v a l u e . One i m p l i c a t i o n of t h i s d e f i n i t i o n i s t h a t once two items have been t i e d t o g e t h e r , assignments o f v a l u e s to hooks w i t h i n one item induce mappings on the o t h e r i t e m s . Another use of t i e s i s f o r c r e a t i n g e x a c t l y . d e s i r e d r e l a t i o n s between two or more a n i m a t i o n segments which have been o r i g i n a l l y d e f i n e d i n d e p e n d e n t l y . Suppose segments A and B a r e supposed t o c o i n c i d e a t ti m e s t l , t 2 , e t c . I t i s not n e c e s s a r y t o know e x a c t l y when t l , t 2 , e t c . , o c c u r , i n e i t h e r a b s o l u t e time or even i n the time o f e i t h e r A p r B. The segments can be d e f i n e d w i t h hooks i n s t a l l e d a t the a p p r o p r i -ate p o i n t s i n the two a n i m a t i o n s , and l a t e r the c o r r e s p o n d i n g hooks may be t i e d t o g e t h e r . S t i l l l a t e r , t h e e x a c t t i m i n g o f t l , t 2 , e t c . , can be s e t t l e d by use o f a b s o l u t e hooks or r e l a t i v e hooks. The hook d e f i n i t i o n s i t u a t i o n i n GRAX i s not as f a v o u r a b l e as t h a t i n SUPER. Indeed, GRAX has no e x p l i c i t way o f c r e a t i n g hooks. But s e v e r a l o f the GRAX commands i m p l i c i t l y c r e a t e and r e f e r e n c e hooks. In p a r t i c u l a r , e v e r y a n i m a t i o n has b u i l t i n t o i t a t l e a s t s i x hooks, and keyframe a n i m a t i o n s have more. The s i x hooks a l l have the same space c o - o r d i n a t e , which i s t h e c e n t r e o f the s c r e e n . The time v a l u e s o f the hooks are s e t when the a n i m a t i o n i s f i r s t d e f i n e d , or when one o f the t i m e e d i t i n g commands i s c a l l e d . These s i x hooks d e f i n e f i v e t i m e p h a s e s , as f o l l o w s : 6 7 The f i r s t and l a s t phases ace i n v i s i b l e . N o t h i n g i s seen of t h e a n i m a t i o n on the s c r e e n . These two phases are used to pad o ut sequences o f d i f f e r e n t l e n g t h s , so t h a t they can be s t a r t e d a t the same t i m e , and w i l l end a t the same t i m e . Note t h a t s t a r t i n g and ending two sequences a t the same time i s e f -f e c t i v e l y t y i n g the e n d - p o i n t hooks t o g e t h e r . The second and f o u r t h phases are s t a t i c . D u r i n g t h e s e p h a s e s , the a n i m a t i o n appears f r o z e n on the s c r e e n i n the f i r s t and l a s t p o s i t i o n s r e s p e c t i v e l y which i t t a k e s on d u r i n g the a n i m a t i o n p r o p e r . The t h i r d phase c o n t a i n s the dynamic p a r t o f the a n i m a t i o n . D u r i n g t h i s phase, the a n i m a t i o n t r a n s f o r m s from i t s second phase appearance t o i t s f o r t h phase appearance. (See FIGURE X ) . The GRAX commands a l l o w the r e l a t i v e t imes i n the f i v e phases t o be s e t i n d e p e n d e n t l y from the o v e r a l l time f o r t h e c y c l e . T h i s means t h a t one a n i m a t i o n sequence may be t i e d by i t s e n d p o i n t s t o d i f f e r e n t time i n t e r v a l s and w i l l s c a l e i t s e l f i n time t o f i t each o f the g i v e n i n t e r v a l s . One a n i m a t i o n may be t i e d f u l l y by a s i n g l e GRAX command t o a n o t h e r , which means t h a t a l l s i x o f the a n i m a t i o n ' s hooks a r e t i e d t o the c o r r e s p o n d i n g hooks i n the second a n i m a t i o n . T h i s a l l o w s e f f e c t s t o be c a s c a d e d . For example, an o b j e c t may be s c a l e d i n one a n i m a t i o n , r o l l e d i n a n o t h e r , s q u i s h e d i n y e t a t h i r d . The t h r e e a n i m a t i o n s can be t i e d t o g e t h e r so 68 FIGURE X : An a n i m a t i o n as i t appears (a) i n Phase 2, ( b ) — ( e ) d u r i n g Phase 3 , ( f ) i n Phase 4 t h a t the t o t a l e f f e c t i s t o have the s c a l i n g , r o l l i n g , and s q u i s h i n g g o i n g on s i m u l t a n e o u s l y , a l l s t a r t i n g and ending a t e x a c t l y t h e same i n s t a n c e s . I t i s a l s o p o s s i b l e t o t i e the end hooks o f two a n i m a t i o n s t o g e t h e r , and a d j u s t t h e i n t e r n a l hooks i n the two a n i m a t i o n s t o g i v e d i f f e r e n t e f f e c t s . For example, suppose . t h a t i t were d e s i r e d t o have an o b j e c t grow t o some s i z e , then r o t a t e , and the n move around on t h e s c r e e n . We would c r e a t e t h r e e a n i m a t i o n s , one o f an o b j e c t g r o w i n g , one o f i t r o t a t i n g , and one o f i t moving. Then we would t i e the end hooks o f t h e t h r e e t o g e t h e r , and a d j u s t the i n t e r n a l hooks as 69 f o l l o w s : The hooks i n the t h r e e a n i m a t i o n s which d e f i n e the end of the f i r s t phase are t i e d t o g e t h e r . T h i s means t h a t a l l the e f f e c t s w i l l be v i s i b l e a t the same t i m e . The hook d e f i n i n g the end o f the t h i r d phase o f the s c a l i n g a n i m a t i o n would be t i e d t o the hook d e f i n i n g the end of the r o t a t i o n a n i m a t i o n . T h i s g u a r a n t e e s t h a t the o b j e c t w i l l remain a t a s t a t i c r o t a t i o n w h i l e the s c a l i n g i s b e i n g a p p l i e d , and s t a r t t o r o t a t e as soon as the s c a l e o p e r a t i o n i s co m p l e t e . In l i k e manner, the hook d e f i n i n g the end o f the t h i r d phase o f the r o t a t i o n i s t i e d t o the hook d e f i n i n g the end o f the second phase o f the t r a n s l a t i o n a n i m a t i o n . T h i s a s s u r e s t h a t a l l the s c a l i n g and r o t a t i n g t a k e s p l a c e b e f o r e t h e movement b e g i n s . Now, the hooks which d e f i n e the ends o f the f o u r t h phases o f the a n i m a t i o n s are a l l t i e d t o g e t h e r , g u a r a n t e e i n g t h a t the a n i m a t i o n s remain on the s c r e e n the same t o t a l l e n g t h o f t i m e . U n f o r t u n a t e l y , i t i s not q u i t e as easy t o c r e a t e the a n i m a t i o n d e s c r i b e d above as i t i s t o t a l k about i t . The d i f f i c u l t y l i e s i n GRAX's l a c k o f good t e c h n i q u e s f o r e x p l i c -i t l y t a l k i n g about hooks. When d e f i n i n g an a n i m a t i o n , the tim e c o o r d i n a t e s o f the s i x hooks are d i s p l a y e d as marks on a t i m e a x i s on the d i s p l a y s c r e e n . The time c o o r d i n a t e s them-s e l v e s a r e a d j u s t e d by knobs. Thus t o e f f e c t the hook mappings o f the example, i t i s n e c e s s a r y t o use knobs t o a l i g n 70 the marks r e p r e s e n t i n g the hooks v i s u a l l y . The weakness o f the GRAX h a n d l i n g of hooks i s due to GRAX's commitment t o p i c t u r e - d r i v e n a n i m a t i o n . C l e a r l y , a programming environment l i k e SUPER o f f e r s much more s o p h i s t i c a t e d p o s s i b i l i t i e s . But s i n c e GRAX i s w r i t t e n i n A s s e m b l e r , i t i s not easy t o g r a f t another l i n g u i s t i c c o n s t r u c t onto the e x i s t i n g program. U n f o r t u n a t e l y , i t was not u n t i l GRAX was f a i r l y w e l l d e v e l o p e d t h a t the need f o r the a d d i t i o n a l c o n s t r u c t s became a p p a r e n t . At the same time t h a t t h e needs became e v i d e n t , t h e d i f f i c u l t y o f the d a t a base problems which might r e s u l t from h o o k - d e f i n e d mappings became e v i d e n t , and i t was d e c i d e d t o d e f e r the whole m a t t e r u n t i l the i s s u e s were p r o p e r l y s e t t l e d i n SUPER. In S e c t i o n I.C.7 o f h i s t h e s i s , Baecker d e s c r i b e s one of h i s methods o f c o o r d i n a t i n g p a r a l l e l a c t i o n s t h u s : . . . g r a p h i n g dynamic d e s c r i p t i o n s a l o n g a common a x i s o f movie t i m e . . . a i d s the s y n c h r o n i z a t i o n of one dynamic s t r a n d t o a n o t h e r . In p r a c t i c e , we p l a c e event markers a l o n g the a x i s t o a i d the p r o c e s s o f r e l a t i n g the v a l u e s o f s e v e r a l d e s c r i p t i o n s a t one i n s t a n t or i n t e r v a l o f movie t i m e . A l t h o u g h mechanisms f o r m a n i p u l a t i n g these event markers a r e n o t a v a i l a b l e i n GENESYS t h e y a re the p r e c u r s o r s o f time hooks as d e v e l o p e d i n GRAX and SUPER. L a t e r i n the same se c -t i o n , Baecker s a y s : The attachment p o i n t o f a c e l l i s t h a t c o n s t i t u e n t p o i n t whose c o o r d i n a t e s a re p r e c i s e l y d e f i n e d by the p a t h d e s c r i p t i o n s which d r i v e the c e l l . When s k e t c h i n g 71 p - c u r v e s . . . the animator can b e t t e r r e l a t e one movement to another i f he can c o n t r o l and v a r y a c e l l ' s attachment p o i n t . Here, Baecker i s d e s c r i b i n g a hook used f o r i t s s p a t i a l c o o r d i n a t e s . I t i s n o t s u r p r i s i n g t h a t B a e c k e r ' s work c o n t a i n s p r o t o - h o o k s which l e a d t o the hooks i n GRAX and SUPER, s i n c e hooks are t h e c u r r e n t a u t h o r ' s g e n e r a l i z t i o n s o f i d e a s found i n B a e c k e r ' s work. D e F a n t i ' s h a n d l i n g o f s y n c h r o n i z a t i o n and mapping i n GRASS r e l i e s h e a v i l y on h i s commitment t o d e s c r i b i n g g r a p h i c s t h r o u g h programming l a n g u a g e s . I n h i s MACRO lan g u a g e , he i s a b l e t o r e f e r t o p o i n t s i n time or space i n terms o f t h e i r ex-p l i c i t c o o r d i n a t e s , or i n terms o f s a t i s f a c t i o n o f . c o n d i t i o n s w h i c h t e s t v a r i o u s a s p e c t s o f the c u r r e n t s t a t e o f the ite m s b e i n g d i s p l a y e d . H i s programming language i s e s s e n t i a l l y t he e x t e n s i o n v i a c o n d i t i o n a l b r a n c h i n g and " l o o p l e s s v a r i a b l e s " o f h i s command l a n g u a g e , and as such i s n o t a g r e a t language f o r d e s c r i b i n g complex t e s t c o n d i t i o n s . S i n c e GRASS i s implemented i n a s s e m b l e r , t h e r e i s l i t t l e chance o f making i t s MACRO language e x t e n s i b l e t o anyone e x c e p t t r a i n e d computer programmers. T h i s i s perhaps the main drawback o f the e x i s t -i n g i m p l e m e n t a t i o n o f GRASS. ( I t s h o u l d be noted t h a t t h i s p a r t i c u l a r drawback i s sh a r e d by v i r t u a l l y e v e r y a n i m a t i o n system, w i t h the most n o t a b l e e x c e p t i o n b e i n g B a e c k e r ' s SHAZAM, whi c h l i k e SUPER, i s implemented i n SMALLTALK). 72 D e F a n t i ' s system i s w e l l enough d e s i g n e d t h a t an e x p e r i e n c e d GRASS programmer i s almost unaware t h a t he/she does not have f u l l use of h i s / h e r v i s u a l - t a c t i l e f a c i l i t i e s i n d e v e l o p i n g the s p a t i a l and temporal a s p e c t s o f i n t e r - p r o c e s s r e l a t i o n s h i p s . But the l a c k o f awareness does not change the b a s i c f a c t t h a t the GRASS animator must commit a p r i m a r i l y v i s u a l - t a c t i l e p r o c e s s t o the p u r e l y i n t e l l e c t u a l (programming) f a c i l i t i e s o f h i s mind. The r e s u l t i n v i s u a l terms tends t o be s t i f f , u n p l a s t i c a n i m a t i o n . The r e a s o n f o r t h i s i s s i m p l e , and c o m p l e t e l y beyond D e F a n t i or any o t h e r programming v i r t u o s o ' s a b i l i t y t o change: the f l u i d , p l a s t i c s t y l e i n s u r e d by p - c u r v e s and o t h e r hand-waving t e c h n i q u e s i s w e l l o u t s i d e the r e a l m o f t r a c t a b l e mathematics, and t h e r e f o r e i s n o t l i k e l y t o be c a p t u r e d by any program i n any language. D e F a n t i ' s system i s saved from the r o b o t i c g r a c e l e s s n e s s o f some o f Whitney's e a r l y f i l m s or Knowlton's e a r l y systems by the f a c t o f b e i n g a b l e t o e x p l o i t drawn and knob-set de-s c r i p t i o n s , i n a d d i t i o n t o tho s e g e n e r a t e d i n the MACRO l a n -guage. A subsequent p a r t o f t h i s d i s c u s s i o n w i l l be devoted t o s t r a t e g i e s f o r b e t t e r combining the power o f computed hooks w i t h the v i s u a l g r a c e o f v i s u a l l y l o c a t e d hooks. The a n i m a t i o n system d e v e l o p e d by B e r t n i k and Wein a t the N a t i o n a l R e s e a r c h C o u n c i l o f Canada uses frame-by-frame de-s c r i p t i o n s o f i t s sequences o f a n i m a t i o n , and s y n c h r o n i z a t i o n i s a c h i e v e d by s p e c i f y i n g which frames i n one sequence a re t o be shown w i t h which frames i n a n o t h e r . T h i s sounds l i k e a 73 f a i r l y b r u t a l s y n c h r o n i z a t i o n t e c h n i q u e , but i n f a c t i t i s not bad, s i n c e f o r any two frames i n a g i v e n sequence one can s p e c i f y how many frames are t o be c r e a t e d between the two. Thus, d i f f e r e n t sequences are t i e d t o g e t h e r a t time-hooks i n c e r t a i n o f the key f r a m e s , and i t i s easy to i n s u r e t h a t a l l the sequences i n a g i v e n a n i m a t i o n have the same number o f c e l l s i n c o r r e s p o n d i n g time i n t e r v a l s . S p a t i a l s y n c h r o n i z a t i o n s are a c h i e v e d by v i s u a l l y p o s i t i o n i n g the c e l l s i n the d i f f e r e n t sequences w i t h r e s p e c t t o one a n o t h e r . ?4-TOWARDS THE DESIGN OF A BETTER SYSTEM * * * TOWARDS THE DESIGN OF A BETTER SYSTEM PROGRAMMING LANGUAGE STYLE SUBROUTINE EXTENSIONS TO EXISTING LANGUAGES PICTURE DRIVEN COMMAND LANGUAGES CONTROL STRUCTURE EXTENSIONS TO COMMAND LANGUAGES DATA STRUCTURE PROBLEMS THE GRAX DATA STRUCTURE STRATEGIES FOR INTERPRETATION OF COMPLEX DATA STRUCTURES METHODS WHICH DO NOT INVOLVE PRE-COMPUTATION METHODS WHICH INVOLVE SOME PRE-COMPUTATION RE-ARRANGEMENT OF THE DATA TREE PRE-COMPUTATION OF SELECTED SCALAR VALUES PRE-COMPUTATION OF SELECTED CONSTRAINT EQUATIONS PRE COMPUTATION OF SELECTED GRAPHICS VALUES PRE COMPUTATION OF EVERYTHING (COMPILATION) 7 5 PROGRAMMING LANGUAGE STYLE In p r e v i o u s s e c t i o n s , t h e r e have been r e f e r e n c e s t o the SUPER programming language, i n c l u d i n g mention o f some of the c o m p u t a t i o n a l and g r a p h i c p r i m i t i v e s t h a t i t w i l l c o n t a i n . But t h e r e has been no g e n e r a l d i s c u s s i o n of what type o f l a n -guage i t w i l l be, what i t s c o n t r o l s t r u c t u r e s a r e , how i t h a n d l e s d a t a , e t c . In the p r e s e n t s e c t i o n , we w i l l f i r s t r e v i e w some o f the s a l i e n t f e a t u r e s o f o t h e r systems, and on the b a s i s o f the e x p e r i e n c e g l e a n e d w i t h them d i s c u s s the s t r u c t u r e o f SUPER. We may d i s t i n g u i s h t h r e e broad c l a s s e s o f g r a p h i c l a n g u a g e s . The f i r s t i s s u b r o u t i n e - e x t e n s i o n s t o an e x i s t i n g l a n g u a g e . The second i s p i c t u r e - d r i v e n command la n g u a g e s . The t h i r d i s c o n t r o l - s t r u c t u r e e x t e n s i o n s t o command l a n g u a g e s . SUBROUTINE EXTENSIONS TO EXISTING LANGUAGES The f i r s t c l a s s c o n t a i n s most o f t h e s o f t w a r e p r o d u c t s a v a i l a b l e on mainframe systems which s u p p o r t g r a p h i c s , and most o f t h e s o f t w a r e packages s o l d by m a n u f a c t u r e r s o f g r a p h i c hardware. I n c l u d e d i n t h i s c l a s s i s a t l e a s t two languages b u i l t s p e c i f i c a l l y f o r a n i m a t i o n , namely A l a n K i t c h i n g ' s ANTICS, 4* These la n g u a g e s s t a r t w i t h and Baecker and G u e r i n ' s ZAPP. Some 7 6 e x i s i t n g l a n g u a g e , such as FORTRAisj or PDP-11 a s s e m b l e r , and add a c o l l e c t i o n o f s u b r o u t i n e s which p e r f o r m g r a p h i c f u n c -t i o n s . Some o f thes e packages c r e a t e new d a t a s t r u c t u r e s , and o t h e r s use the d a t a s t r u c t u r e s a v a i l a b l e i n the h o s t language. At f i r s t g l a n c e , t h i s appears to be a good approach, i n t h a t i f a r e a s o n a b l e h o s t language i s chosen, the e x t e n s i o n w i l l p r o v i d e a l l the f e a t u r e s o f the h o s t and a l l the new f e a -t u r e s o f the g r a p h i c e x t e n s i o n s . But t h e r e are s e v e r a l d i f f i c u l t i e s which make the subro u -t i n e e x t e n s i o n t e c h n i q u e a d i f f i c u l t one to r e a l i z e w e l l . The most o b v i o u s d i f f i c u l t y i s t h a t the g e n e r a l purpose computer languages a re d e s i g n e d f o r the e x p r e s s i o n of a l g o r i t h m s . As d i s c u s s e d i n p r e v i o u s s e c t i o n s , the needs o f a n i m a t i o n are f o r e x p r e s s i o n o f g r a p h i c p r o c e s s e s . These are not a l g o r i t h m i c i n t h e i r b a s i c n a t u r e . One e x p e c t s o f an a l g o r i t h m , f o r example, t h a t i t w i l l a c c e p t c e r t a i n i n p u t s , p r o c e s s them, produce ou t p u t s , and s t o p . A g r a p h i c p r o c e s s (or any p r o c e s s , f o r t h a t m a t t e r ) must accommodate a wide v a r i e t y o f asynchronous i n p u t s and i n c o r p o r a t e t h e changes i m p l i e d by t h e i n p u t s i n t o i t s e l f . U l t i m a t e l y , a p r o c e s s must m a i n t a i n , r a t h e r than c o n c l u d e . I n t e r a c t i v e l a n g u a g e s a re b e t t e r t h a n n o n - i n t e r a c t i v e l a n guages f o r w r i t i n g g r a p h i c s e x t e n s i o n s , s i n c e i n an i n t e r a c t i v e language the b a s i c s t r u c t u r e of the language i t s e l f i s a p r o c e s s which m a i n t a i n s , and the programming s t r a t e g i e s w hich a re used i n the language i t s e l f a r e o f t e n 77 a v a i l a b l e t o the programmer. For example, LISP'S READ, EVAL, PRINT l o o p can be emulated i n the user program as FIND-NEXT-GRAPHIC, GRAPHIC-EVAL, DRAW l o o p superimposed on the s t a n d a r d READ, EVAL, PRINT. But s t a r t i n g w i t h an i n t e r a c t i v e language i s no g u a r a n t e e o f s u c c e s s . BASIC, f o r example, i s j u s t not an adequate language to use as a base f o r g r a p h i c s . There are no r e a s o n a b l e mechanisms f o r adding new d a t a s t r u c -t u r e s , or m a n i p u l a t i n g any b u t the most r u d i m e n t a r y d a t a s t r u c t u r e s . LISP i s b e t t e r i n t h i s r e g a r d , but i n L I S P , a r i t h m e t i c i s d i f f i c u l t t o program and slow i n e x e c u t i o n . The h a n d l i n g o f a r r a y s i s i n g e n e r a l p r i m i t i v e , and a p p l y i n g a l g e b r a i c o p e r a t i o n s t o a r r a y s i n LISP i s p a i n f u l even t o t h i n k a b o u t . APL c e r t a i n l y s o l v e s t h i s l a s t p r o b l e m , a t l e a s t f o r t h o s e w i t h s u f f i c i e n t background i n a l g e b r a t o f i g u r e out how t o p e r f o r m s i m p l e t a s k s s i m p l y i n APL. But APL makes l i t t l e p r o v i s i o n f o r t h e o t h e r t y p e s o f d a t a s t r u c t u r e s , l i k e l i s t s , w h i c h are so u s e f u l i n g r a p h i c s . Each programming language makes s t r o n g assumptions about the t y p e o f o b j e c t s w h i c h w i l l be m a n i p u l a t e d w i t h i n i t . L I S P , f o r example, assumes t h a t i t w i l l be d e a l i n g w i t h s y m b o l i c , r a t h e r than n u m e r i c a l i n f o r m a t i o n , w h i l e APL makes e x a c t l y t h e o p p o s i t e a s s u m p t i o n . Such assumptions l e a d t o d i f f i c u l t i e s i n i m p l e m e n t a t i o n s . For example, the i m p l e m e n t o r s o f t h e UBC g r a p h i c e x t e n s i o n t o L I S P , GLISP, d e c i d e d t h a t s i n c e a r i t h m e t i c was so slow i n L I S P , t h e m i n i - c o m p u t e r which s u p e r v i s e d the d i s p l a y s h o u l d be used f o r 78 s c a l i n g o p e r a t i o n s , t r a n s l a t i o n s , e t c . T h i s l e d to the need t o t r a n s f e r d a t a back and f o r t h between the two machines, and due to the o b s o l e t e d e s i g n o f the minicomputer i n v o l v e d , the d a t a s t r u c t u r e s r e p r e s e n t i n g g r a p h i c o b j e c t s were i d i o s y n c r a t i c and d i f f i c u l t t o program or mo d i f y . The m i n i c o u l d n o t r e a s o n a b l y h a n d l e any s o r t o f s t a c k , and so f l e x i b l e g r a p h i c s u b r o u t i n i n g was n o t p o s s i b l e i n GLISP. Thus, L I S P ' s b a s i c a r i t h m e t i c d e f i c i e n c i e s l e d i n p r a c t i c e t o a s i t u a t i o n where L I S P ' s main s t r e n g t h s ( r e c u r s i o n and p r o c e s s i n g on a s t a c k ) were not f u l l y u s a b l e . There i s another d i f f i c u l t y w i t h the s u b r o u t i n e e x t e n s i o n a p p r o a c h , which goes beyond the s p e c i f i c programming c o n s t r u c t s and s t y l i s t i c l i m i t a t i o n s or assumptions made by p a r t i c u l a r programming l a n g u a g e s . The problem stems from the f a c t t h a t g e n e r a l purpose programming languages are g e n e r a l p u r p o s e . Truax and I have p o i n t e d out e l s e w h e r e t h a t any system f o r a n i m a t i o n i s i n f a c t a model o f a p a r t i c u l a r c o n c e p t i o n of the a n i m a t i o n p r o c e s s . A " s t r o n g " system i n t h i s sense i s one i n which the. c o n c e p t s o f a g i v e n model f o r the p r o c e s s are w e l l r e p r e s e n t e d , and i t i s t h e r e f o r e p o s s i b l e t o program i n the same c o n s t r u c t s as one t h i n k s . That i s , the system i s " h i g h l e v e l " i n the same sense as one t a l k s about h i g h l e v e l computing l a n g u a g e s . I * Truax has p o i n t e d o u t i n another paper t h a t t h e r e i s an 79 i n v e r s e r e l a t i o n s h i p between the s t r e n g t h o f a system f o r music c o m p o s i t i o n and i t s g e n e r a l i t y . The same arguments e s t a b l i s h the same i n v e r s e r e l a t i o n s h i p f o r a n i m a t i o n systems. G e n e r a l i t y here i s judged by the t o t a l number and type o f s i t -u a t i o n s which the system can h a n d l e . Thus a system which s t a r t s w i t h a g e n e r a l purpose programming language and adds g r a p h i c c a p a b i l i t i e s i s l i k e l y t o be a g e n e r a l system, and th u s by the Truax argument l i k e l y t o be a weak system. Weak systems s i p h o n too much o f the a n i m a t o r ' s time i n t o i s s u e s o f programming t e c h n i q u e , r a t h e r t h a n a l l o w i n g him/her t o put the energy i n t o the a n i m a t i o n per s e . That i s , a weak system has b u i l t i n t o i t most o f the f l a w s which were c r i t i c i z e d i n the f i r s t s e c t i o n o f t h i s t h e s i s . The o b v i o u s s o l u t i o n t o t h i s problem i s t o add more s u b r o u t i n e s , more d a t a s t r u c t u r e s , more c o n t r o l s t r u c t u r e s , e t c . t o the s u b r o u t i n e package, i n an attempt to b u i l d a s t r o n g system o f f i n one c o r n e r o f t h e weak system. But most programming languages do not t a k e a t a l l k i n d l y t o such a t t e m p t s . S t r o n g men weep and a n g e l s f e a r t o t r e a d i n a r e a s l i k e b u i l d i n g i n t e r a c t i v e h e i r a r c h y - o r i e n t e d e d i t o r s i n FORTRAN or PL 1. T e c h n i c a l d i f f i c u l t y a s i d e , t h i s whole p r o c e s s i s much more the work o f a systems programmer than o f an a n i m a t o r , and the i m p l e m e n t a t i o n language s h o u l d r e f l e c t more the needs o f good systems programming t e c h n i q u e than o f a n i m a t i o n . There are. no languages which are s u i t a b l e b o t h t o s o p h i s t i c a t e d system programming t a s k s and t o i n t e r a c t i v e use 30 by non-computer t r a i n e d a r t i s t s . Thus the b e s t one can a c h i e v e w i t h a s u b r o u t i n e e x t e n s i o n t o some language i s a compromise, or a c a l l f o r a new g e n e r a l purpose language. B e f o r e c o m m i t t i n g o u r s e l v e s t o e i t h e r o f these a l t e r n a t i v e s , we s h a l l l o o k t o the o t h e r t y p e s o f g r a p h i c s languages t o see i f t h e y o f f e r any l e s s b l e a k p r o s p e c t s . PICTURE DRIVEN COMMAND LANGUAGES The second g e n e r a l c l a s s o f g r a p h i c s languages i s the p i c t u r e d r i v e n command l a n g u a g e s . These i n c l u d e GENESYS, GRAX, both NRC sy s t e m s , SHAZAM, and the i n i t i a l v e r s i o n o f GRASS (the MACRO language b e i n g a l a t e r add-on). The NRC work on man-computer communications and Baecker"s work w i t h GENESYS demon s t r a t e the power and f l e x i b i l t y o f t h i s c l a s s o f systems, and the ac c e p t a n c e o f th e s e systems by a n i m a t o r s demonstrates t h a t the b a s i c d e s i g n p h i l o s o p h y i s a p p r o p r i a t e t o the needs o f a n i m a t i o n . The c h a r a c t e r i s t i c f e a t u r e s o f p i c t u r e d r i v e n command lang u a g e s a re (1) t h a t t h e y a c c e p t t e r s e commands i s s u e d e i t h e r t h r o u g h a p o i n t i n g mechanism ( l i g h t pen, t a b l e t and s t y l u s , e t c . ) and menu, or typed i n a t the key b o a r d , (2) t h a t t h e y use a n a l o g c o n t r o l s i n p l a c e o f numbers f o r s p e c i f y i n g v a r i o u s p a r a m e t e r s , (3) t h a t t h e y use p i c t u r e s and o t h e r g r a p h i c means f o r a c c e p t i n g d a t a and communicating w i t h the a n i m a t o r , (4) t h a t p i c t u r e s and o t h e r g r a p h i c o b j e c t s are b a s i c d a t a t y p e s as f a r as user i n t e r a c t i o n s i s co n c e r n e d . 81 These systems ace b u i l t over some language which i s u s u a l l y n o t a c c e s s i b l e t o the animator (SHAZAM, b u i l t over SMALLTALK, and the v a r i o u s TURTLE languages b u i l t over LOGO s t a n d i n g as n o t a b l e e x c e p t i o n s ) . T h i s means t h a t i n g e n e r a l , the l anguages a re not e a s i l y e x t e n s i b l e by the a n i m a t o r , and are h a r d t o c u s t o m i z e t o the i n d i v i d u a l a n i m a t o r ' s t a s t e s . The t e r s e command s t y l e i n t h e s e languages has some good consequences and some bad. On the good s i d e , a c q u i s i t i o n time t e n d s t o be s h o r t , s i n c e the s y n t a x tends t o be q u i t e s i m p l e . Ease o f a c q u i s i t o n i s not t h e o n l y p o s i t i v e f e a t u r e o f command la n g u a g e . The p r i m a r y s t r e n g t h o f such languages l i e s i n t h e i n s t r i n s i c power o f the v a r i o u s commands. In a w e l l d e v e l o p e d system, each command i s a c o n c i s e r e p r e s e n t a t i o n o f a v e r y complex p r o c e s s , a d i s t i l l a t i o n o f the e x p e r i e n c e (or a t l e a s t t h e c o n c e p t i o n s ) o f the programmer. Each command e x p r e s s e s a s e m a n t i c a l l y complete u n i t . For example, the DRAW command i n GRAX a l l o w s t h e user t o c r e a t e an e n t i r e d r a w i n g , u s i n g one o f t h r e e drawing modes. The command was d e s i g n e d t o be c o m p l e t e , so i t , r a t h e r than t h e a n i m a t o r , c a l l s t he v a r i -ous s u b r o u t i n e s needed t o a l l o c a t e memory, s t r u c t u r e a new d r a w i n g , add a new s t r u c t u r e t o the d i s p l a y l i s t , t e n d the s t y l u s , e t c . In the s u b r o u t i n e e x t e n s i o n t y p e s o f l a n g u a g e s , the tendency i s t o use the g e n e r a l programming c o n v e n t i o n s o f the o v e r a l l l a n g u a g e , which u s u a l l y o p e r a t e a t much lower l e v e l s 32 t h a n t h e commands i n a p i c t u r e d r i v e n system. T h i s c o n c i s e n e s s or d i s t i l l a t i o n e f f e c t i s what shapes the language as an a n i m a t i o n l a n g u a g e , r a t h e r than a g e n e r a l purpose computer language w i t h a n i m a t i o n c a p a b i l i t i e s . I t i s the commands t h a t p r o v i d e the s t r e n g t h ( i n the sense t h a t Truax d i s c u s s e s ) o f the system. The command language i s the s e t o f h a n d l e s on t h e b a s i c elements o f the p r o c e s s . I t becomes the a n i m a t o r ' s w o r k i n g v o c a b u l a r y , b o t h f o r e x p r e s s i n g and d e v e l o p i n g a n i m a t i o n i d e a s . T h i s f l a v o u r i s s i g n i f i c a n t l y d i l u t e d i n t h e s u b r o u t i n e e x t e n s i o n type o f language, s i n c e the h o s t language i s t h e p r i m a r y v e h i c l e f o r the e x p r e s s i o n of i d e a s On t h e n e g a t i v e s i d e , s i n c e the s y n t a x i s s i m p l e , i t i s d i f f i c u l t t o e x p r e s s many nuances. For example, i n GRAX's keyframe l a n g u a g e , t h e r e a re t h r e e b i n a r y s w i t c h e s which con-t r o l t h e i n t e r p o l a t i o n r o u t i n e . I t i s d e s i r e d t o a l l o w the anim a t o r t o s w i t c h w h i c h o p t i o n s a re i n e f f e c t f o r each p a i r o f keyframes i n a sequence, and t o a l l o w complete f l e x i b i l t y i n e d i t i n g a sequence. T h i s can be done i n a command l a n -guage, as i s d e m o n s t r a t e d by the NRC sy s t e m , b u t o n l y w i t h u n n e c e s s a r y d i f f i c u l t y . I t was d e c i d e d i n GRAX t o use a w r i t -t e n s c r i p t l anguage f o r keyframes, i n which a l l the i n f o r m a -t i o n can be c o n c i s e l y r e c o r d e d and viewed by the a n i m a t o r . E n t r i e s i n t o a s c r i p t can be made by p o i n t i n g a t menu i t e m s and g r a p h i c i t e m s or by t y p i n g keywords and names o f i t e m s . I n t h i s s e n s e , t h e keyframe language i s a p i c t u r e d r i v e n 83 command language. But i n c r e a t i n g a s c r i p t , one i s a c t u a l l y w r i t i n g a program f o r an i n t e r p r e t e r . The o b j e c t o f u s i n g the s c r i p t language i s the c r e a t i o n or e d i t i n g of a s c r i p t , not o f a g r a p h i c o b j e c t (the i n t e r p r e t a t i o n of the s c r i p t ) . There have been s e v e r a l mentions i n the p r e v i o u s s e c t i o n s o f p l a c e s where a d e s i r a b l e f e a t u r e f o r GRAX w i l l e x i s t i n SUPER, but does n ot e x i s t i n GRAX. Many o f these o c c u r r e n c e s are of the same n a t u r e , v i z . the d i f f i c u l t y o f e x p r e s s i n g nuance o f c h o i c e i n the s i m p l e s y n t a x o f a command language. Another drawback o f the command language approach i s the l a c k o f any p r o g r a m - s t r u c t u r i n g c o n s t r u c t s . Commands a r e , by t h e i r n a t u r e , i n t e n d e d f o r immediate e x e c u t i o n i n the environment which e x i s t s a t the i n s t a n t t h e y are i s s u e d . Thus, " i f . . . t h e n . . . " , " l o o p u n t i l . . . " , e t c . , have no r e a l p l a c e i n the lang u a g e . That i s , t h e r e are no mechanisms f o r r e c o r d i n g g e n e r a l s t r a t e g i e s f o r a n i m a t i o n s , nor f o r u s i n g the computer's a n a l y t i c power f o r making d e c i s i o n s . Such s t r u c t u r e s are not c o m p l e t e l y l a c k i n g from command l a n g u a g e s ; the v a r i o u s commands and command systems are ways o f a p p l y i n g s t r a t e g i e s and h a v i n g the computer make d e c i s i o n s on the b a s i s o f p i c t u r e s . For example, p-curve a n i m a t i o n i s no more than a complex s t r a t e g y f o r d e s c r i b i n g an a n i m a t i o n , ^ and the programs which i n t e r p r e t p-curve a n i m a t i o n do some f a i r l y f a n c y a n a l y s i s o f t h e i r i n p u t d a t a . The problem i s not the under-use o f computers, but the f a c t t h a t the animator 84 cannot g e t a t the b a s i c u n d e r l y i n g c a p a b i l i t i e s o f the machine e x c e p t where the d e s i g n e r has e x p l i c i t l y d e c l a r e d some c a p a b i l i t y w o r t h h a v i n g , and has had the i n g e n u i t y t o make i t a v a i l a b l e i n a form u s a b l e t o the animator (who i n most c a s e s , the d e s i g n e r has never met or t a l k e d t o ) . CONTROL STRUCTURE EXTENSIONS TO COMMAND LANGUAGES In r e c o g n i t i o n o f t h e s e d i f f i c u l t i e s , D e F a n t i b u i l t h i s MACRO language as an add-on t o GRASS. GRASS-MACRO i s an exam-p l e o f the t h i r d g e n e r a l s t y l e o f g r a p h i c s l a n g u a g e s , the con-t r o l s t r u c t u r e e x t e n s i o n s t o command la n g u a g e s . T h i s approach i s c h a r a c t e r i z e d by h a v i n g a p i c t u r e d r i v e n command language o f t h e type d e s c r i b e d i n t h e l a s t s e c t i o n , but h a v i n g i n a d d i -t i o n some computer programming s t r u c t u r e s which a l l o w the an i m a t o r t o b u i l d s t r a t e g i e s and e x p l i c i t l y make and a c t on d e c i s i o n s . XEROX C o r p e r a t i o n s 1 s SHAZAM and the LOGO p r o j e c t 1 s TURTLE a l s o have t h i s f l a v o u r , a l t h o u g h t h e y were not i n t e n d e d as a n i m a t i o n systems f o r a r t i s t s , b ut r a t h e r as d e m o n s t r a t i o n systems and t o o l s f o r e x p l o r i n g problem s o l v i n g t e c h n i q u e s and person-computer i n t e r a c t i o n . A l t h o u g h t h e s e systems have much to t e a c h i n t h e way o f programming s t y l e and system d e s i g n , each o f them has a v e r y l i m i t e d r e p e r t o i r e o f g r a p h i c c a p a b i l i t i e s , and t h e r e f o r e , n e i t h e r i s v e r y good as an a n i m a t i o n system. 85 D e F a n t i ' s system, on the o t h e r hand, grew out o f needs a r i s i n g i n a working a n i m a t i o n system. He found i t d e s i r a b l e t o i n c l u d e i n MACRO the IF...THEN... s t r u c t u r e (and of c o u r s e , some c o n d i t i o n a l s ) a DO-WHILE type o f l o o p s t r u c t u r e , and a c l a s s o f d a t a e x t r a c t o r s f o r g e t t i n g a t c u r r e n t s e t t i n g s of knobs, e t c . , from w i t h i n r u n n i n g programs. These l a s t are h i s " l o o p l e s s v a r i a b l e s " , and are perhaps the most u s e f u l c o n c e p t t o emerge from h i s work. By c h o o s i n g t o add programming c o n s t r u c t s t o a p o w e r f u l command la n g u a g e , D e F a n t i a v o i d s the p i t f a l l i m p l i c i t i n the s u b r o u t i n e e x t e n s i o n a pproach. That i s , GRASS i s i n s t r i n s i c a l l y a s t r o n g system i n the sense t h a t Truax d i s c u s s e s , and t h e r e f o r e any r e a s o n a b l e e x t e n s i o n o f GRASS i s l i k e l y t o r e t a i n the s t r e n g t h . GRASS a l r e a d y p o s s e s s e d the h i g h - l e v e l d a t a s t r u c t u r e s and the b a s i c ways o f r e f e r r i n g t o them which c h a r a c t e r i z e a s t r o n g system, so what MACRO i s i n e f f e c t d o i n g i s p r o v i d i n g more f l e x i b l e and p o w e r f u l ways o f t h i n k i n g w i t h i n an e s t a b l i s h e d p a radigm. The d i s a d v a n t a g e o f weak systems i s not t h a t t h e r e a re t o o many ways o f t a l k i n g about t h i n g s , but t h a t t h e r e a re t o o few t h i n g s t h a t can be t a l k e d about i n j u s t a few words. Adding new programming s t r u c t u r e s does not reduce the number o f t h i n g s which a l r e a d y e x i s t , nor does i t d i m i n i s h the power and c o n c i s e n e s s i n h e r e n t i n t h o s e t h i n g s . The GRASS-MACRO animator i s always w o r k i n g i n t o the GRASS model o f a n i m a t i o n , r a t h e r than away from l o w - l e v e l computing c o n c e p t s . Even i f MACRO were a f u l l y 86 g e n e r a l programming l a n g u a g e , i t i s u n l i k e l y t h a t anyone would abandon the c a p a b i l i t i e s b u i l t i n t o the GRASS commands and d a t a s t r u c t u r e s i n f a v o u r o f the s t r u c t u r e l e s s l e v e l o f g e n e r a l l a n g u a g e s w i t h s u b r o u t i n e e x t e n s i o n s . Thus, t h e GRASS-MACRO approach r e a l i z e s most o f what i s promised by t h e s u b r o u t i n e e x t e n s i o n a p p r o a c h , as w e l l as a l l the s t r e n g t h o f models i n h e r e n t i n the command language a p p r o a c h , w i t h o u t b e i n g s u b j e c t t o the t e c h n i c a l or c o n c e p t u a l d i f f i c u l t i e s i n h e r e n t i n t h e fo r m e r , or t h e s e v e r e l i m i t a t i o n s i m p l i c i t i n the l a t t e r . U n f o r t u n a t e l y , no m a t t e r how good the s t r a t e g y , GRASS-MACRO s u f f e r s some d i f f i c u l t i e s a t the i m p l e m e n t a t i o n l e v e l . The number c r u n c h i n g c a p a b i l i t i e s o f MACRO a r e not up t o t h e r i g o r s o f p-c u r v e d a t a e x t r a c t i o n or keyframe i n t e r p o l a t i o n , and GRASS does n ot o f f e r t h e s e as p r i m i t i v e o p e r a t i o n s . T h e r e f o r e the GRASS-MACRO animator has t o do w i t h o u t t h e s e a n i m a t i o n t y p e s . But i t was shown i n a p r e v i o u s s e c t i o n t h a t b o t h o f t h e s e a n i m a t i o n t y p e s can w e l l be p a r t o f a s t r o n g a n i m a t i o n system. That i s , t h e l i m i t i s i n the i m p l e m e n t a t i o n , r a t h e r t h a n i n the c o n c e p t i o n . More g e n e r a l l y , t h e GRASS-MACRO d a t a s t r u c t u r e s have no mechanisms b u i l t i n t o them f o r h a n d l i n g complex mappings o f a home space i n t o a v i e w i n g space. MACRO i s n o t r i c h enough t o a l l o w such mappings t o be e s t a b l i s h e d i n a g e n e r a l way, and i t i s a v e r y d i f f i c u l t t a s k t o b u i l d good commands f o r mappings, 87 s i n c e the v a r i e t y o f mapping types and the number of o p t i o n s , modes, e t c . , i n each type i s so g r e a t . What i s r e q u i r e d i s a language which c o n t a i n s v e r y w e l l - d e v e l o p e d d a t a s t r u c t u r e s and w h i c h makes p o w e r f u l , f l e x i b l e programming t e c h n i q u e s a v a i l a b l e t o the animator f o r e x p l o i t i n g the f u l l p o t e n t i a l of the d a t a s t r u c t u r e s . Commands s h o u l d be i n c l u d e d f o r h a n d l i n g some o f the more u s e f u l and r o u t i n e t y p e s o f mappings, but t h e r e s h o u l d i n a d d i t i o n be programming p r i m i t i v e s a v a i l a b l e f o r e x p l o i t i n g p o s s i b i l i t i e s not e x p l i c i t l y d e v e l o p e d through the commands. Thus the e x t e n s i o n down from the command language i n t o a programming language s h o u l d not s t o p , as does MACRO, w i t h a few g e n e r a l l y u s e f u l programming t e c h n i q u e s . MACRO i s w r i t t e n i n assembler l a n g u a g e , which i s t o say t h a t i t i s t o t a l l y i n e x t e n s i b l e as f a r as the animator i s co n c e r n e d . The c h o i c e o f assembler as an i m p l e m e n t a t i o n language i s t o t a l l y i n e x c u s a b l e e x c e p t by a p p e a l t o such merely p r a g m a t i c c o n s i d e r a t i o n s as a v a i l a b i l i t y o f language p r o c e s s o r s , and tim e and space e f f i c i e n c y o f code. I d e a l l y , t he i m p l e m e n t a t i o n language w i l l be the same as the programming e x t e n s i o n t o the command lang u a g e , so t h a t the e x t e n s i o n w i l l n o t be c u t o f f , as i t i s i n MACRO, by l i m i t s t o the programmer's s t a m i n a . A l s o , i f the language i s w e l l c h o s e n , any s u p p o r t i t does p r o v i d e f o r h a n d l i n g d a t a s t r u c -t u r e s w i l l be a v a i l a b l e t o the. animator as w e l l as t o the systems programmer. 88 But t h i s p u t s s e v e r e r e s t r i c t i o n s on the languages which may be used. F i r s t , an i n t e r a c t i v e language i s r e q u i r e d , s i n c e o t h e r w i s e , t h e i n t e r p r e t e r f o r t h e a n i m a t i o n language w i l l have t o be b u i l t , and t h e r e f o r e a c e n t r a l p a r t o f the . system w i l l n o t be e x t e n s i b l e . Whether t h e language i s s t r i c t l y i n t e r p r e t i v e o r i n c r e m e n t a l l y c o m p i l e d p r o b a b l y has l i t t l e e f f e c t on the f l a v o u r o f t h e system. But i n t e r p r e t e r s w h i c h have a s s o c i a t e d c o m p i l e r s t e n d t o produce f a s t e r , more s p a c e - e f f i c i e n t code, w h i c h i s v e r y d e s i r a b l e i n an a n i m a t i o n system. Second, t h e language s h o u l d have v e r y good p r i m i t i v e s f o r h a n d l i n g i t s d a t a t y p e s and a d d i n g new d a t a t y p e s a t t h e a p p l i c a t i o n program l e v e l . The need f o r such c a p a b i l i t i e s stems from t h e d i v e r s i t y o f d a t a t y p e s needed i n g r a p h i c s . B a s i c p i c t u r e s a r e u l t i m a t e l y r e p r e s e n t e d by f i l e s o f numbers, w h i l e t h e r e l a t i o n s between p i c t u r e s a r e r e p r e s e n t e d by l i s t s and o t h e r p o i n t e r - o r i e n t e d s t r u c t u r e s . T h i r d , t h e language s h o u l d have as l i t t l e i n t h e way o f d e c l a r a t i o n s t a t e m e n t s , s t r a n g e s y n t a c t i c c o n v e n t i o n s , e t c . , as p o s s i b l e , s i n c e i t i s t o be used by non-computer s p e c i a l -i s t s . SMALLTALK, w h i c h i s i n t e r a c t i v e and i n t e r p r e t i v e , seems t o be t h e main c o n t e n d e r f o r t h e i m p l e m e n t a t i o n language r e q u i r e d . SIMULA, i f i t were an i n t e r p r e t i v e l anguage, would a l s o be i n t h e r u n n i n g . Even beyond b e i n g i n t e r p r e t i v e , SMALL-TALK has some advantages: (1) G r a p h i c s s u p p o r t i s b u i l t i n t o t h e 3 9 la n g u a g e , (2) i t was deve l o p e d f o r use by non-computer s c i e n t i s t s , and (3) one o f the g o a l s o f the d e s i g n was to be as f l e x i b l e as SIMULA. On the o t h e r hand, XEROX has not r e l e a s SMALLTALK. 90 DATA STRUCTURE PROBLEMS In p r e c e d i n g s e c t i o n s , we have mentioned a number o f c a p a b i l i t i e s which SUPER w i l l have and which are not possessed by GRAX. The r e a s o n t h a t GRAX l a c k s some o f the mentioned f e a t u r e s i s i t s l a c k o f a programming lan g u a g e , as was d i s c u s s e d i n t h e p r e v i o u s s e c t i o n . Other d e f i c i e n c i e s o f GRAX, n o t a b l y t h o s e i n v o l v i n g complex mapping c a p a b i l i t i e s , cannot be r e c t i f i e d w i t h o u t s i g n i f i c a n t e x t e n s i o n s to the s t r u c t u r e o f the i n t e r p r e t e r and a s s o c i a t e d systems. In the p r e s e n t s e c t i o n , I w i l l f i r s t r e v i e w p a r t s o f the e x i s t i n g d a t a and p r o c e s s i n g s t r u c t u r e , and then d i s c u s s some o f i t s d i f f i c u l t i e s , and p o s s i b l e s o l u t i o n s . THE GRAX DATA STRUCTURE Every GRAX g r a p h i c o b j e c t i s r e p r e s e n t e d as a r o o t e d , d i r e c t e d graph w i t h no l o o p s . T h i s i s c a l l e d a t r e e by those who do not mind l e a v e s b e i n g shared by v a r i o u s b r a n c h e s . There a r e f i v e t y p e s o f nodes which may appear i n a t r e e . They are (1)GROUPS, ( 2 ) g l o b a l MODIFY 1s, (3)P-CURVES, (4)KEYFRAMES, and (5)SKETCHES. GROUPS a c c e p t one a r c i n , and have one or more a r c s o u t . They have no i n t e r n a l s t r u c t u r e . That i s , a l l a GROUP does i s i n s t r u c t the i n t e r p r e t e r t h a t a l l the a r c s out are t o be d i s -p l a y e d i n the same frame. 91 The i n t e r p r e t e r ' s response t o a GROUP node i s t o s u p e r v i s e the d i s p l a y o f each a r c o u t , keeping enough s t a t i s t i c s t o be a b l e t o i d e n t i f y which a r c i s b e i n g i n t e r -p r e t e d i f a s t y l u s h i t o c c u r s . The second c l a s s o f nodes i s the g l o b a l MODIFiers. These have e x a c t l y one a r c i n and one a r c o u t . They a l s o a c c e p t s e v e r a l c o n s t a n t p a r a m e t e r s . Each parameter s e t s some p a r t o f the g l o b a l c o n t e x t ( e . g . r o t a t i o n , p o s i t i o n ) f o r d i s p l a y i n g whatever g r a p h i c s appear on the a r c o u t . The i n t e r p r e t e r ' s response t o a MODIFY node i s t o c o n c a t e n a t e a m a t r i x r e p r e s e n t i n g the g l o b a l p a r a m e t e r s w i t h t h e m a t r i x r e p r e s e n t i n g the c u r r e n t g r a p h i c c o n t e x t i n the P i c t u r e System. The t h i r d c l a s s o f nodes i s t h e P-CURVES. These have one a r c i n , and two a r c s o u t . One o f t h e s e , c a l l e d the " p a t h " , can o n l y a c c e p t a s k e t c h , w h i l e the o t h e r .arc i s g e n e r a l . The pa t h i s e s s e n t i a l l y a s t a t i c parameter o f the node, r a t h e r than a t r u l y s e p a r a t e a r c on the t r e e , so i t i s f o r many pu r p o s e s p o s s i b l e t o t h i n k o f a P-CURVE as c o n t a i n i n g o n l y one a r c i n and one a r c o u t . The r e sponse o f the i n t e r p r e t e r o f the P-CURVE i n v o l v e s a n a l y z i n g t h e a n i m a t i o n ' s i n t e r n a l c l o c k and t i m i n g p a r a m e t e r s t o d e t e r m i n e w h i c h phase o f the a n i m a t i o n i s c u r r e n t . The f i r s t and l a s t p h a s e s , b e i n g i n v i s i b l e , cause no g r a p h i c s , and no f u r t h e r a c t i o n by the i n t e r p r e t e r . The second and f o u r t h 92 phases r e q u i r e a s t a t i c p i c t u r e . The p r e s e n t a t i o n parameters c o r r e s p o n d i n g t o the f i r s t or l a s t p o i n t i n the pa t h i s found, the c o r r e s p o n d i n g m a t r i x i s s e n t t o the P i c t u r e System, and the i n t e r p r e t e r i s c a l l e d r e c u r s i v e l y on the scope. D u r i n g the t h i r d phase, the a n i m a t i o n p r o p e r , the a l g o r i t h m d e s c r i b e d i n a p r e v i o u s s e c t i o n i s used t o d e t e r m i n e the c u r r e n t p a r a m e t r i c v a l u e s t o be s e t i n the t r a n s f o r m a t i o n m a t r i x . The m a t r i x i s s e n t t o the P i c t u r e System, and the i n t e r p r e t e r i s c a l l e d on the scope. The KEYFRAME a n i m a t i o n s are the f o u r t h c l a s s o f nodes. As w i t h g r o u p s , the KEYFRAMES have one a r c i n and some number of a r c s o u t . The a r c s o u t are not g e n e r a l . Each a r c must ta k e a SKETCH. As w i t h P-CURVES, t h i s sometimes makes i t more c o n v e n i e n t t o t h i n k o f a KEYFRAME and a l l i t s SKETCH 'S as a s i n g l e , u n d i v i d e d node. I n t h i s v i e w , t h e KEYFRAME i s a t e r -m i n a l node. The i n t e r p r e t e r ' s response t o the KEYFRAME node i s f a i r l y complex. F i r s t , t h e master c l o c k and the a n i m a t i o n ' s i n t e r n a l c l o c k a r e checked t o f i n d out which phase the a n i m a t i o n i s i n , j u s t as w i t h t h e P-CURVES. In the t h i r d phase, the a n i m a t i o n p r o p e r , the i n t e r n a l c l o c k and the r e l a t i v e t i m i n g between keyframe p a i r s are used t o compute w h i c h i s t h e c u r r e n t p a i r , and what f r a c t i o n o f the i n t e r p o l a t i o n has a l r e a d y t a k e n p l a c e . P o i n t e r s t o the two ke y f r a m e s , t h e f r a c t i o n a l v a l u e , and a word i n d i c a t i n g which 9 3 i n t e r p o l a t i o n o p t i o n s are i n e f f e c t ( a l s o s t o r e d i n the KEYFRAME i t s e l f ) are passed as arguments t o the i n t e r p o l a t o r p r o p e r . T h i s s u b r o u t i n e opens a s c r a t c h r e g i o n o f memory, and w r i t e s i n t o i t the g r a p h i c d a t a which r e p r e s e n t s the c u r r e n t s t a t e o f the i n t e r p o l a t i o n . T h i s means t h a t each pass through t h e i n t e r p o l a t o r re-computes the mapping f u n c t i o n s , the d i s -t r i b u t i o n o f new p o i n t s , and the i n t e r p o l a t e d v a l u e s . T h i s scheme, though e x p e n s i v e i n t i m e , seems to be the o n l y way t o proceed w i t h o u t some f a i r l y complex c o m p i l e r . The g r a p h i c d a t a i n t h e s c r a t c h b u f f e r i s s e n t to the P i c t u r e System f o r d i s p l a y , and the b u f f e r i s r e l e a s e d back t o the c o r e p o o l . The l a s t t y pe o f node i s t h e SKETCH. T h i s node r e p r e s e n t s a s i m p l e , s t a t i c d r a w i n g , and t a k e s no parameters o f any t y p e . I t i s a t e r m i n a l node, and the i n t e r p r e t e r ' s a c t i o n i s j u s t the s u p e r v i s i o n o f , t h e d i s p l a y and bookkeeping f o r t h e s t y l u s - h i t s . A l l the t y p e s o f nodes e x c e p t the GROUPS and SKETCHs ta k e a u x i l i a r y s c a l a r p a r a m e t e r s which r e p r e s e n t the s c a l e , r o t a t i o n , e t c . , and the a n i m a t i o n s a l s o take t h e i r t i m i n g i n -f o r m a t i o n . The P-CURVE t a k e s f i v e r e l a t i v e t i m e v a l u e s and an a b s o l u t e t i m e . The KEYFRAMES ta k e t h e s e s i x time v a l u e s and an a d d i t i o n a l r e l a t i v e time v a l u e f o r each keyframe p a i r i n the a n i m a t i o n . When t h e s e p a r a m e t e r s are b e i n g s e t or e d i t e d , as i n the MODIFY or TRACK commands, the command h a n d l e r s w r i t e the 94 c h a n g i n g v a l u e s d i r e c t l y i n t o the node's d a t a f i e l d s , so t h a t ' as f a r as the i n t e r p e t e r i s c o n c e r n e d , each node i s s e l f - c o n t a i n e d w i t h r e s p e c t t o p a r a m e t e r s . The scheme works a d m i r a b l y so l o n g as the nodes are i n f a c t s e l f - c o n t a i n e d w i t h r e s p e c t t o t h e i r p a r a m e t e r s . However, t r u e h o o k - d e f i n e d mappings (as opposed t o the pseudo-hooks a c t u a l l y implemented so f a r i n GRAX) l e a d t o nodes which use e x t e r n a l r e f e r e n c e s f o r t h e i r p a r a m e t e r s . For example, i f the end time o f an a n i m a t i o n A i s hooked r e l a t i v e t o t he end o f a n i m a t i o n B, and B i s hooked i n t o the a b s o l u t e t i m e frame, t h e n the i n t e r p r e t a t i o n o f A r e q u i r e s an e v a l u a -t i o n o f B t o e v a l u a t e i t s time p a r a m e t e r s . I f B i s hooked or t i e d t o some o t h e r a n i m a t i o n s r a t h e r than t o the a b s o l u t e time frame, t h e s e w i l l a l s o have t o be examined b e f o r e A can be i n -t e r p r e t e d . S i n c e B may not appear i n the same g r a p h i c c o n t e x t as A ( e . g . , B may be s c a l e d d i f f e r e n t l y than A ) , B cannot be d i s -p l a y e d when i t i s f i r s t examined by the i n t e r p r e t a t i o n o f A. Thus a s i t u a t i o n may e x i s t which r e q u i r e s a g i v e n node t o be e v a l u a t e d s e v e r a l t i m e s i n the i n t e r p r e t a t i o n o f one frame. T h i s s i t u a t i o n s h o u l d be a v o i d e d because o f the t i m e c o n s t r a i n t s imposed by r e a l - t i m e d i s p l a y . B e f o r e the pseudo-hooks i n GRAX can be r e p l a c e d w i t h r e a l hooks, and b e f o r e the h o o k - h a n d l i n g c a p a b i l i t i e s o f SUPER can be p r o p e r l y d e f i n e d , a s t r a t e g y f o r d e a l i n g w i t h t h i s t y pe o f 95 s i t u a t i o n must be d e v i s e d . STRATEGIES FOR INTERPRETATION OF COMPLEX DATA STRUCTURES A l t h o u g h b i t s and p i e c e s o f GRAX's code are d e s i g n e d to d e a l w i t h some of the problems a s s o c i a t e d w i t h complex hook d e f i n e d maps, t h e r e i s no s y s t e m a t i c , cogent attempt t o s o l v e the problems mentioned above. In t h i s s e c t i o n , we s h a l l exam-in e s e v e r a l s t r a t e g i e s , d i s c u s s i n g t h e i r i m p l i c a t i o n s i n terms o f program s t r u c t u r e , e f f i c i e n c y , and i m p l i c a t i o n s f o r the s t r u c t u r e o f SUPER ' S l a n g u a g e . The s t r a t e g i e s t o be d i s c u s s e d a r e : 1- I n t e r p r e t a t i o n o f some t h i n g s more than once, sometimes f o r i n f o r m a t i o n , and once f o r d i s p l a y . 2- P r e - i n t e r p r e t a t i o n o f s e l e c t e d t h i n g s , making the r e s u l t s g l o b a l l y a v a i l a b l e . 3- Re-arrangement o f the graph i n o r d e r t o g e t a l l the needed v a l u e s a v a i l a b l e on one pass t h r o u g h the i n t e r p r e t e r . 4- C o m p i l a t i o n of the d a t a s t r u c t u r e r e p r e s e n t i n g an a n i m a t i o n i n t o an o p t i m i z e d program, and abandonment of the i n t e r p r e t i v e s t r u c t u r e . B e f o r e e n t e r i n g i n t o the d i s c u s s i o n o f the v a r i o u s o p t i o n s , we p r e s e n t an example o f a b i t o f a n i m a t i o n which might be de-f i n e d u s i n g hook-induced time mappings. A man throws a b a l l i n t o the a i r , and runs a c r o s s a f i e l d t o the p o i n t where the b a l l comes down, where he c a t c h e s i t . As he runs a l o n g , he t r i p s over a r o c k , which slows him down. 96 T h i s a n i m a t i o n might be d e s c r i b e d i n terms o f two p a t h s , one o f which i s the- b a l l ' s f l i g h t , and the o t h e r o f which i s the man's r u n . To i n s u r e the prop e r s y n c h r o n i z a t i o n o f the two sequences, they are t i e d i n time a t the i n s t a n t when the man throws the b a l l , and a t the i n s t a n t the man c a t c h e s the b a l l . "To keep the example s i m p l e , we assume t h a t t h e s e are the f i r s t and l a s t i n s t a n t s o f the a n i m a t i o n . Having t i e d the two a n i m a t i o n s t o g e t h e r , we have y e t to g i v e any a b s o l u t e time i n f o r m a t i o n about s t a r t i n g time or d u r a t i o n . The needs o f the o v e r a l l a n i m a t i o n may p r o v i d e some c o n s t r a i n t s i n t h i s r e g a r d . Suppose f o r example, t h a t the b a l l ' s h i g h p o i n t i s t o be s y n c h r o n i z e d w i t h some o t h e r e v e n t , l i k e a b i r d ' s e n t e r i n g the scene, and t h a t the man's t r i p p i n g over the ro c k i s a cue t o the ro c k t o walk away. Then we may t i e t h e b a l l ' s h i g h p o i n t t o some time t 0 and the man's t r i p p i n g t o some time t l i n the a b s o l u t e time framework, i n t e n d i n g t o t i e t h e o t h e r e v e n t s t o t h e s e t i m e s l a t e r . FIGURE XI i s a s c h e m a t i c r e p r e s e n t a t i o n o f t h i s s i t u a t i o n . Assuming t h a t the o n l y t i m e - s c a l i n g a l l o w e d i n r e s o l v i n g the t i m i n g i s t o be l i n e a r , t h e r e i s now enough i n f o r m a t i o n to unambiguously d e t e r m i n e S and F, the s t a r t and f i n i s h t i m e s , and any o t h e r n e c e s s a r y t i m i n g i n f o r m a t i o n . 91 %hiT3 6c 7 0 —L. go /4 ma.n STARTS BIA.D 6 nre R-S 90 I I / y 0 *2.a ... I -50 J HO I ' S o FIGURE X I : A T i m i n g Sequence I n v o l v i n g T i e s and A b s o l u t e Assignment o f Hooks. METHODS WHICH DO NOT INVOLVE PRE-COMPUTATION I t i s c l e a r t h a t some e x t e r n a l s c h e d u l e r i s r e q u i r e d t o s t a r t t he a n i m a t i o n a t S, s i n c e i f t h e i n t e r p r e t e r w a i t s u n t i l t0 t o s t a r t t h e a n i m a t i o n , h a l f o f i t cannot appear on t h e s c r e e n . Thus, u s i n g no p r e c o m p u t a t i o n r e q u i r e s more t h a n the minimum amount o f i n f o r m a t i o n n e c e s s a r y t o s p e c i f y a g i v e n a n i m a t i o n . I n p a r t i c u l a r , some s c h e d u l i n g command i s r e -q u i r e d , w h i c h d e f i n e s a hook a t t h e b e g i n i n g o f the a n i m a t i o n t o t i m e S. T h i s l e a d s t o t h e p o s s i b i l i t y o f i n c o n s i s t a n t s p e c i f i c a t i o n s , s i n c e any two o f S, . t-0, t l , and F a r e 98 s u f f i c i e n t to c o m p l e t e l y d e t e r m i n e the o t h e r two. To a v o i d t h i s , the system w i l l have t o (1) warn the user when o v e r - c o n s t r a i n e d c o n d i t i o n s have been s p e c i f i e d , or (2) jump from l i n e a r s c a l i n g to some more f l e x i b l e c o n s t r a i n i n g system when the l i n e a r c o n d i t i o n s are o v e r - c o n s t r a i n e d , or (3) use a minimum-error l i n e a r f i t l i k e l e a s t s q u a r e s . T h i s l a t t e r t e c h n i q u e i s p r o b a b l y w o r k a b l e , but not e n t i r e l y w i t h o u t i t s own d i f f i c u l t i e s . For example, i f t0 i n B, t l i n M and S are d e f i n e d , and some a l g o r i t h m o t h e r than l i n e a r s a t i s f a c t i o n i s used t o l o c a t e F, t h a t a l g o r i t h m w i l l have to s p e c i f y where t0 is' t o be mapped i n M, and where t l i s t o be mapped i n B. Assume t h a t a l l the r e q u i r e d assumptions are met. Then t o i n t e r p r e t B a t some time T, we must know where T f a l l s w i t h r e s p e c t t o S and F ( t h a t i s , t o know where on B's p-curve T f a l l s ) . S and t0 are d i r e c t l y a v a i l a b l e , s i n c e they are p a r t o f B. I n o r d e r t o l o c a t e F, the i n t e r p r e t e r w i l l scan B t o f i n d t l . I t w i l l t h e n have a l l the i n f o r m a t i o n r e l e v a n t t o F, and the i n t e r p r e t a t i o n o f B can run to c o m p l e t i o n . The v a l u e o f F may be s t o r e d i n some l o c a t i o n where i t w i l l be a v a i l a b l e t o M, w h i c h would reduce the work i n v o l v e d i n t h e i n t e r p r e t a t i o n o f M. T h i s w o r k - r e d u c i n g s t r a t e g y a l s o has some problems a s s o c i a t e d w i t h i t . When any o f the time v a l u e s are b e i n g changed, as f o r example on a knob, i t i s nec-e s s a r y t o r e p e a t the a r i t h m e t i c f o r f i n d i n g F u s i n g the new v a l u e once per d i s p l a y c y c l e . T h i s means t h a t not o n l y F, but whether or not F has changed must be s t o r e d . And i f F i s 99 changed from time to t i m e , then a l o n g w i t h the o t h e r i n f o r m a -t i o n , a f l a g must be s t o r e d i n d i c a t i n g whether F has been e v a l u a t e d t h i s c y c l e y e t . O t h e r w i s e , no form needing a v a l u e f o r F w i l l know whether i t s h o u l d compute the v a l u e or use the l a s t s t o r e d v a l u e . These c o n s i d e r a t i o n s suggest t h a t t h e r e s h o u l d be a l i b r a r y o f hooks m a i n t a i n e d o u t s i d e o f any o f the d a t a forms which r e f e r e n c e the hooks, and a p r o c e s s which keeps the i n -f o r m a t i o n about each hook c u r r e n t . These a r e n o t t h e major problems w i t h a t t e m p t i n g t o i n t e r p r e t complex mappings w i t h o u t any p r e - c o m p u t a t i o n s . The most d i f f i c u l t a s p e c t o f t h i s approach i s t h a t the i n t e r p r e t e r must have enough f l e x i b i l i t y and power t o know what i t i s t r y i n g t o d i g out o f e v e r y d a t a form which i t may examine. That i s , i f we assume t h a t the i n t e r p r e t e r w i l l always be , w r i t i n g f o r i t s e l f a s e t o f s i m u l t a n e o u s e q u a t i o n s or i n e q u a l i t i e s , t h e n t h e i n t e r p r e t e r must know what v a l u e s t o l o o k f o r i n a g i v e n d a t a form, how t o reduce the form, w i t h i t s a r b i t r a r y hook s t r u c t u r e , to an e q u a t i o n i n the same s e t o f v a r i a b l e s as are a l r e a d y i n use, how t o r e c o g n i z e the i r r e l e v a n c e o f a g i v e n hook t o the c o m p u t a t i o n a t hand, how t o r e s o l v e v a r i a b l e l i n k a g e s , and o f c o u r s e , how t o go about s o l v i n g s e t s o f l i n e a r c o n s t r a i n t s . I t must e x e r c i s e a l l t h i s knowledge a dozen or two t i m e s per second, and be a b l e t o do so no m a t t e r what o r d e r the 100 r e l e v a n t i n f o r m a t i o n i s p r e s e n t e d to i t . A program might be w r i t t e n which c o u l d p e r f o r m a l l the d e s i r e d t a s k s , and s o l v e the r e s u l t i n g s e t s o f e q u a t i o n s . Indeed, such a program w i l l have to be w r i t t e n , s i n c e one way or a n o t h e r , a l l the c o n s t r a i n t s w i l l have to be e v a l u a t e d , and a l l t he o t h e r e q u a t i o n s w i l l have t o be s o l v e d . S o l v i n g c o n s t r a i n t problems i s not a new or e x p e r i m e n t a l a r e a i n computer s c i e n c e . There i s no doubt t h a t the r e q u i r e d programs can be made to work. The q u e s t i o n i s whether they can be made t o work i n t h e environment o f r e a l - t i m e a n i m a t i o n . Here, i t i s d e s i r a b l e t h a t the program run i n one pass t h r o u g h the d a t a , no m a t t e r what o r d e r the d a t a i s p r e s e n t e d . T h i s means t h a t t a b l e s and s c r a t c h a r e a s w i l l have t o be a l l o c a t e d b e f o r e the program has a chance t o e v a l u a t e the needs o f the p a r t i c u l a r problem. The e x i s t i n g r o u t i n e s f o r the v a r i o u s m a t h e m a t i c a l o p e r a t i o n s i n v o l v e d were never i n t e n d e d t o run i n r e a l t i m e , and w i l l have to be r e w r i t t e n a c c o r d i n g l y . In s h o r t , even a t t e m p t i n g such a program would commit a program-mer t o a p r o b a b l e f a i l u r e i n v o l v i n g months or y e a r s o f the most b r u t a l type o f c o d i n g . One c o n c l u d e s t h a t some type o f p r e - i n t e r p r e t a t i o n c o m p u t a t i o n i s w a r r a n t e d . 1 0 1 METHODS WHICH INVOLVE SOME PRE-COMPUTATION RE-ARRANGEMENT OF THE DATA TREE Perhaps the s i m p l e s t c l a s s o f s o l u t i o n s t o some o f the d i f f i c u l t i e s c i t e d i n the p r e v i o u s s e c t i o n i s the re-arrangment o f the t r e e , or e q u i v a l e n t l y , computing an o p t i m a l t o u r i n g o r d e r . In some c a s e s , a v a l u e i s devel o p e d i n the i n t e r p r e t a t i o n o f one bra n c h o f a d a t a t r e e and used i n a n o t h e r . As l o n g as the v a l u e can be developed w i t h o u t r e f e r -ence t o some o t h e r b r a n c h , i t s u f f i c e s t o a s s u r e t h a t the bran c h c o n t a i n i n g the v a l u e i s i n t e r p r e t e d b e f o r e any r e f e r e n c e s t o i t are e n c o u n t e r e d . In the example o f the p r e -v i o u s s e c t i o n , t h e p o s i t i o n o f the rock a l o n g the r u n n e r ' s p a t h may be d e t e r m i n e d by some e x t e r n a l g r a p h i c p r o c e s s . I f t h a t p r o c e s s has been i n t e r p r e t e d b e f o r e the runner g e t s t o th e r o c k , t h e n the i n t e r p r e t e r need not r e i n t e r p r e t the branch which c o n t a i n s t h e r o c k ' s p o s i t i o n . There are l i k e l y t o be many s i m p l e c r o s s r e f e r e n c e s l i k e t h i s i n a complex a n i m a t i o n , and t h e r e f o r e i t i s worth the t r o u b l e t o o p t i m i z e the t o u r i n g o r d e r so as to m i n i m i z e the number o f r e i n t e r p r e t a t i o n s r e -q u i r e d . The a c t u a l o p t i m i z a t i o n i s not a l l t h a t d i f f i c u l t a t a s k . Assuming t h a t the i n t e r p r e t e r has enough c a p a b i l i t i e s t o t r a c k down what i t needs and e x t r a c t the needed v a l u e s , i t i s a s i m p l e p r o c e s s t o have i t keep r e c o r d s as to what 102 branches o f the t r e e were v i s i t e d i n d e v e l o p i n g a v a l u e f o r a g i v e n v a r i a b l e . A f t e r one pass through the t r e e , the i n t e r p r e t e r w i l l have a l i s t o f a l l the v a l u e s needed to compute a g i v e n v a l u e , and a l l the r e f e r e n c e s t o a g i v e n v a l -ue. T h i s l i s t can then be used as i n p u t to an o p t i m i z a t i o n program, which w i l l produce the o p t i m a l o r d e r i n g o f nodes, s u b j e c t t o t h e c o n s t r a i n t s imposed by the g r a p h i c c o n t e x t and the needs o f s p e c i f i c c o m p u t a t i o n s . O p t i m i z e r s are not g e n e r a l l y known f o r - t h e i r speed o f ex-e c u t i o n , so t h i s t e c h n i q u e c o u l d not be a p p l i e d on an e v e r y frame b a s i s . But t h a t i s not n e c e s s a r y , s i n c e most changes t o a g r a p h i c d a t a base w i l l have no e f f e c t on the o p t i m a l o r d e r . Indeed, o n l y t h o s e changes which a c t u a l l y r e s t r u c t u r e the t r e e , r a t h e r than changing a parameter i n some node, would r e -q u i r e the o p t i m i z e r t o be c a l l e d . Such changes occur when a new hook i s d e f i n e d , o r when a mapping i s f i r s t e s t a b l i s h e d , or when one hook i n a t r e e i s s u b s t i t u t e d f o r a d i f f e r e n t one which does n ot have the i d e n t i c a l hook s t r u c t u r e . The o n l y t i m e t h a t such changes can occur i s when the animator i s s u e s a command which e x p l i c i t l y changes something. The o p t i m i z e r w i l l be c a l l e d as p a r t o f the command response r o u t i n e , when t h e animator i s e x p e c t i n g a d e l a y or i n t e r r u p t i o n o f the a n i m a t i o n . 10 3 PRE-COMPUTATION OF SELECTED SCALAR VALUES Whenever some p r o c e s s d e r i v e s one o f i t s parameters from a knob, the q u e s t i o n a r i s e s whether the knob s h o u l d be read once per c y c l e , and the r e s u l t s t o r e d i n the p r o c e s s r e q u i r i n g i t , or s h o u l d be read on demand by the i n t e r p r e t e r when i t i s r e q u i r e d . As l o n g as each knob o c c u r s o n l y once i n a g i v e n frame, t h e r e i s no p r a c t i c a l d i f f e r e n c e i n the two t e c h n i q u e s . But s i n c e i t i s p o s s i b l e t h a t some node w i l l appear i n s e v e r a l p l a c e s i n a t r e e , i f the knob i s read on demand, i t i s p o s s i -b l e t h a t the same knob w i l l be read any number o f t i m e s f o r t h e same v a l u e . For example, i f the s i z e o f a c i r c l e r e p r e -s e n t i n g a wheel i n an a n i m a t i o n i s t a k e n from a knob, then each t i m e a wheel appears on the s c r e e n , the knob w i l l be r e a d . E x p e r i e n c e shows t h a t m u l t i p l e o c c u r r e n c e s ( i n s t a n c e s ) o f an image a r e a common o c c u r r e n c e i n computer a n i m a t i o n . I f i t were s i m p l y a case o f r e a d i n g a knob, then a g a i n would be no p a r t i c u l a r advantage t o p r e - r e a d i n g the knob, a t l e a s t i n systems l i k e PDP 11's where a knob v a l u e j u s t l o o k s l i k e another c o r e l o c a t i o n t o the program. But knobs t y p i c a l l y v a r y over ranges i n a p p r o p r i a t e t o the parameter they r e p r e s e n t . That i s , a knob may be connected t o an a n a l o g - t o - d i g i t a l c o n v e r t e r w i t h a range from -4000 t o 4000, w h i l e t h e program r e q u i r e s a v a l u e between -32000 and 0 t o r e p r e s e n t a s c a l e v a l u e or a b r i g h t n e s s . In t h i s c a s e , some program l e v e l p r o c e s s i n g must be done t o the v a l u e o f the 104 knob. Even i f the n e c e s s a r y p r o c e s s i n g i s s i m p l e , i t i s d e s i r ^ a b l e t o a v o i d r e p e a t i n g i t an a r b i t r a r y number o f times per frame. The a l t e r n a t i v e i s t o commission a t a s k which w i l l e x e c u t e once per c y c l e , b e f o r e the i n t e r p r e t e r i s c a l l e d on any d a t a f o r m s , which p r o v i d e s the needed v a l u e s to a l l the d a t a forms which r e q u i r e i t . T h i s s t r a t e g y i s used i n GRAX whenever a p r o c e s s i s connected t o any analog i n p u t . O r i g i n a l l y , GRAX read knobs on demand. When the new s t r a t e g y was implemented, t h e r e was a v i s i b l e speed-up i n the i n t e r p r e t a t i o n o f many d a t a t r e e s . The commissioning and de - c o m m i s s i o n i n g of t a s k s i s not d i f f i c u l t t o c o n t r o l . Whenever a knob i s c a l l e d f o r , i t i s c a l l e d f o r by some p a r t i c u l a r p r o c e s s , u s u a l l y a command. Thus, p a r t o f the command's i n i t i a l i z a t i o n r o u t i n e c o n s i s t s of c o m m i s s i o n i n g the knob t a s k s , and p a r t o f t h e command's e x i t r o u t i n e c o n s i s t s o f de - c o m m i s s i o n i n g the knobs. In a system l i k e GRASS where a knob can be a s s i g n e d t o a parameter i n d e f i n i t e l y , i t becomes t h e t a s k o f whatever system r o u t i n e f i r s t i n s t a l l s and u l t i m a t e l y removes g r a p h i c d a t a forms from the i n t e r p r e t e r ' s l i s t t o keep t r a c k o f the knobs. In e i t h e r o f these c a s e s , the d a t a t r e e u s i n g the knob and the i n t e r p r e t e r p r o p e r need not be concerned w i t h where the knob t a s k i s , or who owns i t , e t c . That i s , the e x i s t e n c e o f knobs and t h e i r d i f f e r e n c e s from s t a t i c p a r a m e t e r s i s c o m p l e t e l y t r a n s p a r e n t t o the i n t e r p r e t e r . 1 0 5 In' the above d i s c u s s i o n , a knob has been used as an exam-p l e o f a d a t a e x t r a c t o r whose v a l u e can be determined i n d e -p e n d e n t l y o f the environment i n which i t i s e v a l u a t e d . The same comments a p p l y w i t h much more f o r c e i n the case o f com-p l e x s o f t w a r e e x t r a c t o r s . For example, GRAX's p-curve e x t r a c t o r m a i n t a i n s i n the d a t a s t r u c t u r e a form c l o c k , which i s i n c r e m e n t e d each time the e x t r a c t o r i s c a l l e d . So i f the e x t r a c t o r were c a l l e d more th a n once i n the i n t e r p r e t a t i o n o f a g i v e n t r e e , the form c l o c k would be incremented more than once per frame. T h i s form c l o c k i s used by the e x t r a c t o r to d e t e r m i n e how f a r a l o n g the p-curve the c u r r e n t a n i m a t i o n has p r o g r e s s e d . Thus the a n i m a t i o n would speed alon g the path a t N t i m e s the i n t e n d e d r a t e , where N i s the number o f o c c u r r e n c e s o f the node i n the t r e e r e p r e s e n t i n g the frame. At the same t i m e , s i n c e t h e e x t r a c t o r i s more th a n a few l i n e s o f code, t h e t i m e i t t a k e s to i n t e r p r e t a g i v e n frame would i n c r e a s e as some f u n c t i o n o f N. N e e d l e s s t o say, i f the e x t r a c t o r were c a l l e d on demand, r a t h e r than once per d i s p l a y c y c l e , p e r f e c t t i m i n g and s y n c h r o n i z a t i o n between p r o c e s s e s would n o t be a c h i e v a b l e , nor would i t be p o s s i b l e t o g e t the maximum performance i n terms o f image c o m p l e x i t y i n a g i v e n frame. T h i s d i f f i c u l t y i s a v o i d e d by the same mechanism which was a p p l i e d t o knobs, namely moving the e x t r a c t i o n p r o c e s s o ut o f t h e i n t e r p r e t a t i o n o f the d a t a forms. 106 PRE-COMPUTATION OF SELECTED CONSTRAINT EQUATIONS The t e c h n i q u e s d e s c r i b e d i n the above two s e c t i o n s d i s c u s s ways o f d e a l i n g w i t h s e l f - c o n t a i n e d d a t a s o u r c e s , such as d a t a e x t r a c t o r s . But the example a t the b e g i n n i n g o f t h i s s e c t i o n shows t h a t t h e s e t e c h n i q u e s are not adequate. As mentioned i n the d i s c u s s i o n o f n o n - p r e i n t e r p r e t i v e schemes, i t ought t o be p o s s i b l e i n a program which i s not ex-pe c t e d t o run a t a n i m a t i o n speed t o s e t up and compute the e q u a t i o n s n e c e s s a r y t o c o m p l e x l y i n t e r l o c k e d t i m i n g p r o b l e m s . G i v e n t h i s , we may s e p a r a t e the s e t t i n g up o f the equa-t i o n s from t h e i r e v a l u a t i o n , l e a v i n g the former t a s k to run as a o n c e - o n l y p r o c e s s whenever a new d a t a s t r u c t u r e i s commissioned, and a c c e p t i n g the t a s k o f e v a l u a t i o n of the e q u a t i o n s as a o n c e - p e r - c y c l e t a s k . Once the e q u a t i o n s have been s e t up, the m a t r i c e s t r i a n g u l a t e d , t h e s c r a t c h memory a l l o c a t e d , e t c . , the a c t u a l e v a l u a t i o n o f the e q u a t i o n s w i l l p r o b a b l y be a s m a l l enough t a s k t o run a t r e a l - t i m e speed. The parameters o f the equa-t i o n s w i l l be updated o n l y once per frame, as was d i s c u s s e d i n the p r e v i o u s s e c t i o n , and the r e s u l t s o f the e v a l u a t i o n o f the c o n s t r a i n t s w i l l be made a v a i l a b l e b e f o r e the i n t e r p r e t e r i s c a l l e d i n any g i v e n frame. W i t h o u t a c t u a l l y implementing" a scheme l i k e t h i s , i t i s not p o s s i b l e t o make any good e s t i m a t e s o f the c o m p l e x i t y o f 107 mapping which can be r e s o l v e d i n r e a l t i m e . But t h e r e i s r e a s o n to a t l e a s t hope t h a t v e r y good r e s u l t s c o u l d be a c h i e v e d , s i n c e the e q u a t i o n s r e s u l t i n g from most g r a p h i c s i t -u a t i o n s would p r o b a b l y not be v e r y i n v o l v e d . PRE-COMPUTATION OF SELECTED GRAPHICS VALUES The t e c h n i q u e s d i s c u s s e d i n t h i s s e c t i o n a re somewhat s p e c i f i c t o the Evans and S u t h e r l a n d P i c t u r e System I , i n t h a t they r e f e r t o the d e t a i l s o f t h a t machine's hardware and programming s t r a t e g y . Most o f these comments would n o t , f o r example, a p p l y t o the DEC GT-40 g r a p h i c s system, because i t uses the same c o r e memory f o r i t s g r a p h i c s p r o c e s s o r and i t s CPU. On the o t h e r hand, many machines, such as the V e c t o r G e n e r a l and the Adage have some s i m i l a r i t i e s t o the Evans and S u t h e r l a n d i n the way d a t a i s h a n d l e d , and the s e comments w i t h a p p r o p r i a t e m o d i f i c a t i o n w i l l a p p l y t o them. The b a s i c s t o r a g e mechanism i n GRAX f o r s t a t i c g r a p h i c d a t a i s l i s t s o f X and Y e n d p o i n t s . The P i c t u r e System I , on the o t h e r hand, uses homogeneous c o o r d i n a t e s , and thus r e q u i r e s an X,Y,Z,W v e c t o r f o r each p o i n t . W i t h i n GRAX, the p a r t i t i o n i n g of e n d p o i n t s i n t o d i s c r e t e pen s t r o k e s ( i . e . the h a n d l i n g of "pen up" and "pen down" commands) i s s t o r e d as an e x p l i c i t p a r t i t i o n a t the head the l i s t o f e n d p o i n t d a t a . The b r i g h t n e s s o f a g i v e n p i c t u r e i s s t o r e d i n a g l o b a l p a rameter, which may be m o d i f i e d w i t h a GLOBAL BRIGHTNESS MODIFY command. W i t h i n the P i c t u r e System, b r i g h t n e s s i s i d e n t i f i e d w i t h the Z 138 c o o r d i n a t e i n the homogeneous v e c t o r r e p r e s e n t i n g a p o i n t , and the pen-up, pen-down f u n c t i o n s are handled by command words i n t e r s p e r s e d w i t h i n the d a t a . C o n v e r s i o n between the GRAX format and the P i c t u r e System format p r o b a b l y a c c o u n t s f o r 75-90% of the t o t a l CPU c y c l e s i n GRAX, so i t i s worth the e f f o r t t o t r y t o c u t the number o f c o n v e r s i o n s n e c e s s a r y . The approach t o be used i s t o do a l l the c o n v e r s i o n s i n s o f t w a r e (as i s a l r e a d y the c a s e ) , s a v i n g up the r e s u l t i n g d a t a i n a c o r e f i l e , r a t h e r than s e n d i n g i t d i r e c t l y t o t h e P i c t u r e System f o r d i s p l a y . That i s , the p i c t u r e i s p r e c o m p i l e d i n t o a d a t a s t r u c t u r e which needs no c o m p u t a t i o n b e f o r e b e i n g s h i p p e d v i a the DMA i n t e r f a c e t o the d i s p l a y p r o c e s s o r . A l l r e f e r e n c e s t o the o r i g i n a l s k e t c h are c o n v e r t e d t o r e f e r e n c e s t o the p r e - c o m p i l e d d i s p l a y f i l e , and the i n t e r p r e t e r d e a l s o n l y w i t h the l a t t e r , never h a v i n g t o do any o f t h e c o n v e r s i o n s a t frame r a t e s . T h i s approach has t h r e e drawbacks, none o f which a re as s i g n i f i c a n t as the advantages i n performance t o be g a i n e d by imp l e m e n t i n g the approach. The f i r s t drawback i s t h a t the c o m p i l e d d a t a form i s t w i c e as l a r g e as t h e uncompiled one. U s i n g the P i c t u r e System i n d o u b l e - b u f f e r mode t o ensure smooth a n i m a t i o n s , i t has the c a p a c i t y f o r h a n d l i n g up to 4093 e n d p o i n t s per frame. In c o m p i l e d form, each e n d p o i n t t a k e s f o u r words o f the computer's memory, and t h e r e a re a few words r e q u i r e d f o r each pen-up, pen-down o p e r a t i o n . Thus, t o i n s u r e adequate c o r e b u f f e r i n g , i t i s n e c e s s a r y t o s e t a s i d e 16K o f 10 9 memory. S i n c e i t may be d e s i r a b l e t o have the o r i g i n a l d a t a form a v a i l a b l e f o r e d i t i n g or o t h e r p r o c e s s i n g , t h i s 16K i s i n a d d i t i o n t o the 8k b u f f e r needed to c o n t a i n uncompiled d a t a f orms. Thus, a 24K b u f f e r i s r e q u i r e d t o i n s u r e adequate space i n a l m o s t a l l c o n d i t i o n s which may a r i s e . The PDP 11 has a l o g i c a l a d d r e s s space o f 32K i f memory management i s use d , and 28K w i t h o u t memory management. The o p e r a t i n g system and the GRAX programs need some sp a c e , and i t i s n o t d e s i r a b l e or even p o s s i b l e t o swap e v e r y t h i n g o f t e n enough t o make t h e needed space a v a i l a b l e . On the o t h e r hand, u s u a l l y when a p i c t u r e i s v e r y complex i t i s made up o f i n s t a n c e s o f some p i c t u r e . There i s o n l y need t o s t o r e one c o m p i l e d v e r s i o n o f the master image. That i s , a p i c t u r e made up o f 40 one-hundred p o i n t c i r c l e s t a k e s no l a r g e r a b u f f e r than a p i c t u r e w i t h one or two one-hundred p o i n t c i r c l e s . Thus, one may e x p e c t t h a t u s u a l l y much s m a l l e r b u f f e r s w i l l s u f f i c e . By a l l o w i n g the i n t e r p r e t e r t o d i s p l a y e i t h e r c o m p i l e d or uncompiled p i c t u r e s , the c h o i c e o f whether to c o m p i l e or i n t e r p r e t a g i v e n p i c t u r e may be made when the p i c t u r e i s f i r s t d e f i n e d , w i t h due r e g a r d t o the amount o f b u f f e r space c u r r e n t l y a v a i l a b l e . That i s , a s i m p l e scheme can be e f f e c t e d w hich w i l l o p t i m i z e f o r speed s u b j e c t t o the a v a i l a b i l i t y o f spa c e , and go t o the sl o w e r method o f i n t e r p r e t a i o n as neces-s a r y t o a l l o w maximum c o m p l e x i t y . 110 In the same s p i r i t , the v a r i o u s m a t r i c e s which c o n t a i n g r a p h i c c o n t e x t i n f o r m a t i o n may be pre-computed and s t o r e d i n c o r e , r a t h e r than re-computed each frame. The space p e n a l t y here i s n o t as g r e a t as i t i s w i t h the b a s i c p i c t u r e f i l e s , s i n c e an average p i c t u r e w i l l c o n t a i n o n l y a dozen or two m a t r i c e s , a t s i x t e e n words each. The time s a v i n g s on a p e r c e n t a g e b a s i s i s g r e a t e r i n t h i s c a s e , s i n c e the c o n v e r s i o n o f a few v a l u e s t o the p r o p e r r e p r e s e n t i n g m a t r i x i s o f t e n not a c o m p u t a t i o n a l l y t r i v i a l t a s k . But s i n c e t h e r e a r e r e l a t i v e l y few m a t r i c e s i n a g i v e n d i s p l a y , the a b s o l u t e s a v i n g s may not be g r e a t . The second drawback t o p r e - c o m p i l a t i o n o f d i s p l a y f i l e s f o r b a s i c g r a p h i c e n t i t i e s i s t h a t i t becomes d i f f i c u l t t o m a i n t a i n good communications between the g r a p h i c s p r o c e s s o r and the CPU. That i s , i t i s hard t o f i g u r e out what the user i s p o i n t i n g the s t y l u s a t . U s i n g the i n t e r p r e t e r w i t h i t s s l o w , p o i n t - b y - p o i n t method of d i s p l a y i n g d a t a , each p o i n t can be checked as i t i s drawn t o see i f i t i s w i t h i n some d e f i n e d d i s t a n c e o f the t a b l e t (There i s a mere 100+ % time overhead f o r t h i s s e r v i c e , s i n c e each p o i n t i s b e i n g drawn t w i c e — o n c e f o r d i s p l a y , and once f o r h i t - t e s t i n g . ) U s i n g the f a s t - a s - c a n - b e DMA s t r a t e g y , no h i t t e s t i n g i s p e r f o r m e d . There are two m o d i f i c a t i o n s p o s s i b l e t o the f a s t -as-can-be approach which, c o u l d be made t o s u p p o r t h i t t e s t i n g . The f i r s t a pproach would DMA out the d i s p l a y f i l e t w i c e , once f o r d i s p l a y and once f o r h i t t e s t i n g . T h i s approach would I l l r e t u r n o n l y t h e i n f o r m a t i o n t h a t a h i t had been d e t e c t e d somewhere, w i t h no c l u e as to which pen s t r o k e or i n d i v i d u a l l i n e segment had been h i t . The second m o d i f i c a t i o n would DMA out a p e n s t r o k e (or i f needed, an i n d i v i d u a l l i n e segment) at a t i m e , t w i c e . W i t h t h i s a p p r o a c h , f u l l s e n s i t i v i t y t o h i t s c o u l d be a c h i e v e d , but the advantage of DMA would be s i g n i f i -c a n t l y r e d u c e d . That i s , i t t a k e s v e r y l i t t l e l o n g e r over a DMA i n t e r f a c e t o send out 256 words than i t t a k e s t o send out two words. But s t r o k e - b y - s t r o k e or p o i n t - b y - p o i n t h i t t e s t i n g would r e q u i r e t h a t the time s a c r i f i c e be made. On the o t h e r hand, the advantage o f not h a v i n g t o c o n v e r t the two word GRAX r e p r e s e n t a t i o n t o the f o u r word P i c t u r e System r e p r e s e n t a t i o n would be r e t a i n e d . The t h i r d major drawback i s p u r e l y p r a g m a t i c . The hardware m a n u f a c t u r e r s s u p p l y w i t h the P i c t u r e System v e r y good s o f t w a r e f o r s u p e r v i s i n g the p o i n t - b y - p o i n t t r a n s f e r o f d a t a , w i t h h i t t e s t i n g . They a l s o s u p p l y good s o f t w a r e f o r DMA t r a n s f e r o f p r e - c o m p i l e d p i c t u r e f i l e s , w i t h no h i t t e s t i n g . They do not s u p p l y DMA t r a n s f e r s u p p o r t w i t h h i t t e s t i n g . What t h e y do not s u p p l y must be w r i t t e n from s c r a t c h i f i t i s t o be used, and the d e t a i l s o f c o n t r o l l i n g the hardware a r e d i f f i c u l t t o l e a r n and w r i t e . Not o n l y would new code have t o be w r i t t e n , but a new d a t a s t r u c t u r e would have t o be b u i l t , t o i d e n t i f y t h e p a r t i t i o n p o i n t s i n the c o m p i l e d p i c t u r e d a t a f i l e . That i s , i f d a t a were t o be s h i p p e d pen s t r o k e by pen s t r o k e , the 112 s h i p p i n g program must know how many d a t a c o r r e s p o n d t o one pen s t r o k e . T h i s i n f o r m a t i o n i s r e c o r d e d i n the form o f c o n t r o l words w i t h i n the c o m p i l e d d a t a f i l e , but i t i s o b v i o u s l y de-s i r a b l e t o have a e x t e r n a l , e x p l i c i t l i s t of p a r t i t i o n p o i n t s , so t h a t i t i s not n e c e s s a r y t o s e a r c h through the f i l e as i t i s b e i n g s e n t o u t . As an a l t e r n a t i v e t o an e x p l i c i t l i s t , the d a t a f i l e c o u l d be r e p r e s e n t e d as a l i n k e d l i s t , w h ich would be a l m o s t as f a s t t o p r o c e s s , and much e a s i e r to e d i t . The complete i m p l e m e n t a t i o n o f t h i s s t r a t e g y would r e -q u i r e f o u r modes o f o p e r a t i o n . The f i r s t s t r a i g h t n o n - p r e c o m p i l e d i n t e r p r e t a t i o n o f a s k e t c h , would be used when th e s k e t c h was f i r s t b e i n g d e f i n e d , s i n c e i t would be more time-consuming to r e c o m p i l e the s k e t c h each frame than t o r e - i n t e r p r e t i t . Once the s k e t c h i s co m p l e t e d , the f u l l frame, no h i t t e s t mode would be e n t e r e d . T h i s would be the u s u a l mode o f o p e r a t i o n , and i s t h e f a s t e s t o f a l l the modes i n e x e c u t i o n . When the system i s e x p e c t i n g the animator t o s e l e c t a p i c t u r e , the f u l l - f r a m e h i t t e s t mode i s e n t e r e d . A l t h o u g h the f u l l advtanges o f DMA t r a n s f e r and p r e - c o m p i l a t i o n a r e a c h i e v e d , t h e s k e t c h i s s h i p p e d o u t t w i c e , so t h e r e i s some l o s s o f t i m e . In the e d i t i n g o p e r a t i o n , the f o u r t h mode, which i s s i n g l e p e n s t r o k e a t a time w i t h h i t t e s t i n g , would be used. T h i s i s the s l o w e s t o f the p r e - c o m p i l e d modes, but g i v e s the s e l e c t i v i t y i n h i t t e s t i n g n e c e s s a r y t o the e d i t i n g o f a s k e t c h . (There are no p o i n t o r i e n t e d commands w i t h i n GRAX. A p o i n t - a t - a - t i m e e d i t o r f o r 1 1 3 runs as an e x t e r n a l program has been w r i t t e n by Shane C o p l i n , . a Computing S c i e n c e s t u d e n t a t Simon F r a s e r . ) The m o d e - s w i t c h i n g would be h a n d l e d by the command re s p o n s e r o u t i n e s . Whenever f u l l - f r a m e h i t t e s t i n g i s r e -q u i r e d , i t i s r e q u i r e d f o r e v e r y s k e t c h i n t h e d i s p l a y , so t h o s e commands r e q u i r i n g t h i s s e r v i c e would s i m p l y s e t a f l a g i n the i n t e r p r e t e r . S t r o k e - b y - s t r o k e h i t t e s t i n g i s o n l y r e -q u i r e d i n t h e ERASE command so t h i s command would be a b l e t o a p p l y t h e a p p r o p r i a t e i n d i c a t o r t o the i t e m b e i n g e d i t e d , and s w i t c h modes when the e d i t i s c o m p l e t e . T h i s i s t h e scheme c u r r e n t l y used t o b r i g h t e n s e l e c t e d i t e m s , and i t has shown i t s e l f t o be an e a s y t o implement and r e l i a b l e scheme. As was m e ntioned above, the drawbacks are not as s i g n i f i -c a n t as t h e e x p e c t e d advantages o f i m p l e m e n t i n g t h i s s t r a t e g y , so i t s h o u l d be done i n GRAX and i n any s u c c e s s o r s t o GRAX. PRE-COMPUTATION OF EVERYTHING(COMPILATION) I f a l l t h e s t r a t e g i e s d e s c r i b e d above were implemented, t h e r e would be l i t t l e work l e f t f o r the i n t e r p r e t e r t o do. B a s i c a l l y , t h e o n l y t a s k s l e f t t o i t would be t h e a c t u a l t o u r i n g o f t h e t r e e , s e t t i n g the c o n t e x t f o r any h i t t e s t i n g w h i c h was c u r r e n t l y i n e f f e c t , and s e n d i n g a l r e a d y computed m a t r i c e s and d i s p l a y f i l e s to the p i c t u r e p r o c e s s o r i n t h e r i g h c o r d e r . 1 1 4 O c c a s i o n a l l y , ( e . g . , when a S K E T C H was b e i n g e n t e r e d ) , a c o n v e r s i o n r o u t i n e would be c a l l e d r a t h e r than the DMA t r a n s f e r r o u t i n e . There would be o t h e r v a r i a t i o n s from time t o time i n the a c t u a l w o r k i n g s o f the c o m p i l e r . One view o f the s i t u a t i o n i s t h a t the v a r i o u s o p t i m i z a t i o n r o u t i n e s have b u i l t a program schema, one i n s t a n c e o f wh i c h i s e x e c u t e d each frame. The o v e r a l l s t r u c -t u r e o f the program schema i s : 1- E x t r a c t a l l s t a t i c v a l u e s from knobs, e t c . 2- E x t r a c t a l l dynamic v a l u e s from p - c u r v e s , e t c . 3- Use v a l u e s d e v e l o p e d i n (1) and (2) t o e v a l u a t e c u r r e n t c o n s t r a i n t s . . 4- Run t h r o u g h d a t a t r e e u s i n g v a l u e s developed i n (1) t h r o u g h (3) t o d i s p l a y the d a t a f i l e s i n the c o r r e c t o r d e r . The t r e e c o u l d be p r e - t o u r e d , so t h a t i n s t e a d o f u s i n g the i n t e r p r e t e r ' s d a t a l i n k a g e s and node-to-node l i n k a g e s , t h e r e would be jumps and s u b r o u t i n e c a l l s i n Step ( 4 ) . The r e s u l t would be a c o m p l e t e l y c o m p i l e d r e p r e s e n t a t i o n o f t h e d a t a t r e e . The main r e a s o n t h a t one might want to do t h i s l a s t c o m p i l e s t e p i s t o g a i n the few i n s t r u c t i o n s d i f f e r e n c e be-tween the i n t e r p r e t e r ' s s e a r c h f o r the nex t node and the c o m p i l e d program's s u b r o u t i n e jump. The i n t e r p r e t e r i s e f f i -c i e n t enough so t h a t the p r o b a b l e g a i n s i n time would be 1 1 5 n e g l i g a b l e . There a r e , however, some f a i r l y s i g n i f i c a n t grounds f o r a v o i d i n g the l a s t phase of the c o m p i l e o p e r a t i o n . F i r s t , the d i f f i c u l t i e s i n v o l v i n g h i t t e s t i n g which were mentioned i n the p r e v i o u s s e c t i o n are a m p l i f i e d i n a t o t a l l y c o m p i l e d scheme. In the c o m p i l e d program, t h e r e i s no e x p l i c -i t r e p r e s e n t a t i o n o f the t r e e . Thus i f any s u b r o u t i n e c a l l e d by t h e program needs t o know where i t i s i n the t r e e , t h a t i n -f o r m a t i o n w i l l have t o be c o m p i l e d i n as an argument v e c t o r f o r t he s u b r o u t i n e . In the i n t e r p r e t i v e scheme, the t o p l e v e l c a l l t o the i n t e r p r e t e r , each c a l l t o a GROUP i n s t r u c t i o n , and each c a l l t o a SKETCH i n s t r u c t i o n causes an e n t r y t o be made i n t o a t r a c e t r e e , so t h a t i f a h i t i s d e t e c t e d i n a s k e t c h , t h e l i n e segment h i t , t h e SKETCH o f which the segment was a p a r t , the a r c i n a GROUP o f which t h e s k e t c h was a p a r t , . . . b a c k t o the t o p - l e v e l name o f the it e m b e i n g i n t e r -p r e t e d i s a v a i l a b l e f o r use by whatever program t u r n e d on the h i t t e s t i n g . To m a i n t a i n t h i s l e v e l o f s p e c i f i c i t y i n h i t - t e s t i n g , the c o m p i l e r would have t o n o t o n l y l i s t what g r a p h i c s were t o be s e n t t o the p i c t u r e p r o c e s s o r , but would a l s o have t o w r i t e a c a l l t o the h i t - t r a c e r o u t i n e , and i n c l u d e the c u r r e n t c o n t e x t as an argument t o the c a l l . That i s , the c o m p i l e r w i l l have d i s t r i b u t e d i n f o r m a t i o n t h r o u g h o u t the program which i n t h e i n t e r p r e t e r can be e f f i c i e n t l y computed i n one c e n t r a l i z e d s i t e . I K As the h i t - t e s t i n g modes changed i n response t o commands e n t e r e d by t h e a n i m a t o r , the program r e p r e s e n t i n g the d a t a s t r u c t u r e would have t o be a p p r i s e d o f t h i s f a c t . Presumably, the program would j u s t check some f l a g somewhere i n a g l o b a l a r e a , r a t h e r t h a n be r e - c o m p i l e d . So, we f i n d t h a t s h o r t of r e c o m p i l i n g our program e v e r y time a n y t h i n g changes, we s t i l l have to r e f e r t o a g l o b a l d a t a v e c t o r t o f i n d o u t what t h e program i s to do. That i s , the c o m p i l e d program i s s t i l l no more than a program schema. The d i f f e r e n c e between t h i s and the o p t i m i z e d i n t e r p r e t i v e scheme i s p r - i m a r i l y t h a t the l a t t e r t a k e s the t r e e as d a t a , w h i l e the c o m p i l e d program wastes space d i s t r i b u t i n g i n f o r m a t i o n which can be as w e l l computed on t h e f l y . T h i s s i t u a t i o n i s even c l e a r e r i f we l o o k a t how a p r o -gram m i g h t h a n d l e a p i c t u r e which i s b e i n g added t o the c u r -r e n t d a t a . The ani m a t o r i s add i n g a new p o i n t e v e r y so o f t e n . ( I t c e r t a i n l y cannot be assumed t h a t the user w i l l add e x a c t l y one new p o i n t each.frame.) T h e r e f o r e some p r o c e s s e x t e r n a l t o the program r e p r e s e n t i n g the d a t a w i l l have t o be c a l l e d t o update what the program t h i n k s i t ' s d o i n g . Or, the program can c a l l as a s u b r o u t i n e e x a c t l y the same s u b r o u t i n e a l r e a d y c a l l e d by t h e i n t e r p r e t e r , w hich can f i g u r e out f o r i t s e l f what i t t h i n k s i t ' s d o i n g . A g a i n assuming t h a t we do not r e c o m p i l e e v e r y frame, we f i n d t h a t the c o m p i l e d program, l i k e t he o p t i m i z e d i n t e r p e t i v e scheme, i s r u n n i n g program schema r a t h e r t h a n s e l f - c o n t a i n e d programs. 117 G i v e n t h a t the d i f f e r e n c e between the two s t y l e s i s one o f d e c r e e o n l y , and t h a t the i n t e r p r e t i v e scheme t a k e s much l e s s n i t - p i c k i n g d i s t r i b u t i o n o f d a t a , and t h a t w r i t i n g programs which w r i t e programs i s not the e a s i e s t type o f t a s k i t seems a d v i s a b l e t o r e t a i n the i n t e r e p r e t i v e s t y l e o f execu t i o n . 118 CONCLUSIONS The a n a l y s i s p r e s e n t e d i n t h e f i r s t s e c t i o n o f t h i s work has met w i t h e n t h u s i a s t i c r e c e p t i o n amongst l o c a l a n i m a t o r s , and t h e ( s m a l l number o f ) a n i m a t o r s who have used t h e c u r r e n t i m p l e m e n t a t i o n o f GRAX have had no p a r -t i c u l a r c o m p l a i n t s c o n c e r n i n g t h e g e n e r a l p h i l o s o p h y and w o r k i n g s t y l e o f t h e system. T h i s e x p e r i e n c e argues t h a t t h e a n a l y s i s and b a s i c d e s i g n p h i l o s o p h y as d e v e l o p e d i n t h e f i r s t and second s e c t i o n s o f t h e t h e s i s s h o u l d be r e t a i n e d i n f u r t h e r developments o f GRAX. The e x t e n s i o n o f GRAX t o SUPER w i l l g r e a t l y s t r e n g t h e n t h e system by making i t more r e s p o n s i v e and e x p r e s s i v e w i t h r e s p e c t t o t h e G r a p h i c P r o c e s s paradigm. T h i s e x t e n s i o n w i l l have two major components: l i n g u i s t i c and computat-i o n a l . As argued i n t h e f i r s t p a r t o f t h e t h i r d s e c t i o n , GRAX s h o u l d be ex t e n d e d by t h e a d d i t i o n o f programming c a p a b i l i t i e s t o enhance t h e a l r e a d y e x i s t i n g p i c t u r e -d r i v e n s t y l e w h i c h c h a r a c t e r i z e s t h e p r e s e n t i n c a r n a t i o n . The f i n a l s e c t i o n d e s c r i b e s a s e r i e s o f c o m p u t a t i o n a l improvements, many o f w h i c h a r e n e c e s s a r y p r e c o n d i t i o n s t o t h e e x p a n s i o n o f t h e ti m e and space s y n c h r o n i z a t i o n cap-a b i l i t i e s o f GRAX. The changes d i s c u s s e d w i l l a l s o s i g n i f i c a n t l y improve t h e speed o f GRAX, and t h e r e b y i n c r e a s e i t s o v e r a l l u s e f u l n e s s . B o t h o f t h e s e r e a s o n s argue f o r p r o c e e d i n g w i t h t h e i m p l e m e n t a t i o n o f the new c o m p u t a t i o n a l s t r a t e g i e s . Work i s c u r r e n t l y under way t o ex t e n d GRAX a l o n g t h e l i n e s d i s c u s s e d . 119 REFERENCES 1- G o l d b e r g , A. and A l a n K a y , e d . SMALLTALK-72 INST-RUCTION MANUAL, XEROX P a l o A l t o R e s e a r c h C e n t e r , P a l o A l t o , C a l i f . , 1976 2- The L e a r n i n g R e s e a r c h G r o u p , PERSONAL DYNAMIC MEDIA, XEROX P a l o A l t o R e s e a r c h C e n t e r , P a l o A l t o , C a l i f . , 1976 3- C l a r k , J . H., " D e s i g n i n g S u r f a c e s i n 3-D", CACM, V o l . 1 9 , Num. 8, A u g u s t 1976 4- B a e c k e r , R. M., INTERACTIVE COMPUTER-MEDIATED  ANIMATION, Ph.D. T h e s i s , D e p a r t m e n t o f E l e c t r i c a l E n g i n e e r i n g , M a s s a c h u s e t t s I n s t i t u t e o f T e c h n o l o g y , 1969 5- D e F a n t i , T. A., THE GRAPHIC SYMBIOSIS S Y S T E M — A N ' INTERACTIVE MINI-COMPUTER ANIMATION GRAPHICS LANGUAGE  DESIGNED FOR H A B I T A B I L I T Y AND E X T E N S I B I L I T Y , Ph.D. T h e s i s , D e p a r t m e n t o f C o m p u t e r a n d I n f o r m a t i o n S c i e n c e , O h i o S t a t e U n i v e r s i t y , 19 73 6- D e F a n t i , T. A., "The D i g i t a l Component o f t h e C i r c l e G r a p h i c s H a b i t a t " , P r o c . NCC-76, 19 76 7- D e F a n t i , T. A., "Towards L o o p l e s s I n t e r a c t i v e - . G r a p h i c s P r o g r a m m i n g " , P r o c . C o n f : C o m p u t e r G r a p h i c s , P a t t e r n R e c o g n i t i o n , a n d D a t a S t r u c t u r e , ( I E E E CAT #75CH0981-1C), pp 3 5 2 - 3 5 5 , May, 1975 8- B u r t n y k , N. a n d M. W e i n , " C o m p u t e r G e n e r a t e d K e y f r a m e A n i m a t i o n , " J . S o c i e t y o f M o t i o n P i c t u r e a n d T e l e v i s i o n  E n g i n e e r s , V o l 8 0 , Num. 3, M a r c h 1 9 7 1 , pp 149-153 9- B u r t n y k , N. a n d M. W e i n , "Towards a C o m p u t e r A n i m a t i o n P r o d u c t i o n T o o l , P r o c . E u r c o m C o n g r e s s , P u b : O n l i n e L t d . , B r u n e i , E n g l a n d , May 1 9 7 4 , pp 174-185 1 0 - B u r t n y k , N. a n d M. W e i n , "Computer A n i m a t i o n o f F r e e F o r m I m a g e s " , P r o c . SIGGRAPH-75, V o l . 1 9 , Num. 1, S p r i n g 7 5 , pp 78-80 1 1 - K i t c h i n g , A., " A N T I C S — G r a p h i c A n i m a t i o n By C o m p u t e r " , C o m p u t e r s a n d G r a p h i c s , V o l . 2, Num. 4, P u b : Pergamon P r e s s , O x f o r d , E n g . , 1 9 7 7 , pp 219-223 1 2 - G u e r i n , M., A SYSTEM FOR COMPUTER ANIMATED F I L M  PRODUCTION.IN A BATCH PROCESSING ENVIRONMENT, M.Sc. T h e s i s , D e p a r t m e n t o f C o m p u t e r S c i e n c e , U n i v e r s i t y o f T o r o n t o , 1973 120 13- B a e c k e r , R. M., "A C o n v e r s a t i o n a l , E x t e n s i b l e System f o r t h e A n i m a t i o n o f Shaded Images", P r o c .  SIGGRAPH-76, V o l . 10, Num. 2, S p r i n g 1976, pp 32-39 14- T r u a x , B. and J . B a r e n h o l t z , "Models o f I n t e r -a c t i v e Computer C o m p o s i t i o n " , Computing and the  H u m a n i t i e s , ed. J . S. N o r t h and S. L u s i g n a n , Pub: U n i v e r s i t y o f W a t e r l o o P r e s s , W a t e r l o o , Ont., 1977 15- T r u a x , B., "The I n v e r s e R e l a t i o n between G e n e r a l i t y And S t r e n g t h i n Computer Mu s i c Programs", P r o c .  F i r s t I n t e r n a t i o n a l Computer Music C o n f e r e n c e , Pub: MIT P r e s s , Cambridge, Mass, 1977 A P P E N D I C E S * * * THE STRUCTURE OF GRAX THE GRAX MAIN LOOP ANIMATION WITH GRAX GRAX—OVERVIEW USING THE KEY30ARD USING THE DATA TABLET GENERAL COMMANDS P-CURVE ANIMATION: INTRODUCTION SCOPES PATHS TIMING MASTERS SETTING UP AN ANIMATION: THE KEYFRAME LANGUAGE COMMANDS KEYFRAME ANIMATION—INTRODUCTION HOW KEYFRAMING WORKS SETTING UP A KEYFRAME ANIMATION KEYFRAME SCRIPT COMMANDS—NEW SCRIPT: AND EDIT SCRIPT: THE MODE-SETTING COMMANDS KEYFRAME PERFORMANCE COMMANDS—INTERPRET:,PHASE-TIMING:,and KEYFRAME TIMING: THE SAVE&FETCH LANGUAGE 1 2 2 THE STRUCTURE OF GRAX The GRAX main program, l i k e most i n t e r p r e t e r s , i s a s h o r t , s i m p l e l o o p . At the top o f the l o o p , t h e r e are a few f i x e d t a s k s , i n c l u d i n g c h e c k i n g the keyboard and t a b l e t f o r new i n p u t , u p d a t i n g the master c l o c k , i n i t i a l i z i n g the pen f o r the next c y c l e , and d i s p l a y i n g the c u r r e n t command menu. A f t e r t h e s e t a s k s are p e r f o r m e d , a queue o f t a s k s i s c o n s u l t e d t o see what s p e c i f i c s e r v i c e s are r e q u i r e d on t h i s c y c l e t h r o u g h the l o o p . The t a s k s i n t h i s queue are a l l c o n c erned w i t h e i t h e r g e t t i n g new d a t a from the user or updat-i n g the d i s p l a y paramerers o f some a n i m a t i o n a c c o r d i n g t o v a l -ues s e t by t h e user on knobs or w i t h the pen. That i s , the t a s k s i n t h i s queue are o n l y concerned w i t h r e s p o n d i n g t o the c u r r e n t command. When t h e r e i s no command b e i n g p r o c e s s e d , t h e r e i s o n l y one t a s k i n the queue, which checks f o r new d a t a from the i n p u t d e v i c e s , and does n o t h i n g i f t h e r e i s no new d a t a . A f t e r a l l the t a s k s i n the t a s k queue have been e x e c u t e d the l i s t o f g r a p h i c forms i s check e d . A l l forms marked f o r d i s p l a y a re i n t e r p r e t e d , which causes the c o r r e s p o n d i n g p i c t u r e s t o be d i s p l a y e d on the s c r e e n . A f t e r the forms have been i n t e r p r e t e d , t h e r e i s a t i m i n g program which c o n t r o l s the t o t a l time t h r o u g h the l o o p , w a i t -i n g f o r t h e d e s i r e d amount o f time t o pass i f the l o o p has not 1 2 3 a l r e a d y used t h a t much t i m e . When the l o o p ' s time i s up, the d a t a j u s t drawn to the d i s p l a y i s d i s p l a y e d , the b u f f e r which had been d i s p l a y e d d u r i n g the l a s t c y c l e t h r o u g h the l o o p becomes the new d e s t i n a t i o n f o r w r i t e s t o the d i s p l a y , and the c y c l e s t a r t s o v e r . THE GRAX MAIN LOOP F i x e d T a s k s : - Check t a b l e t - Check keyboard - Update Master C l o c k - I n i t i a l i z e pen - D i s p l a y menu Task Queue: - Whatever t a s k s are n e c e s s a r y t o respond t o the c u r r e n t command. G r a p h i c s Forms L i s t : 124 - Whatever forms are t o be d i s p l a y e d t h i s c y c l e . End o f c y c l e : - T i m i n g progam - S w i t c h D i s p l a y B u f f e r s - R e s t a r t a t t o p o f c y c l e . When a command i s e n t e r e d , e i t h e r by keyboard or by t a b l e t , a n o t e o f t h i s f a c t i s made by the a p p r o p r i a t e f i x e d t a s k . T h i s note i s a v a i l a b l e t o whatever p r o c e s s e s i n the t a s k queue may be i n t e r e s t e d . In g e n e r a l , e i t h e r a command i n t e r p r e t e r or a s p e c i f i c command response r o u t i n e w i l l be i n the queue. A command i n t e r p r e t e r r e c o g n i z e s commands and c a l l s i n t h e o v e r l a y c o n t a i n i n g the a p p r o p r i a t e response r o u -t i n e , removes i t s e l f from the t a s k queue, and passes c o n t r o l t o the response r o u t i n e . A response r o u t i n e checks the keyboard t o see i f a d d i t i o n a l arguments are w a i t i n g . I f s o , i t w i l l g e t one and 125 s t a r t p r o c e s s i n g i t . I f no a d d i t i o n a l arguments are g i v e n but one i s r e q u i r e d , the response r o u t i n e w i l l add a t a s k to the t a s k queue t o l i s t e n f o r the needed arguments. Once the com-mand has a l l i t s arguments, the d e s i r e d p r o c e s s i n g goes on. In some c a s e s , an e x p l i c i t "OK" i s r e q u i r e d t o t e l l the com-mand to s t o p , and i n o t h e r c a s e s , the command runs to c o m p l e t i o n w i t h o u t any a d d i t i o n a l i n f o r m a t i o n from the u s e r . When the command i s f i n i s h e d , i t removes i t s e l f from the queue and requeues the command i n t e r p r e t e r which c a l l e d i t . Some commands c r e a t e new g r a p h i c d a t a forms, and add thes e t o the forms l i s t . The o n l y way t o get something i n t o the d i s p l a y i s t o have i t added to the forms l i s t by a com-mand . Some commands f i n d o b j e c t s i n the d i s p l a y , and mod i f y e i t h e r the o b j e c t s t h e m s e l v e s , or the forms l i s t e n t r y f o r the o b j e c t . Yet o t h e r commands j u s t s e t g l o b a l p a r a m e t e r s , or open f i l e s e t c . , and do not d i r e c t l y use the forms l i s t . I t i s i m p o r t a n t t o r e a l i z e t h a t e v e r y command has f u l l a c c e s s t o the f o r m s - l i s t , and i s t h e r e f o r e charged w i t h the t a s k o f k e e p i n g i t neat and o r d e r l y . The forms l i s t i s a l i s t o f four-word e n t r i e s , one f o r each g r a p h i c form i n t h e system. The f i r s t word i s the ad d r e s s o f the form d e s c r i b e d . The second word i s a s t a t u s 1 2 6 word, which amongst other things, indicates whether the object i s to be displayed or not. If so, i t i s displayed once per cycle. The t h i r d and fourth words of the entry contain the entry's name. Whenever one form refers to another form, i t i s always via i t s forms l i s t entry's name. That i s , a l l references to other forms are i n d i r e c t . The advantage of this type of i n d i r e c t i o n i s that i f a form i s changed (e.g., replaced), only the address f i e l d of the item's forms l i s t entry need be changed. It i s not necessary to go through every form and search for references to the changed item. 127 ANIMATION WITH GRAX A g u i d e t o the Simon F r a s e r Computer A n i m a t i o n System. DRAFT DECEMBER 1978 P l e a s e r e f e r any problems w i t h the system or w i t h t h i s manual t o : J e r r y B a r e n h o l t z The Leonardo P r o j e c t C e n t r e f o r the A r t s and Department o f Computing S c i e n c e Simon F r a s e r U n i v e r s i t y o f f i c e : 7112 L i b r a r y Phone: 291-3142 123 GRAX—OVERVIEW: GRAX i s an a r t i s t s ' a n i m a t i o n system which uses a PDP 11/34 computer and an Evans and S u t h e r l a n d P i c t u r e System 1 g r a p h i c s u n i t t o a l l o w a n i m a t o r s t o c r e a t e l i n e a n i m a t i o n s . The system i s c o n t r o l l e d w i t h a t y p e w r i t e r - s t y l e k e y b o a r d , knobs, and a d a t a t a b l e t . Commands may be e n t e r e d e i t h e r w i t h t h e keyboad or w i t h the d a t a t a b l e t . I n g e n e r a l , a n y t h i n g which can be done w i t h the keyboard e x c e p t p r o v i d i n g names can a l s o bedone w i t h the t a b l e t . GRAX c o n s i s t s o f f o u r l a n g u a g e s , c a l l e d the MAIN l a n -guage, the ANIMATIONS la n g u a g e , the KEYFRAMES la n g u a g e , and the SAVE&FETCH la n g u a g e . Each one c o n t a i n s s e v e r a l commands which are u s e f u l f o r some a s p e c t o f d e f i n i n g a n i m a t i o n s . The MAIN language c o n t a i n s the commands n e c e s s a r y f o r c r e a t i n g s t i l l images, and a l s o s e v e r a l g e n e r a l commands f o r c o n t r o l l i n g the system. The ANIMATIONS language c o n t a i n s the c o n t r o l s f o r making " P - c u r v e " a n i m a t i o n s — a n i m a t i o n s i n which the rhythm o f th e a c t i o n i s d e r i v e d d i r e c t l y from a drawn c u r v e . The KEYFRAMES language i s used t o make a n i m a t i o n s i n which one image: t r a n s f o r m s over a time o f s e v e r a l frames i n t o a n o t her image. The SAVE&FETCH language c o n t a i n s a l l the i n -s t r u c t i o n s f o r moving t h i n g s t o and from permanent l i b r a r i e s m a i n t a i n e d on d i s k s . 129 USING THE KEYBOARD The keyboard i s one o f the main ways o f c o n t r o l l i n g the system. I t i s alm o s t l i k e a t y p e w r i t e r k e y b o a r d , e x c e p t f o r a few d i f f e r e n c e s . F i r s t , t he computer can d i s t i n g u i s h between the l e t t e r "0" and t h e d i g i t z e r o . T h e r e f o r e , i t i s n e c e s s a r y t o be c a r e f u l w hich one i s used. L i k e w i s e , the "1" i s not the same as the d i g i t one. Second, the computer i s hooked t o the keyboard i s such a f a s h i o n t h a t i n w i l l n o t a c t on a l i n e typed i n u n t i l the " r e t u r n " key i s p r e s s e d ( e x c e p t f o r the t y p o - c o r r e c t o r s d e s c r i b e d i n the next p a r a g r a p h ) . A common scene i n v o l v i n g i n e x p e r i e n c e d computer u s e r s sees the user w a i t i n g f o r t h e computer t o a c t on a command, and the computer w a i t i n g f o r the us e r t o f i n i s h t he command by t y p i n g the " r e t u r n " key. In g e n e r a l , t h e computer i s more p a t i e n t i n t h i s s i t u a t i o n , and the p e r s o n i s more prone t o f r u s t r a t i o n . To t h e l e f t o f the keyboard i s a key c a l l e d "CNTL" f o r " c o n t r o l " . H o l d i n g t h i s key down w h i l e t y p i n g some o t h e r key g e n e r a t e s a s p e c i a l " c o n t r o l " c h a r a c t e r which the computer may use t o s i g n a l some s p e c i a l a c t i o n . The way t o e r a s e an e n t i r e command l i n e ( b e f o r e the " r e t u r n " ) i s CNTRL U. The program w i l l i g n o r e e v e r y t h i n g typed on the l i n e c o n t a i n i n g the CNTRL .130 U and s t a r t a new l i n e . CNTRL H, which i s the same as , ( l e f t - p o i n t i n g arrow) i s the backspace key. Each time i t i s s t r u c k , one c h a r a c t e r i s removed from the l i n e , and the c u r s o r i s spaced back one space on the s c r e e n . The o l d c h a r a c t e r s remain on the s c r e e n u n t i l t hey are o v e r t y p e d , but the computer w i l l n o t a c t on them when " r e t u r n " i s t y p e d . Only the c h a r a c t e r s up to the c u r s o r are c o n s i d e r e d p a r t o f the l i n e . So t o r e p l a c e a few l e t t e r s i n a l i n e , backspace t o the p l a c e where the typo o c c u r r e d , and j u s t type over the r e s t o f t h e l i n e s . Then type the " r e t u r n " key. The "DEL" key i s a l s o a backspace key. U n l i k e the b a c k a r r o w , DEL causes a copy o f t h e l e t t e r b e i n g e r a s e d t o appear on the s c r e e n . (1) THIS IS A TEST LING (2) THIS IS A TEST LING/G ( 3 ) THIS IS A TEST LING/GNIL ( 4 ) THIS IS A TEST/GNIL/SENTENCE Example 1. A Typo b e i n g c o r r e c t e d w i t h the DEL key. In t h e above example, (1) c o n t a i n s a "G" i n s t e a d o f an "E". The t y p i s t t y p e s the DEL, and the G i s p e e l e d o f f ( 2 ) . At t h i s p o i n t t h e t y p i s t c o u l d j u s t t y p e an "E" and. " r e t u r n " . But i t i s d e c i d e d t o r e p l a c e the e n t i r e word "LING", so t h r e e more l e t t e r s are p e e l e d o f f w i t h the DEL key. Then the word "SENTENCE" i s typed i n t o r e p l a c e "LING". In GRAX, t h e r e are o n l y t h r e e t y p e s o f t h i n g s which can 131 be t y p e d . They are names, numbers, and commands. Names are from one to s i x c h a r a c t e r s ( l e t t e r s or d i g i t s ) , w i t h the f i r s t c h a r a c t e r b e i n g a l e t t e r r a t h e r than a d i g i t . Numbers are a l l i n the range 0 — 3 2 7 6 7 . Commands are one t o s i x l e t t e r s f o l l o w e d by The c o l o n i s used by the system t o t e l l the d i f f e r e n c e between names and commands, so whenever i t i s l e f t o u t o f a command, the system w i l l not r e c o g n i z e the command. Many o f the commands r e q u i r e i n f o r m a t i o n as t o what t o do. For example, FETCH: i s supposed t o g e t an o b j e c t from a l i b r a r y . I t must know what o b j e c t i t i s to g e t . The e x t r a i n f o r m a t i o n may be p r o v i d e d on the same l i n e ( e . g . FETCH:MICKY MOUSE) or on s e p a r a t e l i n e s (person) GET: (system) TYPE NAME OF OBJECT (1-6 CHARACTERS) (person) MOUSE MICKY • In e i t h e r form o f the FETCH command, one may r e q u e s t s e v e r a l items w i t h one command. In the above examples, two items were r e q u e s t e d . I n g e n e r a l , whenever one name can be used and i t makes sense t o use s e v e r a l names, s e v e r a l names can be used, s e p a r a t e d by s p a c e s . 132 USING THE DATA TABLET The d a t a t a b l e t i s the b l a c k - b o r d e r e d w h i t e s u r f a c e which u s u a l l y s i t s t o the r i g h t o f the keyboard. I t i s connected to a c o n t r o l box w i t h a g r e y w i r e . A l s o connected to the c o n t r o l box i s a b a l l - p o i n t pen, sometimes c a l e d the " s t y l u s " . The pen u s u a l l y d o e s n ' t have any i n k i n i t , a l t h o u g h a " l i v e " r e f i l l i s a v a i l a b l e i f needed. The pen has a p r e s s u r e s e n s i t i v e s w i t c h i n i t s t i p , so t h a t the computer can sense when i t i s b e i n g pushed a g a i n s t a s u r f a c e . The s w i t c h i s q u i t e s e n s i t i v e . THERE IS NEVER ANY NEED TO PUSH HARD. The pen a l s o c o n t a i n s a " p r o x i m i t y s e n s o r " w hich i s used by the computer to t e l l when i t i s near the t a b l e t ( w i t h i n about 1/2 i n c h ) . In a d d i t i o n t o b e i n g a b l e t o d e t e c t when the pen i s near the t a b l e t , and when i t i s b e i n g p r e s s e d down, the computer can t e l l where on the t a b l e t the pen i s . T h i s i n f o r m a t i o n i s used by the computer t o d e t e c t com-mands b e i n g i s s u e d . Whenever the computer i s w a i t i n g f o r a command, a "menu", or l i s t o f p o s s i b l e commands, i s d i s p l a y e d on the s c r e e n . The s c r e e n i s s e t up so t h a t the upper l e f t c o r n e r o f the s c r e e n c o r r e s p o n d s t o the c o r n e r o f the t a b l e t w i t h the g r e y w i r e a t t a c h e d . When t h e pen i s near t h e t a b l e t , an "X" appears a t 1 3 3 the c o r r e s p o n d i n g l o c a t i o n on the s c r e e n . To s e l e c t a com-mand, l o c a t e the pen over the command, and push down. While the pen i s down, a s m a l l diamond apears n e x t to the command s e l e c t e d , a c k n o w l e d g i n g the c h o i c e o f command. The command i s not a c t u a l l y c a r r i e d out u n t i l the pen i s l i f t e d up. Thus, i f one chooses t h e wrong command, and n o t i c e s the m i s t a k e b e f o r e l i f t i n g t he pen, t h e m i s t a k e can be c o r r e c t e d by moving the p e n — s t i l l pushed d o w n — t o the c o r r e c t p o s i t i o n , and then l i f t i n g i t . Or, by moving the pen to a p o s i t i o n w i t h no com-mands i n i t , no command w i l l be i s s u e d . When a command r e q u i r i n g a name i s g i v e n u s i n g the t a b l e t , i t i s s t i l l n e c e s s a r y t o use the keyboard to e n t e r the name. 134 GENERAL COMMANDS - DRAW (D:) C r e a t e a new s k e t c h - ERASE (E:) Remove pen s t r o k e s from an ite m - GRID (GRI:) Turn g r i d o n / o f f - GROUP (GRO:) Gather i t e m s t o g e t h e r - INSTANCE (IN:) C r e a t e a m o d i f i e d copy o f an item - LIST (L:) L i s t t h e ite m s i n the workspace MENU (ME:) Remove or r e s t o r e the command menu MODIFY (MO:) M o d i f y t h e s i z e , p o s i t i o n , o r l o c a t i o n o f c item MODIFY AND INSTANCE CONTROLS NAME (N:) A s s i g n a name t o an item PICK (PI:) S e l e c t a new ite m t o become c u r r e n t RESTART (RES:) R e s t a r t GRAX RT-11 (RT:) E x i t GRAX UNNAME (UNN:) Remove t h e name from an ite m SNAPSHOT (SN:) C r e a t e a new s k e t c h from an e x i s t i n g i tem 135 ZAP (z:) Remove an item from the workspace and the d i s p l 136 DRAW(D): The DRAW i n s t r u c t i o n i s used t o e n t e r new s k e t c h e s i n t o GRAX w i t h the t a b l e t and s t y l u s . DRAW has t h r e e modes: SKETCH, LINE and P-CURVE. SKETCH i s used t o c r e a t e c u r v y ( f r e e h a n d s t y l e ) s k e t c h e s , LINE i s used t o e n t e r s t r a i g h t l i n e ( s t r a i g h t - e d g e , d r a f t i n g s t y l e ) d r a w i n g s , and P-CURVE i s used t o c r e a t e p a t h s f o r a n i m a t i o n s . A s k e t c h i s composed o f a number o f p e n - s t r o k e s , and each p e n s t r o k e i s made up o f a number o f s h o r t , s t r a i g h t l i n e segments. - A s k e t c h made up o f two pen s t r o k e s , h a v i n g f i v e and f o u r l i n e segments. When the DRAW command i s f i r s t e n t e r e d , i t i s i n SKETCH mode. S e l e c t modes by p o i n t i n g "SKETCH","LINE", or "P-CURVE", or t y p i n g "S:"(RETURN), "L:"(RETURN) or "P:"(RETURN). To f i n i s h a d r a w i n g , p o i n t a t "OK", or type "OK:" To c a n c e l a 137 drawing b e f o r e i t i s done, p o i n t at " C A N C E L " or type "C:" The newly drawn item becomes the a c t i v e i t e m . S K E T C H mode In SKETCH mode, each time the pen i s p r e s s e d down, a new p e n s t r o k e i s s t a r t e d , and each time the pen i s l i f t e d , the c u r r e n t p e n s t r o k e i s f i n i s h e d . As l o n g as the pen i s down, new l i n e segments a r e added t o the s k e t c h a t a r a t e o f 60 per second (or s l o w e r when the background p i c t u r e s are c o m p l e x ) . Thus the l e n g t h o f the l i n e segments, (and t h e r e f o r e the smoothness o f t h e s k e t c h ) i s d e t e r m i n e d by how f a r the pen moves i n one s i x t i e t h o f a second. There i s a minimum segment l e n g t h , c o n t r o l l e d by Knob 24 (second row, f a r r i g h t on t a n b o x ) . L i n e s s h o r t e r than t h i s l e n g t h are not drawn. In p a r t i c u l a r , h o l d i n g the pen down i n one s p o t does not cause p o i n t s t o p i l e up t h e r e . LINE Mode: In LINE mode, each t i m e t h e pen i s p r e s s e d down, a new l i n e segment i s s t a r t e d . As l o n g as the pen remains near the t a b l e t , t h e l i n e segment i s e l a s t i c , s t r e t c h i n g from i t s s t a r t p o s i t i o n t h e c u r r e n t pen p o s i t i o n . So, t o draw a pen s t r o k e , poke the t a b l e t a t each p l a c e where a segment i s t o s t a r t , ( i . e . , pen down t o s t a r t t h e segment, pen up-but-near w h i l e the segment i s b e i n g a d j u s t e d , pen down t o f i n i s h the segment and s t a r t t h e n e x t , pen up-but-near t o a d j u s t , e t c . ) When the pen i s l i f t e d away from the t a b l e t (more than 1/2"), the 1 3 3 p e n s t r o k e i s ended; the next time the pen i s p r e s s e d down a new s t r o k e i s s t a r t e d . P-CURVE Mode: P-CURVE mode i s i d e n t i c a l to SKETCH mode except t h a t t h e r e i s no minimum segment l e n g t h . Thus i f the pen i s h e l d down i n one p l a c e , p o i n t s ( i e . , v e r y s h o r t l i n e segments) p i l e up t h e r e , p u t t i n g a b r i g h t d o t i n the p i c t u r e . T h i s may or may not be v i s u a l l y a c c e p t a b l e . The v a l u e o f P-CURVE Mode i s t h a t i s a l l o w s the computer t o a c c u r a t e l y r e c o r d the rhythm w i t h which a p e n - s t r o k e i s drawn. The minimum segment l e n g t h o f SKETCH 'S causes t h e rhythm o f v e r y slow pen movements t o be l o s t . 1 3 9 ERASE (E:) The ERASE command i s used t o remove p e n - s t r o k e s from s k e t c h e s . F i r s t , use the PICK command to s e l e c t the s k e t c h t o have e r a s u r e s made from i t . Then use ERASE t o do the e r a s u r e s . Each t i m e a p e n - s t r o k e i s p o i n t e d t o , i t w i l l d i s a p p e a r . You may e r a s e t h e e n t i r e s k e t c h by e r a s i n g a l l i t s p e n - s t r o k e s . When enough l i n e s have been e r a s e d , p o i n t a t "OK" or type "OK:"(RETURN). I f you change your mind about an e r a s u r e , p o i n t a t "CANCEL" or ty p e "C:"(RETURN) t o c a n c e l the command. The o r i g i n a l , unerased p i c t u r e w i l l be r e s t o r e d . ERASE does not change the a c t i v e i t e m , u n l e s s the e n t i r e i t e m i s e r a s e d , i n wh i c h c a s e , n o t h i n g i s a c t i v e . 140 GRID(GRI: ) The GRID command d i s p l a y s or removes a graph paper g r i d from the background. I t i s d i s p l a y e d more d i m l y than the o t h e r items on the s c r e e n . In f a c t , i t may be too dim t o see. To make i t b r i g h t e n , a d j u s t the CONTRAST knob (the top knob to the lower r i g h t c o r n e r o f the d i s p l a y ) . GRID does not a f f e c t the c u r r e n t i t e m . 1 4 1 GROUP (GRO) The group command i s used t o group s e v e r a l items t o g e t h e r i n t o a s i n g l e i t e m . I t may be used on any k i n d o f i t e m s . P o i n t a t t h e items t o be grouped, or type t h e i r names ( f o l l o w e d by (RETURN)). They w i l l appear b r i g h t e r on the s c r e e n . When a l l the d e s i r e d items have been s e l e c t e d , p o i n t a t "OK" or t y p e "OK:"(RETURN). I f you change your mind b e f o r e s e l e c t i n g OK, p o i n t a t "CANCEL" or type "C:"(RETURN). A l l the o r i g i n a l components of a group are removed from the s c r e e n ( a l t h o u g h t h e y remain i n the w o r k s p a c e ) , and the group d i s p l a y e d i n s t e a d . The group becomes the new a c t i v e i t e m . 142 I.D. (ID:) The I.D. command i s used to s e t a new I.D. Each user has one or s e v e r a l I.D.'s, and h i s / h e r p i c t u r e s are s t o r e d w i t h t h a t I.D. T h i s a l l o w s each p e r s o n t o have p i c t u r e s w i t h the same name. For example, i f "you" and "me" are two I.D.'s, "Face You" and "Face Me" can be two s e p a r a t e p i c t u r e s . I.D.'s may be up t o 3 l e t t e r s and/or numbers l o n g . To g i v e an I.D. you may e i t h e r t y pe i t on the same l i n e as the I.D. command ( i . e . , "ID: abc"(RETURN), or you may s e l e c t "I.D." w i t h the pen or type "ID:"(RETURN). In t h i s c a s e , you w i l l be asked t o type i n an I.D. Here i s a l i s t o f I.D.'s a l r e a d y i n use. Don't you use them! Ask J e r r y f o r an I.D. or two. SAV GRX GR - a n y t h i n g ! OBJ LST MAC FOR PAT LLD 143 S Y S BAK BAT C T L MAP ASM P I P L I B LOG XHA DON L I Z WYL 1 4 4 INSTANCE (IN:) The INSTANCE command i s used to c r e a t e a m o d i f i e d copy (an i n s t a n c e ) o f an i t e m . The copy may be s c a l e d i n one or both d i r e c t i o n s , r o t a t e d , or moved w i t h r e s p e c t t o the o r i g i -n a l . The i t e m t o be i n s t a n c e d must be c u r r e n t (use PICK i f n e c e s s a r y . ) Once the i n s t a n c e has been m o d i f i e d t o t a s t e , s e l e c t "OK" or type "OK:"(RETURN). To abandon an i n s t a n c e b e f o r e s e l e c t -i n g OK, s e l e c t "CANCEL" or type "C:"(RETURN). The i n s t a n c e never l o s e s i t s r e l a t i o n s h i p t o the o r i g i -n a l , so t h a t any changes t o the o r i g i n a l are r e f l e c t e d i n the i n s t a n c e . For example, i f ITEM B i s an i n s t a n c e o f ITEM A, and ITEM A i s m o d i f i e d t o make i t b i g g e r , ITEM B w i l l a l s o become b i g g e r . L i k e w i s e , i f p e n - s t r o k e s are e r a s e d o ut o f ITEM A, c o r r e s p o n d i n g p e n - s t r o k e s d i s a p p e a r out o f ITEM B. See t h e MODIFY command f o r the meanings o f the knobs and b u t t o n s . The i n s t a n c e becomes the c u r r e n t o b j e c t . 1 4 5 LIST (L:) LIST p r i n t s out a l i s t o f a l l the items c u r r e n t l y i n your workspace. For each i t e m , the item's c o r e a d d r e s s , i t s s t a t u s , i t s n a m e , i t s type and i t s l e n g t h a re typed o u t . The a d d r e s s , s t a t u s and l e n g t h are m o s t l y f o r "debugging" p u r p o s e s , and won't be o f much i n t e r e s t t o most p e o p l e . 14 6 MENU (ME:) The MENU command t u r n s the command menu o f f . T h i s i s u s e f u l f o r l o o k i n g a t the dra w i n g s on the s c r e e n . To g e t the menu back, e i t h e r type (RETURN), or h o l d the s t y l u s near the t a b l e t . A diamond w i l l apear i n t h e lower r i g h t c o r n e r . P i c k the diamond w i t h the s t y l u s . 147 MODIFY (MO:) The MODIFY i n s t r u c t i o n i s used t o a l t e r the c u r r e n t o b j e c t by moving i t around, r o t a t i n g i t , making i t u n i f o r m l y l a r g e r or s m a l l e r , or making i t l a r g e r or s m a l l e r i n one d i -r e c t i o n w h i l e not changing i t s s i z e i n the o t h e r d i r e c t i o n . The i t e m t o be m o d i f i e d must be c u r r e n t (Use PICK i f nec-e s s a r y ) . Once t h e i t e m has been modifed t o t a s t e , s e l e c t "OK" or type "OK:"(RETURN). "CANCEL" or "C:"(RETURN) r e s t o r e the o r i g i n a l , u n m o d i f i e d i t e m . The use o f the c o n t r o l s i s e x p l a i n e d on the n e x t page. The m o d i f i e d item becomes c u r r e n t . 148 MODIFY AND INSTANCE CONTROLS The bottom f o u r knobs on the b l a c k box, the f o u r b u t t o n s , and the s t y l u s / t a b l e t are used as c o n t r o l s . The upper knob c o n t r o l s r o t a t i o n , the f a r l e f t knob c o n t r o l s u n i f o r m s c a l i n g , and the r i g h t two knobs c o n t r o l non-uniform s c a l i n g . To do u n i f o r m s c a l i n g t u r n b oth r i g h t knobs o f f (counter c l o c k w i s e ) and use the l e f t knob. The s t y l u s c o n t r o l s the p o s i t i o n o f the o b j e c t on the s c r e e n . The l e f t two b u t t o n s cause m i r r o r i n g about the h o r i z o n t a l and v e r t i c a l c e n t r e o f the s c r e e n . Each o p e r a t i o n t a k e s p l a c e about the c e n t r e o f the s c r e e n , n o t n e c e s s a r i l y t h e v i s u a l c e n t r e o f the o b j e c t . When the s t y l u s i s pushed down, the c e n t r e o f the s c r e e n i n the o r i g i n a l i t e m moves t o the new pen p o s i t i o n . I f t h e r e i s a s m a l l s k e t c h i n t h e upper r i g h t c o r n e r o f t h e s c r e e n , p o i n t i n g the pen a t the upper r i g h t c o r n e r w i l l move the o b j e c t o f f the s c r e e n . L i k e w i s e , a c e n t r e d o b j e c t w i l l r o t a t e l i k e a w h e e l , w h i l e an o f f - c e n t r e o b j e c t w i l l o r b i t the c e n t r e o f the s c r e e n . In the s c a l e o p e r a t i o n s , a c e n t r e d o b j e c t w i l l appear t o grow or s h r i n k i n p l a c e , w h i l e an o f f - c e n t r e o b j e c t w i l l move towards or away from the c e n t r e o f the s c r e e n , as w e l l as gro w i n g or s h r i n k i n g , s i n c e the d i s t a n c e from c e n t r e i s b e i n g s c a l e d as w e l l as t h e it e m i t s e l f . S i n c e t h i s i s not always d e s i r e d , i t i s sometimes u s e f u l 149 t o do m o d i f i c a t i o n s i n two or t h r e e s t e p s . In the f i r s t s t e p , the item i s c e n t r e d , and "OK" i s s e l e c t e d . MODIFY i s c a l l e d a g a i n , and t h i s time the o b j e c t i s s c a l e d , r o t a t e d , or whate v e r , and the m o d i f i c a t i o n i s "OK"'ed. MODIFY i s c a l l e d a t h i r d t i m e , and the item i s r e p o s i t i o n e d t o the c o r r e c t p l a c e on the s c r e e n . 1 5 0 NAME (N:) The NAME command a l l o w s you to name an i t e m . The system g i v e s names t o new items as they are c r e a t e d . These names are a l e t t e r and f i v e d i g i t s ( e.g. , "A12345") which a r e n ' t u s u a l l y t o o m e a n i n g f u l t o p e o p l e . U s i n g the NAME command one may a s s i g n more u s e f u l names, such as H0USE3 or JOE. Names are used by the system f o r s a v i n g p i c t u r e s on d i s k . They a re a l s o u s e f u l f o r g e t t i n g a t items which are i n the workspace but not i n the d i s p l a y (so you c a n ' t p o i n t t o them). NAMES may be up t o s i x l e t t e r s or numbers l o n g . To name an i t e m , i t must be c u r r e n t (use P I C K ) . The name may be typed i n on the same l i n e as the "N:", or you may j u s t s e l e c t "NAME" or ty p e "N:"(RETURN). In t h i s c a s e , you are asked t o type i n a name. NAME does n o t a f f e c t the c u r r e n t i t e m . 151 PICK (PI:) The PICK command i s used to change the c u r r e n t i t e m i n your workspace. Many o f the commands work on the c u r r e n t item ( i . e . , NAME, MODIFY, SNAPSHOT), and many commands change what i s cur r e n t ( i . e . , GROUP, INSTANCE, SNAPSHOT). I f you w i s h t o use a command which a c t s on the c u r r e n t i t e m , b u t the wrong item i s c u r r e n t , use PICK t o change the c u r r e n t i t e m . To PICK an i t e m , you may e i t h e r type "P: name"(RETURN)" or you may type "P:"(RETURN) or p o i n t t o "PICK". In the l a t t e r c a s e , you may the n e i t h e r p o i n t a t the new i t e m , or type i t s name (and (RETURN)). Once you have s e l e c t e d the new i t e m , p o i n t t o "OK:" or type "OK:"(RETURN). 1 5 2 RESTART (RES:) The RESTART command s t a r t s GRAX o v e r . Your workspace i s c l e a r e d , the s c r e e n i s c l e a r e d , a n y t h i n g not s a f e l y f i l e d i s l o s t . 153 RT-11 (RT:) The RT-11 command i s the way out o f GRAX. Your workspace i s c l e a r e d , a n y t h i n g not s a f e l y f i l e d on d i s k i s l o s t . When you r e t u r n t o RT-11 (the o p e r a t i n g s y s t e m ) , you may run o t h e r programs such as the l e t t e r i n g program or the s k e t c h e d i t o r . 154 UNNAME (UNN:) UNNAME i s used t o remove the name from the c u r r e n t i t e m , and have t h e system rename i t t o an unused name (a l e t t e r and f i v e d i g i t s . ) UNNAME i s u s e f u l i n t h e s i t u a t i o n t h a t you want t o g i v e a name t o an i t e m , b u t some o t h e r i t e m i'n the workspace a l r e a d y has t h a t name. To UNNAME an o b j e c t , t y p e UNN:name(RETURN), or UNN:(RETURN). In t h i s l a t t e r c a s e , you may p o i n t t o the o b j e c t , o r type i t s name on a s e p a r a t e l i n e . The c u r r e n t o b j e c t i s not a f f e c t e d by UNNAME. 1 5 5 SNAPSHOT (S:) The SNAPSHOT command c r e a t e s a new s k e t c h from any i t e m . Use the PICK command t o s e l e c t the it e m t o be snapped. I f t he o r i g i n a l i s a s t i l l p i c t u r e , the snapshot w i l l l o o k i d e n t i c a l t o i t . I f the o r i g i n a l i s moving, the snapshot i s a s k e t c h o f t h e o r i g i n a l as i t appeared a t the i n s t a n t o f the s n a p s h o t . The s n a p s h o t command i s u s e f u l i n c r e a t i n g independent c o p i e s o f an o b j e c t , so t h a t e r a s u r e s , m o d i f i c a t i o n s , e t c . , on one w i l l n o t a f f e c t the o t h e r s . A l s o , s i n c e t h e P-curve and keyframe a n i m a t i o n s can o n l y a c c e p t s k e t c h e s as t h e i r p a t h s , SNAPSHOT i s u s e f u l f o r c r e a t i n g s k e t c h e s from MOD's or a n i m a t i o n s f o r use as p a t h s . The SNAPSHOT r e p l a c e s the o r i g i n a l as the a c t i v e i t e m . 156 ZAP (Z :) The ZAP command i s used to remove e n t i r e items from the d i s p l a y and from you a c t i v e workspace. P o i n t a t the items t o be d e l e t e d or type t h e i r names, f o l l o w e d by (RETURN). They w i l l b r i g h t e n on the s c r e e n . P o i n t a t "OK" or type "OK:" (RETURN) when you have s e l e c t e d the items t o be removed. I f you change your mind about a d e l e t i o n b e f o r e s e l e c t i n g OK, p o i n t a t "CANCEL" or type "C:"(RETURN). 157 P-CURVE ANIMATION: INTRODUCTION T h i s s e c t i o n d e s c r i b e s the P-Curve A n i m a t i o n f a c i l i t i e s a v a i l a b l e i n GRAX. The term "P-Curve" was c o i n e d by Ron Baecher, now a t the U n i v e r s i t y o f T o r o n t o , and s t a n d s f o r "Parameter Curve". I n P-Curve a n i m a t i o n , the animator draws a p a t h (the P-Curve) and s p e c i f i e s t o the system what i n f o r m a t i o n i s t o be d e r i v e d from the p a t h . The computer r e c o r d s the rhythm w i t h w h i c h t h e P-Curve was drawn, and mimics t h a t rhythm when p e r f o r m i n g the a n i m a t i o n . Thus the animator programs rhythm and o t h e r a n i m a t i o n p a r a m e t e r s by handwaving, r a t h e r t h a n by t y p i n g e n d l e s s columns o f numbers or programming m a t h e m a t i c a l f u n c t i o n s . GRAX has s i x a n i m a t i o n t y p e s , which a r e : - TRACK - m o t i o n a l o n g a p a t h - THROB - dynamic b r i g h t n e s s v a r i a t i o n - PULSE - dynamic s i z e v a r i a t i o n - ROLL - dynamic r o t a t i o n - XTAFFY - dynamic s c a l i n g a l o n g X - A x i s o n l y - YTAFFY - dynamic s c a l i n g a l o n g Y - A x i s o n l y 158 Each w i l l be d i s c u s s e d i n d e t a i l below. A l t h o u g h each a n i m a t i o n type does a d i f f e r e n t t h i n g t o i t s d a t a , t h e y do have s e v e r a l s i m i l a r i t i e s , which are d i s c u s s e d i n t h i s s e c -t i o n . SCOPES Each a n i m a t i o n i n s t r u c t i o n r e q u i r e s a "scope", which s p e c i f i e s t o what t h e a n i m a t i o n a p p l i e s . For example, THROB makes i t s scope b r i g h t e r and dimmer w i t h t i m e , and PULSE makes i t s scope l a r g e r and s m a l l e r w i t h t i m e . PATHS Each i n s t r u c t i o n uses a " p a t h " t o det e r m i n e how t o m o d i f y i t s scope i n t i m e . A p a t h i s a s i m p l e s k e t c h , u s u a l l y a s i n -g l e pen s t r o k e . The p a t h p r o v i d e s b o t h the s p e c i f i c v a l u e needed by t h e a n i m a t i o n ( e . g . , b r i g h t n e s s , s i z e ) and t h e rhythm f o r t h e change i n t h i s v a l u e . The rhythm o f the a n i m a t i o n i s e x a c t l y the same as the rhythm used t o draw t h e p a t h . U s i n g THROB as an example, suppose one wished t o cause a p i c t u r e t o go from dim t o b r i g h t and back t o dim. Then the an i m a t o r would draw a wedge from the bottom o f the s c r e e n (dim) t o t h e t o p ( b r i g h t ) and back t o the bottom. T h i s wedge would t h e n be used as the p a t h i n a THROB a n i m a t i o n . I n o r d e r 159 to have the THROB t o go s l o w l y from dim to b r i g h t , and then q u i c k l y back to dim, the wedge s h o u l d be drawn s l o w l y from bottom to t o p , and then q u i c k l y back down. TIMING Each a n i m a t i o n i s d i s p l a y e d on the s c r e e n i n a c y c l e , r e p e a t i n g f o r e v e r or u n t i l the animator g e t s r i d o f i t . The c y c l e i s d i v i d e d i n t o f i v e p h ases, as f o l l o w s : Phase I i s t h e ti m e b e f o r e the a n i m a t i o n f i r s t appears on the s c r e e n . The a n i m a t i o n i s " w a i t i n g i n the wings". D u r i n g Phase I I , the scope o f the a n i m a t i o n i s shown as i t appears a t t h e f i r s t p o i n t i n t h e p a t h . U s i n g the THROB a n i m a t i o n o f the p r e v i o u s example, the scope would appear d i m l y on the s c r e e n , and remain unchanging d u r i n g Phase I I . Phase I I I i s t h e animator p r o p e r . The scope p e r f o r m s whatever a n i m a t i o n i s d e s c r i b e d by the p a t h . In the example, the i t e m goes from dim t o b r i g h t and back t o dim. In Phase IV, t h e scope appears unchanging a t the end o f the p a t h . I n our example, t h e a n i m a t i o n s t a y s dim. Phase V i s another i n v i s i b l e phase. I t i s the time a f t e r Phase IV, and b e f o r e the c y c l e r e s t a r t s . The r e a s o n f o r h a v i n g two i n v i s i b l e phases (I and V) i s to a l l o w s e v e r a l a n i m a t i o n s t o have c y c l e s o f the same l e n g t h even i f the i n d i v i d u a l phases a r e o f d i f f e r e n t l e n g t h s . Phases I and V 1 5 0 can be used t o pad the c y c l e o f one a n i m a t i o n t o the l e n g t h of a n o t h e r , and t o a d j u s t when i n the o v e r a l l c y c l e the v i s i b l e p a r t s o f the a n i m a t i o n w i l l o c c u r . MASTERS An a n i m a t i o n can take a l l o f i t s t i m i n g i n f o r m a t i o n from p r e v i o u s l y d e f i n e d a n i m a t i o n . The a n i m a t i o n p r o v i d i n g the i n -f o r m a t i o n i s r e f e r r e d to as the "master" and the a n i m a t i o n u s i n g the i n f o r m a t i o n i s the " s l a v e " . SETTING UP AN ANIMATION: The a n i m a t o r must s e l e c t the scope, p a t h , m a s t e r , and phase t i m e s f o r an a n i m a t i o n . Times are s e t by means o f knobs, w h i l e s c o p e s , p a t h s , and masters are s e l e c t e d by p o i n t i n g a t them or t y p i n g t h e i r names. In b u i l d i n g an a n i m a t i o n , scope and p a t h , (and master i f u s e d ) , must be s e l e c t e d b e f o r e the phase time i n f o r m a t i o n i s g i v e n w i t h knobs. To s e l e c t a scope, p a t h , or master w i t h the pen, f i r s t p o i n t t o the word "scope", " p a t h " , or " t i m e " a t the bottom o f the s c r e e n . A s m a l l diamond w i l l appear ne x t t o the word. Then p o i n t a t the i t e m which i s t o be the scope, p a t h , or m a s t e r . I t w i l l b r i g h t e n t o i n d i c a t e i t has been s e l e c t e d , and the diamond w i l l d i s a p p e a r . A l t e r n a t e l y , they may be se-l e c t e d by t y p i n g "S:", "P:", or "T:" f o l l o w e d by the name of t h e i t e m s e l e c t e d . One or s e v e r a l s e l e c t i o n s may be typed on 1 5 1 one l i n e . Each l i n e must be ended w i t h the "Return" key. S e l e c t i o n s may be changed by j u s t r e p e a t i n g the s e l e c t i o n p r o c e s s , u s i n g the new c h o i c e i n s t e a d o f the o l d . Once p a t h , scope and master ( i f used) have been p i c k e d type "OK:"(RETURN) or p o i n t t o "OK" i n the lower r i g h t c o r n e r o f the s c r e e n . I f a master i s b e i n g used, the new a n i m a t i o n t a k e s i t s phase t i m i n g from i t and the b u i l d i n g p r o c e s s i s complete. I f no master i s b e i n g used, the tim e s o f the phases and the t o t a l t i m e a re s e t by knobs. The upper l e f t knob o f the 16 knob box c o n t r o l s Phase I , the second knob Phase I I , e t c . The t o t a l t i m e i s c o n t r o l l e d by the second knob i n the second row. I f t h i s knob i s s e t t o z e r o ( f u l l y c o u n t e r - c l o c k w i s e ) , t h e t o t a l t i m e i s j u s t the sum o f the tim e s o f the phases as s e t on the f i r s t f i v e knobs. I f knob 6 i s not z e r o , i t s e t s the t o t a l t i m e . The t i m e s on the o t h e r f i v e knobs are s c a l e d t o f i t the time i n t e r v a l d e f i n e d by knob 6. Thus, t o c r e a t e two a n i m a t i o n s w i t h the same t o t a l time but d i f f e r e n t t i m e s i n v a r i o u s p h a s e s , c r e a t e t h e f i r s t a n i m a t i o n , and w i t h o u t c h a n g i n g knob 6, c r e a t e the second. 162 TRACK: The TRACK a n i m a t i o n causes the scope to move a l o n g the p a t h . The c e n t r e o f the s c r e e n i n the scope i s " a t t a c h e d " t o the p a t h . I f the v i s u a l c e n t r e o f the scope i s not a t the c e n t r e o f the s c r e e n , the a n i m a t i o n w i l l appear o f f s e t from the p a t h by the amount the v i s u a l c e n t r e i s o f f s e t from the s c r e e n ' s c e n t r e . To a v o i d t h i s , t h e MODIFY command can be used t o c e n t r e the scope b e f o r e i t i s used i n the TRACK. 1 6 3 THROB: THROB causes i t s scope to grow dim or bright depending on the v e r t i c a l p o s i t i o n on the path. The bottom of the screen represents dim and the top, bright. The brightness set by THROB i s r e l a t i v e to the i n i t i a l brightness of the scope. That i s , the v e r t i c a l centre of the screen represents un-changed brightness, rather than medium brightness. This means that i f the scope i s already throbbing, the new THROB path w i l l add to, rather than replace, the old one. 164 PULSE: The PULSE a n i m a t i o n causes the s i z e o f i t s o b j e c t to change w i t h t i m e . The v e r t i c a l p o s i t i o n on the p a t h d e t e r m i n e s the s i z e . A h o r i z o n t a l l i n e one q u a r t e r o f the d i s t a n c e from the bottom of the s c r e e n r e p r e s e n t s unchanged s i z e . Above t h i s l i n e r e p r e s e n t s l a r g e r than o r i g i n a l , and below r e p r e s e n t s s m a l l e r . I f the scope of a PULSE command i s i t s e l f p u l s i n g , the two PULSE p a t h s add. 165 ROLL ROLL causes i t s scope t o r o t a t e i n t i m e . The a n g l e o f r o t a t i o n i s d e t e r m i n e d from the p a t h ' s v e r t i c a l p o s i t i o n on the s c r e e n . The s c r e e n i s d i v i d e d i n t o e i g h t h o r i z o n t a l bands, each o f which r e p r e s e n t one complete r e v o l u t i o n . Thus a p a t h which moves smoot h l y from bottom t o top r e p r e s e n t s e i g h t r e v o l u t i o n s , and a wedge (bottom t o top t o bottom) r e p r e s e n t s e i g h t r e v o l u t i o n s i n one d i r e c t i o n f o l l o w e d by e i g h t i n the o p p o s i t e d i r e c t i o n . The scope r e v o l v e s around the c e n t r e o f the s c r e e n , r a t h e r than around i t s own v i s u a l c e n t r e . So, t o a c h i e v e an e f f e c t l i k e a w h e e l , t h e scope s h o u l d be c e n t r e d u s i n g MODIFY b e f o r e b e i n g used i n ROLL. L a t e r , the wheel can be moved t o anywhere on the s c r e e n u s i n g m o d i f y a g a i n . I f the scope i s n o t c e n t r e d i n i t i a l l y , t he e f f e c t w i l l be l i k e a s t o n e b e i n g swung on a s c r e e n : the scope w i l l t r a v e l i n c i r c l e s around the c e n t r e o f the s c r e e n . 1 6 6 XTAFFY: YTAFFY XTAFFY and YTAFFY a n i m a t i o n s are s i m i l a r t o PULSE, e x c e p t t h a t o n l y t h e h o r i z o n t a l or v e r t i c a l s i z e s r e s p e c t i v e l y a re a f f e c t e d , i . e . , the scope w i l l s t r e t c h t a f f y - l i k e i n the s e -l e c t e d d i r e c t i o n . The v e r t i c a l p o s i t i o n on the p a t h d e t e r m i n e s t h e amount o f s t r e t c h . A h o r i z o n t a l l i n e one q u a r t e r o f the d i s t a n c e from the bottom o f the s c r e e n r e p r e s e n t s unchanged s i z e . To a c h i e v e a t a f f y e f f e c t on an a x i s o t h e r than the X- or Y - a x i s , f i r s t use MODIFY t o r o t a t e the scope u n t i l t he d e s i r e d a x i s i s h o r i z o n t a l or v e r t i c a l . Then use XTAFFY or YTAFFY t o g e t the t a f f y e f f e c t , and then r e - r o t a t e the a n i m a t i o n w i t h MODIFY. 167 THE KEYFRAME LANGUAGE COMMANDS W i t h i n the keyframe l a n g u a g e , t h e r e are e l e v e n commands, which can be used i n more or l e s s . a n y o r d e r . To get the r e s t o f the GRAX commands use the OK: command. THE COMMANDS: - NEW-SCRIPT: (N:) C r e a t e a new keyframe s c r i p t . (See s e c t i o n on Keyframe S c r i p t Commands.) - EDIT-SCRIPT: (E:) Assumes the c u r r e n t i t e m i s a keyframe s c r i p t . A l l o w s the s c r i p t t o be changed or l i s t e d . (See s e c t i o n on Keyframe S c r i p t Commands.) - L I S T : (L:) I f the c u r r e n t i t e m i s e i t h e r a keyframe s c r i p t or a keyframe p e r f o r m a n c e , L I : w i l l l i s t the s c r i p t . - PHASE-TIMING (P:) I f the c u r r e n t i t e m i s a keyframe p e r f o r m a n c e , PH: w i l l c o n n e c t knobs 17-22 t o the o v e r a l l t i m i n g p a r a m e t e r s , a l l o w i n g the t i m i n g t o be m o d i f i e d . - KEYFRAME-TIMING: (K:) I f the c u r r e n t i t e m i s a keyframe p e r f o r m a n c e , and i f knobs were s p e c i f i e d as time s o u r c e s i n some l i n e s , the s p e c i f i e d knobs become a c t i v e , a l l o w -i n g t he r e l a t i v e t i m i n g o f the i n d i v i d u a l keyframes t o be m o d i f i e d . - INTERPRET: ( I : ) I f the c u r r e n t i t e m i s e i t h e r a keyframe s c r i p t or a keyframe p e r f o r m a n c e , the item i s i n t e r p r e t e d (or r e - i n t e r p r e t e d . ) The keyframe t i m i n g s are s e t on the s e l e c t e d knobs ( i f any have been s p e c i f i e d ) , and then the o v e r a l l phase t i m i n g i s s e t on knobs. - OK: (0:) R e t u r n t o main GRAX menu. 168 The o t h e r commands are DRAW:, NAME:, P I C K : , GET:, which are e x p l a i n e d i n o t h e r p a r t s o f the manual. J L U J KEYFRAME ANIMATION—INTRODUCTION Keyframe A n i m a t i o n i s the name g i v e n t o a computer a n i m a t i o n t e c h n i q u e which was e x t e n s i v e l y d e v e l o p e d by B e r t n i k and Wein a t the N a t i o n a l Research C o u n c i l o f Canada. The t e c h n i q u e i s a l s o known as "keyframe i n t e r p o l a t i o n " and " i n - b e t w e e n i n g " . The t e c h n i q u e was o r i g i n a l l y d e v e l o p e d t o automate the s t a n d a r d , b a s i c a n i m a t i o n t e c h n i q u e . That i s , g i v e n some key frames i n an a n i m a t i o n , i t was d e s i r e d t h a t the computer a u t o -m a t i c a l l y g e n e r a t e t h e frames t o be shown in - b e t w e e n . The anim a t o r was t o s u p p l y t i m e i n f o r m a t i o n (number o f frames be-tween two key frames) and the program was t o respond by p r o -d u c i n g the d e s i r e d number o f in-between frames. The same summary d e s c r i b e s one o f the more time-consuming phases o f c o n v e n t i o n a l a n i m a t i o n , i f one s u b s t i t u e s " g r u m b l i n g , u n d e r p a i d i n k e r " f o r "computer" and "program" above. I t was soon d i s c o v e r e d t h a t the t e c h n i q u e has o t h e r i m p l i c a t i o n s ( v i s u a l as w e l l as l a b o u r r e l a t i o n s ) . G i v e n two s i m i l a r key frames the in-between frames w i l l be a more or l e s s v i s u a l l y smooth t r a n s i t i o n from the f i r s t t o the second. However, i f t h e keyframes a r e d i s s i m i l a r , t h e in-between frames go t h r o u g h a v i s u a l l y random sequence. T h i s i s an e f -f e c t w h i c h r e s u l t s from t h e mathematics o f i n - b e t w e e n i n g , as d e s c r i b e d below. The e f f e c t was n o t i c e d r i g h t away by u s e r s 170 of the system, and e x p l o i t e d to good e f f e c t i n "Hunger", P e t e r F o l d e s 1 a n i m a t i o n made on the NRC system. He used i t to c r e a t e a b s t r a c t p a t t e r n i n g s which c o u l d be v i s u a l l y c o n t r a s t e d w i t h the ongoing r e p r e s e n t a t i o n a l a n i m a t i o n , and as an a l t e r n a t i v e t o f a d e s between s c e n e s . 171 HOW KEYFRAMING WORKS A keyframe i s a s k e t c h made up o f some number o f l i n e s t r o k e s . The program examines two keyframes, and c r e a t e s a c o r r e s p o n d e n c e between the f i r s t pen s t r o k e i n the f i r s t frame, and t h e f i r s t pen s t r o k e i n the second, between the second pen s t r o k e i n t h e f i r s t s k e t c h and the second pen s t r o k e i n t h e second keyframe, e t c . Each s t r o k e i n the f i r s t keyframe i s t r a n s f o r m e d i n a number o f s t a g e s i n t o i t s c o r r e -sponding p e n s t r o k e i n t h e second keyframe. I f one o f the keyframes has more pen s t r o k e s i n i t th a n the o t h e r , the computer c r e a t e s the r e q u i r e d number o f e x t r a p e n s t r o k e s , and p u t s them on top o f e x i s t i n g pen s t r o k e s i n t h e keyframe w i t h fewer p e n s t r o k e s . I f f o r example, one keyframe i s j u s t a d o t a t s c r e e n c e n t r e , and the n e x t keyframe i s a f a c e made up o f twenty p e n s t r o k e s , t h e v i s u a l w i l l be f i r s t a d o t a t s c r e e n c e n t r e , t h e n twenty d o t s near s c r e e n c e n t r e , t h e n twenty l i n e s growing i n l e n g t h , c h a n g i n g i n p o s i t i o n and shape, wandering a c r o s s the s c r e e n u n t i l each l i n e becomes p a r t o f the f a c e . Not o n l y a r e t h e keyframes matched l i n e f o r l i n e , b u t w i t h i n each p a i r o f c o r r e s p o n d i n g p e n s t r o k e s , t h e r e i s a ma t c h i n g o f p o i n t s t o p o i n t s . That i s , i f a p e n s t r o k e i n the f i r s t keyframe i s made up o f some number o f p o i n t s , and the c o r r e s p o n d i n g p e n s t r o k e i n the second frame i s made up o f a 1 o 1 7 2 d i f f e r e n t number of p o i n t s , the program w i l l add p o i n t s t o the p e n s t r o k e w i t h fewer p o i n t s , and then w i l l match the two p e n s t r o k e s p o i n t f o r p o i n t . Then the i n between frames w i l l be made o f each p o i n t m i g r a t i n g from i t s p o s i t i o n i n the i n i t a l keyframe t o i t s p o s i t i o n i n the f i n a l keyframe. The anim a t o r s p e c i f i e s how many i n between frames t h e r e are t o be, and the computer f i g u r e s out f o r each p o i n t how t o d i v i d e t h a t p o i n t ' s m i g r a t i o n i n t o t h a t many e v e n l y spaced b i t s . An i m p l i c a t i o n o f t h i s t e c h n i q u e i s t h a t the o r d e r and d i r e c t i o n o f the p e n s t r o k e s i n a keyframe are q u i t e i m p o r t a n t . For example, i f a c i r c l e i s drawn c l o c k w i s e i n Keyframe 1 and the c o r r e s p o n d i n g c i r c l e i s drawn c o u n t e r c l o c k w i s e i n Keyframe 2, the c i r c l e w i l l appear t o t u r n i n s i d e out i n the i n between frames. L i k e w i s e , i f Keyframe 1 c o n s i s t s o f a c i r c l e and a square drawn i n t h a t o r d e r , and i n Keyframe 2 the square i s drawn b e f o r e the c i r c l e , i n the r e s u l t i n g a n i m a t i o n the square w i l l t r a n s f o r m i n t o t h e c i r c l e and v i c e v e r s a . 173 SETTING UP A KEYFRAME ANIMATION In o r d e r to g e t a Keyframe A n i m a t i o n i n GRAX, i t i s nec-e s s a r y t o c r e a t e a " s c r i p t " which the program can i n t e r p r e t . A s c r i p t c o n t a i n s i n f o r m a t i o n on what keyframes are t o be p r e s e n t e d , the or d e r o f p r e s e n t a t i o n , the d e t a i l s o f the mat c h i n g f u n c t i o n s t o be used, and the time between p a i r s o f key f r a m e s . In a d d i t i o n , each s c r i p t has a name. The s c r i p t i s not the same as a performance o f i t . The s c r i p t i s a c o l l e c t i o n o f words and symbols, w h i l e the performance i s an a n i m a t i o n which wanders around the s c r e e n . The same s c r i p t can be i n t e r p r e t e d a number o f ways r e s u l t i n g i n v i s u a l l y d i f f e r e n t a n i m a t i o n s . To c r e a t e a s c r i p t , use the NEW-SCRIPT command i n the KEYFRAME language i n GRAX. On the s c r e e n t h e r e w i l l appear a menu o f c h o i c e s which c o r r e s p o n d t o a l l the t h i n g s t h a t can be i n c l u d e d i n a s c r i p t , and a few commands f o r l i s t i n g and f i n i s h i n g a s c r i p t . Use t h e t y p e w r i t e r t e r m i n a l to e n t e r a s c r i p t . Each e n t r y has the form COMMAND: or COMMAND:INFORMATION. You can e n t e r any number o f commands on one l i n e . In t h e f o l l o w i n g s e c t i o n , t h e d e t a i l s on each keyframe s c r i p t command are g i v e n . I t i s i m p o r t a n t t o remember t h a t each l i n e o f a keyframe s c r i p t must c o n t a i n AT LEAST a 174 SEQUENCE number and a KEYFRAME NAME, and t h a t a l l but the las-t l i n e o f a s c r i p t must a l s o c o n t a i n a TIME SOURCE. 175 KEYFRAME SCRIPT COMMANDS--NEW SCRIPT: AND EDIT SCRIPT: NAME (NAM:) The NAME command i s used to g i v e a name to the s c r i p t . A name i s up t o s i x l e t t e r s l o n g , as are names a l l through GRAX. The name i s t y p e d r i g h t a f t e r the ":" command. RENAME (REN:) I f a s c r i p t a l r e a d y has a name, RENAME i s used t o change the name. SEQUENCE NUMBER (SEQ:) Each l i n e i n a s c r i p t has a sequence number. T h i s can be any number from 1 t o 3 2 7 6 7 . The o r d e r i n which the l i n e s are performed i s the o r d e r g i v e n by t h e sequence numbers, not n e c e s s a r i l y t h e o r d e r i n which the l i n e s were e n t e r e d . I n s e t t i n g up a s c r i p t , i t i s a good p r a c t i c e t o use numbers l i k e 1 0 0 , 2 0 0 , 3 0 0 , . . . r a t h e r t h a n numbers I k e 1 , 2 , 3 , . . . T h a t way, t h e r e a re p l e n t y o f unused numbers between any two numbers i n the s c r i p t , which can be used l a t e r t o add new l i n e s between e x i s t i n g l i n e s . Most commands are d i r e c t e d t o whatever l i n e i s c u r r e n t . To s t a r t a new l i n e , or t o change which l i n e i s c u r r e n t , use the SEQ: command. Thus t h e commands SEQ:1 0 0 KEYFRAME:BLAH S E Q : 2 0 0 KEYFRAME: BLORP SEQ - .100 KEYFRAME:BLIP would c r e a t e a 176 two l i n e s c r i p t , w i t h the f i r s t l i n e h a v i n g the keyframe name 3LIP (not BLAH), and the l i n e h a v i n g the keyframe name BLORP. KEYFRAME (KEY:) KEY: i s used t o p r o v i d e a keyframe name f o r the c u r r e n t l i n e . The name must r e f e r t o a SKETCH, not a more complex g r a p h i c . I t i s not n e c e s s a r y t h a t the s k e t c h a l r e a d y e x i s t . ( I t can be drawn l a t e r , o r f i s h e d o f f d i s k . A l l t h a t i s r e q u r e d i s t h a t by t h e time the s c r i p t i s p e r f o r m e d , t h e r e be a s k e t c h o f the g i v e n name i n cor e . ) EVERY LINE IN A SCRIPT MUST HAVE A KEYFRAME NAME. TIME (TIM:) The TIM: command i s used t o pj.o.v.i.da.-a,.,xeJLa.tJi£e~&ij&e»,,-kG^ -a-* g i v e n l i n e . T h i s i s t h e t i m e (number o f frames) between the keyframe named on the c u r r e n t l i n e and the keyframe named on the n e x t l i n e . TIM: t a k e s a number as an argument. The number i s a r e l a t i v e t i m e v a l u e . The a c t u a l number o f frames w i l l be de-t e r m i n e d when t h e s c r i p t i s performed by s e t t i n g s on v a r i o u s d i a l s . What i s p r o v i d e d by TIM: t h e n , i s the r e l a t i o n between the t i m i n g o f the v a r i o u s p a i r s i n the s c r i p t . For example, the s c r i p t g i v e n here w i l l cause the time between keyframe A and keyframe B t o be t w i c e as l o n g as the time between B and C. 177 NAME: SCRIPT SEQ:10 0 KEY:A TIME:200 SEQ-. 200 KEY: B TIME:100 SEQ:300 KEY:C Ev e r y l i n e i n a s c r i p t e x c e p t the l a s t must have a time s o u r c e , which must be e i t h e r the TIM: command or the KNOB: command. KNOB (KN:) The KNOB: command i s used t o p r o v i d e a knob number i n -s t e a d o f a time v a l u e t o a l i n e . At performance t i m e , t h e TIM: v a l u e w i l l be read o f f the knob s p e c i f i e d . The knobs on the b l a c k box are number 9-12, and t h o s e on the t a n box are 17-32. (There i s a knob map on the bottom o f each box.) Do not use numbers which don't c o r r e s p o n d t o knobs. OK (0:) The OK: command i s used to end a s c r i p t - w r i t i n g s e s s i o n . The s c r i p t menu i s removed and t h e g e n e r a l keyframe menu i s r e s t o r e d . The new s c r i p t becomes the c u r r e n t o b j e c t . LIST-SCRIPT ( L I : ) L I : l i s t s o u t the e n t i r e s c r i p t so f a r , showing the name, number o f l i n e s , and what i s i n each l i n e . LIST-LINE (LL:) LL: l i s t s t h e c u r r e n t l i n e . 178 THE MODE-SETTING COMMANDS These commands are used to s e t the v a r i o u s o p t i o n s i n the i n t e r p o l a t i o n r o u t i n e s . None o f these o p t i o n s take any e x t r a i n f o r m a t i o n . Whatever s e t t i n g s are i n e f f e c t remain i n e f f e c t u n t i l changed. I n i t i a l l y , STROKE:, DISTRIBUTE:, and ELIMINATE:, are i n e f f e c t . STROKE or POINT (STR:, POI:) The c o r r e s p o n d e n c e between frames i s done on a s t r o k e - t o - s t r o k e or a p o i n t - t o - p o i n t b a s i s . In STROKE: mode, each pen s t r o k e i s mapped t o a c o r r e s p o n d i n g pen s t r o k e i n the ne x t keyframe. I f t h e r e a r e not enough p e n s t r o k e s i n one o f the f r a m e s , new p e n s t r o k e s are added t o whichever keyframe has fewer. I n POINT: mode, t h e i d e n t i t y o f the i n d i v i d u a l p e n s t r o k e s a re l o s t , and the cor r e s p o n d a n c e between frames i s done on a p o i n t - t o - p o i n t b a s i s , r a t h e r than a s t r o k e - t o - s t r o k e b a s i s . I f one frame has fewer p o i n t s t h a n t h e o t h e r , new p o i n t s (not s t r o k e s ) are added t o whichever keyframe has fewer. GATHER (GA:) or DISTRIBUTE (DI:) I f new p o i n t s o r pen s t r o k e s need t o be added, t h e y can be added e i t h e r a l l a t t h e end o f the s h o r t e r frame, o r d i s -t r i b u t e d t h r o u g h o u t t h e frame. ' GA: causes the new p o i n t s t o be g a t h e r e d t o g e t h e r a t the end o f the frame, and DI: causes the new p o i n t s t o be added more or l e s s u n i f o r m l y t h r o u g h o u t 179 the frame. KEEP (KE:) or ELIMINATE (EL:) In the i n t e r p o l a t i o n p r o c e s s , t h e r e are sometimes formed v e r y s h o r t pen s t r o k e s ( b r i g h t d o t s on the s c r e e n ) . T h i s happens e s p e c i a l l y i n GA: mode, a l t h o u g h i t a l s o o c c u r s somewhat i n DI: mode. KE: and EL: are used to keep these i n th e d i s p l a y or e l i m i n a t e them from v i e w , as d e s i r e d . 180 KEYFRAME PERFORMANCE COMMANDS—INTERPRET:,PHASE-TIMING:,and KEYFRAME TIMING: Each keyframe performance i s s e t i n a t i m i n g c y c l e which i s s e t up use o f knobs when the performance i s f i r s t i n t e r -p r e t e d . The t i m i n g c y c l e has f i v e phases, which are s e t w i t h knobs 17-21, and an o v e r a l l t i m e , which i s s e t w i t h knob 22. (These are the top row o f the t a n box and the f i r s t two knobs i n the second row.) Phases I and V are i n v i s i b l e phases. D u r i n g these p h a s e s , n o t h i n g o f t h e a n i m a t i o n i s v i s i b l e on the s c r e e n . There are two i n v i s i b l e phases to a l l o w an a n i m a t i o n t o be moved around w i t h i n a g i v e n time s l o t , f o r s y n c h r o n i z a t i o n w i t h o t h e r a n i m a t i o n s . Phase I I shows the f i r s t keyframe u n m o d i f i e d and unmoving. T h i s s t a t i c d i s p l a y i s an i n t r o d u c t i o n t o the a n i m a t i o n p r o p e r . Phase I I I shows the i n t e r p o l a t i o n sequence p r o p e r . The keyframes t r a n s f o r m as s p e c i f i e d i n the s c r i p t , u n t i l the l a s t keyframe i s on the s c r e e n . Phase IV i s s i m i l a r t o Phase I I i n t h a t i t i s s t a t i c . But i n Phase IV, t h e l a s t keyframe i s d i s p l a y e d . The a n i m a t i o n appears f r o z e n i n i t s f i n a l p o s i t i o n . 181 The t o t a l time i s s e t on knob 22. The phase t i m i n g s s e t on knobs 17-21 are r e l a t i v e t i m e s . That i s , these knobs s e t r a t i o s o f t i m e s f o r a l l the phases and the r a t i o s are s c a l e d t o f i t whatever time i s s e t on knob 22. I f knob 22 i s s e t a l l the way c o u n t e r - c l o c k w i s e ( o f f ) , the o t h e r knobs are read f o r a c t u a l t i m e s , r a t h e r than j u s t r a t i o s , and t h e t o t a l time i s j u s t t h e sum o f t h e tim e s on the f i v e phase knobs. W i t h i n Phase I I I , t h e r e i s s t i l l the t i m i n g between the v a r i o u s keyframes t o be s e t t l e d . The r e l a t i v e keyframe t i m e s may have been s e t w i t h the TIME: command i n the KEYSCRIPT l a n -guage, o r a knob may have been s p e c i f i e d w i t h the KNOB: com-mand. D u r i n g t h e a p p r o p r i a t e p a r t o f the INTERPRET: command, or w i t h t h e KEYFRAME-TIMING: command, the s p e c i f i e d v a l u e s become l i v e , and t h e i r s e t t i n g s are read i n t o the performance. A common p r a c t i c e i s t o s e t some o f the v a l u e s w i t h the TIME: command, and o t h e r s w i t h t h e KNOB: command. In t h i s c a s e , o n l y t h e v a l u e s s p e c i f i e d w i t h KNOBs can be changed. But s i n c e t h e v a l u e s i n the s c r i p t a r e r e l a t i v e , and s c a l e d t o f i t t he t i m e a v a i l a b l e i n Phase I I I , c h a n g i n g any one o f them e f f e c t s t h e r a t i o s between a l l o f them. 132 INTERPRET: ( I : ) Used t o i n t e r p r e t or r e - i n t e r p r e t a keyframe s c r i p t or keyframe p e r f o r m a n c e . F i r s t the s c r i p t i s checked over t o see i f i t c a l l s f o r any keyframes w h i c h a r e not s k e t c h e s or are not i n c o r e . I f i t p a s s e s t h i s t e s t , the s c r i p t i s c o n v e r t e d t o a performance, and the performance i s s t a r t e d . The i n d i v i d u a l keyframes are no t removed from the d i s p l a y a t t h i s t i m e . (They w i l l be removed a u t o m a t i c a l l y when the i n t e r p r e t e r i s f i n i s h e d ) . The i n t e r p r e t e r e n t e r s t h e k e y f r a m e - t i m i n g sequence.. 183 KEYFRAME-TIMING: (K:) I f the performance s c r i p t from which the c u r r e n t p erformance was made c a l l e d f o r any knobs f o r s e t t i n g keyframe t i m e s , t h o s e knobs are a c t i v a t e d a t t h i s t i m e . A message i s p r i n t e d on the t e r m i n a l and a c r o s s the bottom of the s c r e e n a s k i n g t h a t keyframe t i m e s be s e t . At t h i s time i t i s not p o s s i b l e t o g e t a l i s t o f what knob i s a s s o c i a t e d w i t h which keyframe, so i t i s a good i d e a t o use the LIST: command b e f o r e INTERPRET: or KEYFRAME-TIMING: t o g e t a l i s t . Once a l l the knobs have been s e t up, t ype OK: or p o i n t t o the word OK on t h e s c r e e n . PHASE-TIMING: (P:) The phase t i m i n g knobs and the o v e r a l l t i m i n g knob are a c t i v a t e d . The a n i m a t i o n runs t h r o u g h the c y c l e as d e s c r i b e d by t h e s e knobs, u n t i l the a nimator t y p e s OK:(RETURN) or p o i n t s t o OK on the s c r e e n . Sometimes, a p h a s e - t i m i n g knob i s changed and t h e r e i s no v i s i b l e e f f e c t . The'most common re a s o n f o r t h a t i s t h a t the computer i s n ' t l i s t e n i n g t o the knob s e t t i n g s a t t h a t p a r t i c u l a r moment. To c a p t u r e the computer's a t t e n t i o n , t u r n t h e o v e r a l l t i m i n g knob o f f ( c o u n t e r - c l o c k w i s e ) and back up t o t h e s e t t i n g d e s i r e d . 134 THE SAVESFETCH LANGUAGE W i t h i n the SAVES FETCH language t h e r e are t h i r t e e n com-mands. The f i r s t command i n any GRAX s e s s i o n s h o u l d be an ASSIGN-LIBRARY or a CREATE-LIBRARY command. Other than t h a t , t h e commands can be used i n v i r t u a l l y any o r d e r . To get from the SAVES FETCH language back t o the r e s t o f GRAX, use the OK: command. The Commands: - ASSIGN-LIBRARY (A:) A s s i g n a l i b r a r y t o be used f o r t h i s s e s s i o n . - CREATE-LIBRARY (C:) C r e a t e a new, empty l i b r a r y . - L I S T - L I B R A R Y (L:) L i s t the c o n t e n t s o f the c u r r e n t l y a s s i g n e d l i b r a r y . - FETCH (F:) F e t c h an i t e m from the l i b r a r y . - REFETCH (REF:) R e p l a c e the item i n the a c t i v e work space w i t h a new copy from the l i b r a r y . - RENEW (REN:) R e p l a c e the named i t e m , and a l l the items need-ed t o make up the named i t e m . - SAVE (S:) P l a c e an it e m and i t s component p a r t s i n a l i b r a r y f i l e . - RESAVE (RES:) R e p l a c e an o b j e c t i n a l i b r a r y m - UPDATE (U:) R e p l a c e an it e m and a l l the items i t r e f e r s t o i n a 1 i b r a r y . 135 - DISCARD (D:) Remove an item from a l i b r a r y . - OK: R e t u r n t o GRAX. - The NAME and PICK commands are e x p l a i n e d i n o t h e r p a r t s o f t h i s manual. 1 8 6 HOW THINGS ARE SAVED IN L I B R A R I E S The GRAX l i b r a r y s y s t e m h a s p r o v i s i o n s f o r s a v i n g any g r a p h i c o b j e c t t h a t c a n be p r o d u c e d i n GRAX, as w e l l as s c r i p t s . When an o b j e c t i s s a v e d i n a l i b r a r y , a l l t h e i n f o r -m a t i o n n e c e s s a r y t o r e c r e a t e t h e o b j e c t i s s a v e d a l o n g w i t h i t . F o r m o s t GRAX o b j e c t s , t h i s means t h a t s a v i n g one i t e m r e q u i r e s s a v i n g s e v e r a l i t e m s . F o r e x a m p l e , i f INST i s an i n s t a n c e o f soma s k e t c h ORIG, i t i s n e c e s s a r y t o p u t b o t h INST and ORIG i n t o t h e l i b r a r y i n o r d e r t o s a v e INST. T h i s t y p e o f i m p l i c i t m u l t i p l e s a v i n g i s an i m p o r t a n t p a r t o f t h e GRAX s y s t e m , and s h o u l d be w e l l u n d e r s t o o d i f g o o d u s e i s t o be made o f t h e SAVES FETCH l a n -g u a g e . GRAX o b j e c t s o t h e r t h a n SKETCHs a l l have b u i l t i n t o them r e f e r e n c e s t o w h a t e v e r d a t a t h e y a p p l y t o . F o r e x a m p l e , t h e INSTANCE' d a t a t y p e h a s i n f o r m a t i o n a b o u t where an o b j e c t i s t o be p o s i t i o n e d , how much i t i s t o be r o t a t e d , how i t i s t o be s c a l e d , a n d wh a t o b j e c t i s t o be d i s p l a y e d i n t h i s f a s h i o n . T h i s l a s t d a t u m , t h e " s c o p e " o f a n y d a t a f o r m , i s t h e name o f t h e g r a p h i c o b j e c t t o w h i c h t h e d a t a f o r m i s a p p l i e d . A l l GRAX o b j e c t s e x c e p t SKETCHs h a v e s c o p e s . The KEYSCRIPT and KEYFRAME PERFORMANCE d a t a t y p e s t a k e s e v e r a l SKETCHs ( t h e i n d i v i d u a l k e y f r a m e s ) as t h e i r s c o p e s . The p - c u r v e a n i m a t i o n t y p e s (TRACK, ROLL, e t c . ) take, a s k e t c h a s 13 7 the P-curve i t s e l f , i n a d d i t i o n t o whatever g r a p h i c o b j e c t t hey take f o r a scope and a time master. The scope o f an o b j e c t (and f o r t h e p-curve a n i m a t i o n s , the p-curve) must be s t o r e d when the o b j e c t i s s t o r e d , so t h a t when the o b j e c t i s r e c a l l e d , enough i n f o r m a t i o n i s a v a i l a b l e t o r e - c r e a t e the o b j e c t . As was mentioned above, the scope o f an o b j e c t i s the name o f t h e o b j e c t r e f e r r e d t o . The f a c t t h a t scopes are s t o r e d as names, r a t h e r than as some o t h e r form of i d e n t i f i e r , g i v e s r i s e t o some v e r y i n t e r e s t i n g e d i t i n g p o s s i b i l i t i e s . I n the example above, INST i s an i n s t a n c e o f an o b j e c t named ORIG. I f we change ORIG, we e x p e c t t h i s change t o be r e f l e c t e d i n INST. So, f o r example, suppose we draw ORIG and c r e a t e INST u s i n g the INSTANCE command. Then we e n t e r the SAVE&FETCH system and, w i t h INST c u r r e n t , i s s u e the command SAVE. The system responds by w r i t i n g <SAVED> <SAVED> on t h e t e r m i n a l . The f i r s t <SAVED> means t h a t INST has been s a v e d , and the second means t h a t ORIG has been save d . Now, we OK: out o f t h e SAVE&FETCH syste m , and use DRAW, UNNAME:ORIG, NAME:ORIG t o c r e a t e a new drawing c a l l e d ORIG. IF we then RESAVE the new ORIG, the f i r s t d r a w i n g c a l l e d ORIG i s l o s t from the d i s k l i b r a r y . Then, the n e x t time we REFETCH:INST, 1 8 3 we w i l l g e t an i n s t a n c e of the new ORIG, not the o r i g i n a l o b j e c t s t o r e d under the name I N S T . The r e l a t i o n o f each INST t o i t s ORIG i s the same. That i s , i f INST s p e c i f i e s t h a t i t s scope i s to be t u r n e d u p s i d e down, the n on the s c r e e n we w i l l have the o r i g i n a l ORIG u p s i d e down, and the new ORIG u p s i d e down. S i n c e t h e new ORIG was saved i n the l i b r a r y under the name ORIG, t h e o r i g i n a l ORIG i s no l o n g e r i n the l i b r a r y . I f we want i t t o be t h e r e , we can use the NAME: and SAVE: com-mands on i t . Note t h a t by c h a n g i n g what i s c a l l e d ORIG and c a l l i n g back INST from the l i b r a r y , we may g e t a whole f a m i l y o f r e l a t e d g r a p h i c s . I n each c a s e , whatever i s c u r r e n t l y b e i n g c a l l e d ORIG w i l l appear u p s i d e down on t h e s c r e e n . Thus, INST may be seen as a r e c i p e f o r f o r m i n g u p s i d e down i n s t a n c e s , r a t h e r t h a n j u s t as a d e s c r i p t i o n o f a p a r t i c u l a r g r a p h i c . T h i s i s a g e n e r a l s t a t e o f a f f a i r s . S i n c e scopes are s t o r e d by names, any d a t a form w i t h a scope i s a r e c i p e f o r p r e p a r i n g and s e r v i n g i t s scope. Or, t o use a more o f f i c i a l s o u nding word, each g r a p h i c form i s a GRAPHIC PROCESS. The commands i n t h e SAVE&FETCH language a r e s e t up t o d e a l w i t h o b j e c t s as g r a p h i c p r o c e s s e s , r a t h e r than j u s t as d e s c r i p t i o n s o f p i c t u r e s . T h i s a c c o u n t s f o r the d e t a i l s o f the use o f the commands b e i n g as t h e y a r e . 1 8 9 SAVE (S:) The SAVE command saves the c u r r e n t o b j e c t i f t h e r e i s not a l r e a d y an o b j e c t by t h e same name i n the l i b r a r y . I t a l s o saves whatever o b j e c t s are named i n the c u r r e n t o b j e c t , and a l s o saves any o b j e c t s t h e y may r e f e r t o , e t c . , u n t i l a l l the o b j e c t s needed t o r e c r e a t e the f i r s t o b j e c t saved have been s t o r e d i n the l i b r a r y . I f an o b j e c t t o be saved i s a l r e a d y i n the l i b r a r y , no a c t i o n i s t a k e n , s i n c e t h e r e i s no need t o r e s a v e the i t e m . I f the c o r e copy i s d i f f e r e n t from the l i b r a r y copy, a message i s p r i n t e d o u t , and the item i s not sa v e d . ( S i n c e t h e message c o n t a i n s the name of the o b j e c t not r e s a v e d , a subsequent RESAVE command can be used i f t h e r e i s d e s i r e t o r e p l a c e the l i b r a r y copy w i t h the c o r e copy.) 1 9 0 RESAVE (RES:) The RESAVE command i s used to replace the l i b r a r y copy an object with the copy now in core. If an object to be RESAVED i s not already in the l i b r a r y , i t i s saved. So, for example, i f TOP names MIDDLE, and MIDDLE names BOTTOM, then SAVE: when TOP i s current w i l l cause TOP, MIDDLE and BOTTOM be saved. If TOP i s then renamed to BLOP, then SAVE: w i l l save BLOP and p r i n t a message to the eff e c t that MIDDLE i s a ready in the l i b r a r y (since BLOP names MIDDLE.) If we then MODIFY TOP, SAVE w i l l r e s u l t in a message saying that TOP i s already i n the l i b r a r y . But RESAVE w i l l cause the MODIFied TOP to replace the old one. 191 UPDATE (U:) UPDATE i s u s e d t o r e s a v e a l l t h e c o m p o n e n t s o f an i t e m , r e g a r d l e s s o f w h e t h e r t h e y h a v e been s a v e d b e f o r e , c h a n g e d s i n c e l a s t s a v e , e t c . I n t h e a b o v e e x a m p l e , i f we MODIFY MIDDLE, t h e n make BLOP c u r r e n t and RESAVE i t , BLOP a l o n e w i l l be r e s a v e d . B u t UPDATE w i l l f o r c e MIDDLE t o be r e s a v e d as w e l l , s o t h a t t h e MODIFied MIDDLE w i l l r e p l a c e t h e unMODIFied m i d d l e i n t h e l i b r a r y , and s u b s e q u e n t REFETCHs o f BLOP w i l l r e f e r t o t h e m o d i f i e d , r a t h e r t h a n t h e o r i g i n a l MIDDLE. 192 FETCH (F:) The FETCH command i s used t o r e t r i e v e p i c t u r e s from a d i s k , l i b r a r y . S e v e r a l names can be g i v e n i n one FETCH com-mand. The command not o n l y g e t s the items c a l l e d f o r i f they are not a l r e a d y i n c o r e , but i t a l s o g e t s any o b j e c t s c a l l e d f o r by t h e named p i c t u r e s , a g a i n i f they a re not a l r e a d y i n c o r e . Thus i n the p r e v i o u s example, i f a f t e r s a v i n g BLOP, the workspace were c l e a r e d w i t h a RESTART, then FETCH:BLOP would g e t BLOP, MIDDLE, whatever MIDDLE r e f e r s t o , and BOTTOM. FETCH:TOP would o n l y g e t TOP, s i n c e MIDDLE and BOTTOM are a l -ready i n c o r e from the FETCH:3L0P. The co r e c o p i e s o f MIDDLE and BOTTOM would be used by TOP. T h i s means t h a t i f between FETCHing MIDDLE and FETCHing TOP, MIDDLE were m o d i f i e d , TOP would a p p l y t o the m o d i f i e d MIDDLE, n o t t h e MIDDLE wh i c h i s s t o r e d on d i s k . 19.3 REFETCH (REF:) T h i s command i s used to r e p l a c e the core copy o f an o b j e c t w i t h the copy s t o r e d i n the l i b r a r y . E x t e n d i n g the ex-ample o f the p r e v i o u s s e c t i o n , REFETCH:TOP would r e p l a c e the copy o f TOP i n the workspace w i t h the one on d i s k . Thus, i f th e TOP i n t h e workspace had s u f f e r e d some m i s a d v e n t u r e (e.g. an i l l - a d i v s e d m o d i f y ) , the damage c o u l d be n u l l i f i e d by REFETCH. 194 RENEW (REN:) T h i s command i s s i m i l a r t o REFETCH, e x c e p t t h a t i t not o n l y r e f e t c h e s the named i t e m , but a l l the items r e f e r r e d to by i t . Thus, RENEW:TOP would cause not o n l y TOP t o be r e p l a c e d , but a l s o the m o d i f i e d MIDDLE and BOTTOM. 195 ASSIGN-LIBRARY (A:) Give n a l i b r a r y w hich a l r e a d y e x i s t s on a d i s k , the ASSIGN-LIBRARY command a s s i g n s i t as the c u r r e n t l y a c t i v e l i b r a r y . A l l save and f e t c h commands w i l l use the c u r r e n t l i b r a r y . The c u r r e n t l i b r a r y can be changed a t any time w i t h the ASSIGN-LIBRARY command. At the s t a r t o f a s e s s i o n , the c u r r e n t l i b r a r y i s GRXLIB, w h i c h may or may n o t c o n t a i n something o f i n t e r e s t . So, the f i r s t t h i n g an a n i m a t o r s h o u l d do i n any w o r k i n g s e s s i o n i s a s s i g n h i s / h e r own l i b r a r y as the c u r r e n t l i b r a r y . 1 9 6 CREATE-LIBRARY (C:) The CREATE-LIBRARY command i s used to c r e a t e a l i b r a r y , the l i b r a r y t o be c r e a t e d a l r e a d y e x i s t s , a message i s p r i n t -ed, and no a c t i o n i s t a k e n . O t h e r w i s e , the name g i v e n i s a s s i g n e d to a new, empty l i b r a r y on the d i s k . An empty l i b r a r y has room f o r about 400 s m a l l t h i n g s , or fewer l a r g e r t h i n g s . I f some p r o j e c t r e q u i r e s a l a r g e r l i b r a r y , t h i s can be a r r a n g e d . C o n t a c t J e r r y . 197 LIST-LIBRARY (L:) The LIST-LIBRARY command i s used t o l i s t t he names, s i z e s , and t y p e s o f a l l the t h i n g s i n the c u r r e n t l i b r a r y on the t e r m i n a l . 1 9 8 DISCARD (D:) The DISCARD command i s used to d i s c a r d items from a l i b r a r y . The names o f the items t o be d i s c a r d e d are typed a f t e r the command. Note t h a t the items d i s c a r d e d from the l i b r a r y a r e r e a l l y gone. U n l e s s t h e r e happens t o be a copy o f a d i s c a r d e d i t e m i n the workspace, t h e r e i s no way o t h e r than r e - c r e a t i n g the o b j e c t t o g e t i t back. 1 9 9 OK (0:) The OK command i s used to r e t u r n t o the main GRAX menu. PUBLICATIONS J . B a r e n h o l t z , Z. W o l o f s k y , I . Ganapathy, T.W. C a l v e r t , P. O'Hara, "Computer I n t e r p r e t a t i o n o f Dance N o t a t i o n " , P r o c e e d i n g s , ICCH/3, August 1976, and i n Computing and  the H u m a n i t i e s , ed. J . S. N o r t h , S. L u s i g n a n , U n i v e r s i t y o f W a t e r l o o P r e s s , 1977 B. Truax and J . B a r e n h o l t z , "Models o f I n t e r a c t i v e Computer C o m p o s i t i o n " , P r o c e e d i n g s , ICCH/3, August 197 6, and i n Computing and t h e H u m a n i t i e s , ed. J . S. N o r t h , S. L u s i g n a n , U n i v e r s i t y o f W a t e r l o o P r e s s , 1977 J . B a r e n h o l t z and C. Dewhurst, "A Run-Length E n c o d i n g Scheme f o r Real-Time V i d e o A n i m a t i o n " , P r o c e e d i n g s , Northwest '76 ACM/CIPS R e g i o n a l Symposium. J . B a r e n h o l t z , "An A r t i s t ' s A n i m a t i o n System f o r S m a l l Computers", P r o c e e d i n g s , N orthwest '76 ACM/CIPS R e g i o n a l Symposium J . B a r e n h o l t z , Z. W o l o f s k y , I . Ganapathy, T.W. C a l v e r t , "Computer I n t e r p r e t a t i o n o f L a b a n o t a t i o n f o r Dance," P r o c e e d i n g s , Man, Systems, and C y b e r n e t i c s C o n f e r e n c e , 1975 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0051799/manifest

Comment

Related Items