Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewFortran Graphics System for the SC4020 (SCFOR)CAMP and CAMPER softwareComputer-animated movies (Anderson, 1970)Automating animation software (SPROGS)ANTICS animation software (1972)ANTICS (1973)ANTICS (1975)ANTICS manualCommand system for interactive graphics (PIGS)
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLApplicationsGraphics :: Graphics at ACL
ACLApplicationsGraphics :: Graphics at ACL
ACL ACD C&A INF CCD CISD Archives
Further reading

Overview
Fortran Graphics System for the SC4020 (SCFOR)
CAMP and CAMPER software
Computer-animated movies (Anderson, 1970)
Automating animation software (SPROGS)
ANTICS animation software (1972)
ANTICS (1973)
ANTICS (1975)
ANTICS manual
Command system for interactive graphics (PIGS)

SCFOR: Fortran Graphics System for the SC4020s

Paul Nelson

1974

Computer Animation

FORTRAN in Computer Films Using CRT Microfilm Recorders

Paul was one of the authors of a book, edited by John Halas, describing computer animation. Paul concentrated on how users produced films on the SC4020 using SCFOR.

Fortran is one of the high level languages developed to make computers easier to use. It was originated by IBM for scientific application since this was the first area in which computers made a major impact.

Early digital computers had their electronic on or off states laboriously set by hand. The different combinations of these states or bits, in units called words, specify the instructions to be obeyed by the computer when decoded by a central processing unit. Later, programs were provided which assembled instructions in man-readable form automatically into machine readable form. Currently, more sophisticated translating programs or compilers produce many machine instructions for every statement or line of code written by a programmer. Errors are detected when certain rules pertaining to the languages are broken and diagnostics to this effect are printed out. Fortran is such a compiler. Machines made by different manufacturers usually provide Fortran compilers. Generally speaking programs written in Fortran for one machine will run on another without too much alteration.

Several graphics packages have been produced in Fortran and in principle it is not too difficult to transfer these from one machine to another. However, in order to obtain maximum efficiency it is sometimes necessary to go to more basic assembly languages. These permit the designer of a package to gain full access to the machine's power or capability. Routines written in this form are callable from Fortran statements. But these subprograms are not always easily transferred as they may be machine dependent. This means that they may rely on certain hardware (i.e. electronic) or even system software features. Different ways have to be found to achieve the same end result.

To produce computer generated film the following procedure is usually adopted. After a storyboard has been worked out, a program is written which will reproduce the desired pictures frame by frame. Use is made of the routines provided by the graphics package to obtain these with minimum effort. Sometimes the objects portrayed are the result of curves generated purely from mathematical functions. For these the data is derived purely from calculations internal to the program. In others, large amounts of data in the form of X-Y co-ordinates have to be utilized. These may have to be tediously worked out by hand from drawings on squared paper or, better still, automatically produced by a line-following device. In the latter case, the position of a pen on a special table determines the X-Y value at any one point. Often, a combination of both kinds of data is employed. The working out of three-dimensional co-ordinates for some objects presents even greater difficulty.

The program, written as Fortran statements, is then either punched on cards or on paper tape for input to the computer. On-line typewriter terminals are another means whereby programs may be entered into the computer, but these are not always available. Once in the machine, the program is compiled by the Fortran compiler into machine instructions. When the computer starts obeying these instructions the program is referred to as being executed. If successful, the result is an output of information designed .to reproduce the pictures specified in the storyboard. They are, as we have seen, reconstructed on automatic plotting machines or microfilm recorders. The information can be transferred off-line by means of magnetic tape. Each 2,400ft reel is capable of holding details of approximately two million operations or instructions to the recorder. In producing cine films with even a modest amount of plotting per frame, it is surprising how many tapes are sometimes required. One example used six full tape reels to make a five minute film.

It is also possible to transfer the information on-line via cables carrying the electrical pulses directly from the computer to the recorder and vice-versa. After the various functions, such as advancing the film, have been performed on the recorder, signals can be sent back to the computer to prepare it to send more data along the cable. The disadvantage with an on-line system is that if the film is spoilt or subsequent runs required, the program has to be run again. Even when outputting lines and points at several thousand per minute of computing time, periods in excess of one or two hours are often required for film sequences lasting two or three minutes.

Let us now examine the process in slightly more detail.

COMPUTER AND RECORDER

