This is an effort to redefine in SVG some parts of early Antics Systems

Introduction

Colin Emmett and Alan Kitching were early users of the computer graphics facilities at the Atlas Computer Laboratory. The main requirements they had were a device for inputting drawings (a D-MAC pen follower), a fast computer (Atlas and later the ICL 1906A) and a means of outputting graphical images on to film (SC4020). The involvement started around 1972.

2. Image Capture

2.1 Inputting Drawings via the D-MAC

The D-MAC pencil follower allowed the operator to input the coordinates of a drawing by either a point at a time, lines between two points, or a sequence of points making up a shape. Commands output from the D-MAC could indicate the type of output being generated. The coordinate pair output had the form:

Exxxx  Fyyyy

E indicated a 4-digit X-value and F indicated a 4-digit Y-value. A typical output would be something like:

PAGE,1
ORIGINS
E5882 F1013
E7972 F0997
E7979 F1996
E5892 F2009
TRACK,CURVE
E5985 F1111
E6085 F1247
E6187 F1345
E6282 F1370
E6387 F1186
E6484 F1160
E6584 F1256
E6678 F1445
E6782 F1614
E6885 F1768
E6981 F1868
E7084 F1918
E7185 F1868
E7284 F1765
E7380 F1645
E7477 F1535
E7576 F1442
E7676 F1342
E7777 F1252
E7875 F1180

D-MAC Path Drawing

Thus the D-MAC gave the user the ability to input the coordinates of a graphical outline. The initial implementation towards ANTICS was, therefore to specify a curve by a set of line segments and make it a closed curve by adding a point back to the opening point. No constraint was placed on the outline input so it was possible for the outline to cross over itself.

Simple Outline

It soon become apparent that such outlines were quite limited and so an object was allowed to consist of a group of outlines.

Group of Outlines

Finally, the aim was to generate coloured areas not outlines so that there was a need to generate Fortran routines that could take the group of outlines as a single area and decide what part of the area is inside and which is outside. At the time, the only algorithm used was to take a line from infinity to a point and if it met the outlines an odd number of times it was inside and if it did not meet the group of outlines or met it an even number of times it was inside. The decision was made to create the filled area by drawing a series of vertical lines two raster positions apart on the SC4020 to fill the area (the SC4020 vertical lines were about 2 raster positions wide).

Coloured Group of Lines

2.2 Image Library

Any images captured via the D-MAC were stored in an image library for future use. The creation of animated sequences tended to consist of defining a number of key frames much the same as in conventional animation. These intermediate frames were also added to the library and called on when required.

3. Transformations

3.1 Introduction

A major influence on Antics was the Computer Image Scanimate system albeit from quite different backgrounds. Scanimate had proved a major supplier of short TV adverts in the USA and elsewhere using a computerised analogue system for manipulating video images. Art work was captured and then manipulated via analogue transformations of the image with good control over the timing of sequences.

The Antics equivalent was to define a set of transformations of the captured X-Y definitions of objects both in the X-Y plane and the time domain.

Simplifying the problem, images are defined on an infinite plane with a 1000 × 1000 area visible. For a 4-second animation, about 100 separate frames are needed that vary over time. Thus the captured images needed to be transformed both in the X-Y coordinate space and the time dimension.

For a 4-sec animation, the array of C(X,Y) coordinates for each object needed to be transformed into C(X,Y,t) for t=1,100.

3.2 Transformations of Objects in Space and Time

The process is reasonably complicated for each frame:

  1. Define the images needed on a sequence of key frames
  2. Calculate any transformations applied to the image coordinates for those frames
  3. Compute the scaling, rotation, translation and timing to apply to the overall image for these frames
  4. Interpolate between the key frames to produce the inbetweens

The example below is a recreation of an early ANTICS demo showing off various effects. Over the following period more and more effects were added to the repertoire. All were transformations of the coordinates making up objects and pseudo 3D was even added by this process.

Transformations of Scale, Rotation, Translation, Timing and Coordinate Transformations

3.3 Image Transformation

In most animations there is a need to change one object into another. If the two objects have the same substructure and the number of points in each object are the same then, in theory, it is a simple operation of interpolating coordinate positions over a set of frames. But it is never that simple for several reasons:

  • The number of points in two images is seldom the same. A face moving may make a second eye come into view thus changing the number of sub-objects.
  • Unless the two images were created with the expectation that they would be transformed from one to the other then the starting position will almost certainly be different.
  • SCANIMATE also had the same problem and it was replaced by CAESAR (Computer Animated Episodes with Single Axis Rotation). Often the intermediate positions are not a simple interpolation. Both the National Film Board of Canada and Computer Image had added point rotations to solve the problem.

The three examples below illustrate the problem of morphing the duck into a cat and back. The number of points in each image are the same. The cat is drawn starting at the top centre. The top duck is started at the tail and is drawn clockwise, the same as the cat. The bottom left has the origin starting at the top of the duck's head and drawn clockwise while the one on the bottom right is drawn anti-clockwise.

There are significant differences in each animation.

Changing a duck to a cat and back

The problem that often arises is that the two drawings have different numbers of points and there are various ways of solving the problem, several of which were used by Antics:

  • Add points to the image with the smallest number of points until they are the same. The easiest way giving reasonable results is to add zero length vectors spaced around the image.
  • An alternative is to divide long lines in two in the image with less points until the number is the same.
  • More sophisticated transformations include transforming the two images into two evenly spaced sequences of lines with the individual lines in the image of similar length.