Computers are provided with accumulators and can perform operations such as adding, subtraction, multiplication and division, and can also compare figures. In other words, they are designed to operate on numbers. There is no reason why the decoding of bit patterns should not give rise to a completely different set of functions. Such operations could, for instance, position a line or a character on the face of a cathode ray tube. This is basically how microfilm recorders work. The images on the screen are produced by decoding information - bit patterns - prepared by a host computer as outlined above and normally recorded on magnetic tape. The screen is photographed by a cine camera, also operated by instructions from the magnetic tape. The computer, by obeying its own instructions can generate instructions that another machine, the microfilm recorder say, can obey. It often turns out that as well as having entirely different operation codes, the word length or number of bits in a basic unit for the recorder is not the same as that for the computer.

BASIC ROUTINES FOR THE RECORDER

The user of a microfilm recorder is faced with the same problem as the user of a computer without an assembly language. He has to assemble the bits in order to get the recorder to follow a program specifying his needs. The way in which this is done is for a computer programmer to write some basic routines, often in computer assembly language, to relieve the user of this irksome job. A routine is a set of instructions to the (host) computer to perform a specific task perhaps many times in one program. It has a unique name to which it may be referred to in a Fortran program. When called, the instructions comprising that routine are automatically obeyed by the computer. For example:

      CALL OPCODE(1)

might be used to place operation code 1 for the microfilm recorder into the part of a word where it is expected to be found. This code could be the one that advances the film in the camera ready to record the next image. A set of such codes would include the following:

Code Interpretation
1     Advance Film
2     Plot a character
3     Draw a line
4     Stop

In the case of plotting a character, additional information would have to be supplied specifying the character and its position on the cathode ray tube. In the case of a line, the starting position of the line and its length or deflection along two axes at right angles to one another. This supplementary information would then be stored in the remainder of the word with the appropriate operation code by other routines callable by the user.

Y X L1 L2

Fig. 1: Plotting a character

Cathode ray tube face Plotting region within rectangle Y X (100,200) (140,260)

Fig. 2: Plotting area on tube face

An important feature of a computer that enables routines to perform effectively is the transfer or jump operation. This allows the machine to jump to a location out of sequence for its next instruction. After obeying a certain (sub) program or subroutine the last instruction will cause the computer to transfer back to the next instruction after the initial jump. Thus:

      CALL OPCODE (1)
      CALL OPCODE (2) 

would effectively do this:

CALL OPCODE (1) ------------------->SUBROUTINE OPCODE(NUMBER)
                                    ---------
                                    ---------
                                    RETURN
                                       |
     -----------------------------------                                  
     |
CALL OPCODE (2) ------------------->SUBROUTINE OPCODE(NUMBER)
                                    ---------
                                    ---------
                                    RETURN
                                       |
     -----------------------------------                                  
     |
NEXT INSTRUCTION

Different values for the number within brackets or argument could be used by subordinate Opcode. In this example, it would first cause the microfilm recorder to advance the film and secondly prepare it to plot a character, Two more routines would then have to called specifying the character and its position.

      Basic routines     Low level routine
      CALL OPCODE (1)     CALL ADVFILM
      CALL OPCODE (2)-|
      CALL CHAR (66)  |   CALL PLOT(100,66,200)
      CALL X (100)    |
      CALL Y (200)    |

giving two (microfilm recorder) words. This could be disguised from the user trying to make a film by providing the two routines as indicated on the right-hand side. In addition to reducing the number of characters to be typed it is somewhat more intelligible. Another example might be:

      CALL OPCODE(3)-----|
      CALL X(100)        |
      CALL Y(200)        | ___ CALL LINE(100,200,140,200)
      CALL DISPLX(40)    |
      CALL DISPLY(60)    |
                     ----|

The number 100 and 200 would be where the line in the X and Y direction commences and 140 and 260 would be the co-ordinate of where the line terminated.

The plotting area is divided up into addressable points in both the X and Y directions. Any position may therefore be accessed with an accuracy dependent on the point separation.

Since there is a finite number of positions on the tube face, usually 1024 in the X direction and 1024 in the Y, the values given to the recorder must lie within the range 0 to 1023. However, the user may be working with numbers which go from -10 to +3000. Somewhat higher level routines thus become desirable so that values in the users scale can be specified. The higher level routines then scale these so as to generate numbers in the range 0 to 1023 and produce a correctly proportioned picture.

The above implies that all of the object picture is scaled onto the screen. If the scale conversion is gradually changed so that less of the object picture still fills the screen, a zoom-in effect is achieved (see dotted lines).

Thus:      
      CALL MYLINE (-10, 0, 3000, 0)
should somewhere give
      CALL LINE (0,0, 1023,0)

Object Picture 1 (-10,0) (3000,0) Screen (0,0) (1023,0)

Fig.3: Zoom in effect by gradual conversion of scales

Windowing is where only a portion of the object picture is seen at a time. The window may be moved about, keeping the scale conversion constant but changing the limits of the area being viewed. Gradual stepping moves an object across the field of view simulating panning. If it is replaced by another object with which it shares the screen, a wipe is produced. Additionally, a zoom combined with a wipe is possible.

Object 1 Object 2 Screen Object 1 Object 2 Screen Object 1 Object 2 Screen

Fig. 4: Windowing is where only a portion of the object picture is seen at a time. The window may be moved about. Gradual stepping moves an object across the field of view simulating panning. Additionally, a zoom combined with a wipe is possible.

Slight displacements of lines and points from one frame to the next will obviously produce cine film. The programmed controlled displacements may be as small as one unit or addressable position so that ultra smooth movements are possible. Calling higher level routines, although easier for the programmer, increases the amount of work for the computer. As computers become faster this is less of a problem. Another approach is where a small computer is attached to the microfilm recorder to perform the major part of the picture forming steps. Such software packages as Beflix which produce textured areas by filling in with lines and characters stand to gain considerably from these systems.

PROGRAMMING A CHARACTER SET

With this as a background it should now be possible to discuss software or programming features useful in computer animation. One of the first necessary options to provide is a character set made up of small lines. This must be simple to use and the character size should be easily adjustable.

An example might be:

      CALL LABEL (WORD, NCHARS, CHSIZE, X1, Y1) 

WORD could be the name of the first of successive words or locations containing the characters, (NCHARS, of them) to be output of size CHSIZE, commencing at position X1, Y1. The routine after picking up from the core store the definition of the characters in terms of lines, say, would ultimately call routine LINE many times with appropriate values for the arguments. Thickening of the basic lines by drawing parallel lines either side would make larger characters more acceptable. Alternatively, special fonts for different sizes such as those developed by Bell Telephone Laboratories could be employed.

CONSTANT INFORMATION

In animation it often happens that constant information, neither changing in shape or position on the screen, is required as a background. Obviously, these bit patterns once formed need not be regenerated from a higher level each time. If saved somehow, either in the core, on magnetic tape or on a magnetic disc, they could be re-output economically. An example might be where calls, generating lines, are positioned between special save calls:

      CALL SAVEA                 signifying start of save sequence 
      CALL LINE (0, 10, 20, 30)
      CALL SAVEB                  signifying end of save sequence 

The next time the picture defined by the lines is required a call accessing the bit pattern generated is all that is needed. For example:

      CALL USEIT

A further extension would be to provide arguments to these routines so that more than one background could be specified in a program

      CALL SAVEAA(1)
      ......
      CALL SAVEBB(1)
      CALL USEAA(1)
      -------
      CALL SAVEAA(2)
      ......
      CALL SAVEBB(2)
      CALL USEAA(2)

One of the banes of a programmers life is that however large a set he provides someone will eventually come along requiring the largest number plus one more!

ROUTINES FOR MANIPULATION

This saving is very nice but it lacks one property.

Once in bit pattern form it is difficult to reform it and manipulate the object made up, say, of a collection of lines. Some routines permit this saving at a higher level and operations such as rotation, expansion and displacement can be more readily applied to the objects. Names are associated with the objects and these may be referred to by the program. Desirable extensions might be where several types of displacement could be applied to objects over a given number of frames. One type of motion might be where the objects accelerate then assume a steady motion, as for example simulating real camera movement such as panning. Similar effects could apply to rotation and expansion operations where the rate of change was non-uniform.

Another useful feature would be where an alteration in shape of an object from an initial position to a final one could be carried out. The only parameters required would be the object names and the number of frames over which the change is to occur. In conventional animation the term in-betweening is employed for this procedure.

Genuine fades are not easy to achieve at the present time mainly because microfilm recorders were not really designed for sophisticated animation. In normal fades, the picture content appears or disappears uniformly over the whole frame. With current systems the information content can only appear or disappear in discrete amounts, such as a line or plotting dot at a time. Electromechanical (hardware) features built into the operational function of the recorder could assist. For example, if the aperture of the camera and the backspacing of the film could be called upon by program, then dissolves could be carried out. Alternatively, recorders having a range of line intensity settings provided under program control would give the same result if suitably programmed. Shading of irregular shaped objects presents problems of computing time requirements, and these are involved if iris effects are needed. Even containing lines within a rectangular area takes time. This is termed scissoring whilst the converse, called masking or shielding is just as expensive.

The dotted lines do not appear, and calculations as to if, and when, the lines interact the box have to be performed for every line in every frame.

BEFORE AFTER SCISSORING AFTER MASKING

Fig. 5: Scissoring and Masking

DEMANDS OF RESEARCHERS AND ANIMATORS

The presentation of apparently solid objects, whereby calculations have to be performed to remove the hidden lines or lines obscured by nearer surfaces, is no mean task, either for the programmer or the computer. But apart from these difficulties and the fact that colours are not easily produced by present systems, all is well. Even with these present limitations, which will tend to disappear with time, interesting films are being produced. The aims of the researcher are usually easily satisfied by the most basic facilities. He is interested in the movements of a few points or lines laboriously worked out by the computer. Often he is more than satisfied looking at a few stills and it is a job to persuade him to animate. He nevertheless usually becomes enthusiastic once over the initial hurdles and viewing his first sequence.

It is true to say that most systems become extended as awareness grows as to the needs of the users. Animators might find the programming difficult to understand just as programmers frequently do not have a feel for timing or the artistic merit of film sequences. I was impressed when discussing a particular sequence with a film producer how specific he was able to be regarding timing for instance. Interaction between interested parties on both sides may help towards better systems in the future. Always lurking in the background, however, are sordid realities like limits to the size of the computers core and computing speeds. On dedicated machines these matters are not too serious, but more often than not computer animators are tolerated at best where others compete for time.

VALUE OF GRAPHICS DISPLAY TERMINAL

The graphics display terminal is perhaps the answer to the problem of how the professional animator can really benefit from the assistance of a computer.

With these devices he is able to communicate visually and often in real-time with his creations. Being relieved of the need to remember how to avoid the pitfalls in a formal programming language, he can concentrate on the art work. With a light-pen pointing at the screen his drawings may be input directly to the computer and stored. If later on he is not entirely satisfied, these objects may just as easily be altered or erased. A further advantage is that virtually instant playback on the screen is possible before recording on film. When contented with his efforts he may literally push a button in order to reproduce the sequences on film with no more work on his part.

VALUE OF COMPUTER ANIMATION MATHS FILMS

A wide field open to the computer animator is the educational film, where mathematical representations can gain enormously from the accurate positioning of lines and symbols. The computer was designed for this type of calculation, as was the Fortran language in gaining access to the computer's power. Practical experience has shown that films produced for educational purposes with mathematical content can be put together accurately, rapidly and relatively inexpensively using computers - inexpensively, if the same detail was to be asked of the hand animator, that is. How much footage we shall see in the future depends largely on the support it is given and the availability of software packages and low cost computing power. Let us hope it flourishes with judicious nursing.

A DEMONSTRATION FILM

A film, Focus, using the system outlined earlier was made by the Atlas Computer Laboratory, Chilton, an establishment of the Science Research Council. It was primarily intended to stimulate interest among potential users of the facilities available. In fact, it received a very generous amount of interest outside this group, and was selected for showing at the British Industrial and Scientific Film Association meeting at Brighton, England. Further requests have resulted in copies being shown in the USA, Holland and Borneo.

This film demonstrated various routines for achieving simulated camera effects and other necessary functions such as line thickening. There then followed a sequence describing the method used by a contouring routine for handling randomly distributed points having known values. A dramatic view of the earth rotating was produced from an adaption of a program originating from the American space project. It was generated from over eight thousand pairs of numbers representing the coastlines of the world and was accompanied by suitably stirring music. This gave way to a sequence of t

The success of the film was in no small way due to the addition of a magnetic sound track. In this I was aided by a professional film maker, Peter Hadingham of Swift Film Productions. He has, however, strongly advised me never to try and record sound at the so-called silent speed of 16fps again. This I did as a means of reducing production costs, and because I considered the quality adequate for small lecture room projection.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site