Probably the most novel of the early systems for generating computer animation was BEFLIX written by Ken Knowlton at Bell Labs in 1964.

Rather than making films out of line drawings and realising that the charactron tube character set was not of great use, he decided to produce a system that generated output in terms of quite large pixels producing a raster, typically of size 252 × 184, on a surface into which could be placed objects that had the possibility of 8 different greyscale values (numbers 0 to 7).

The program was a set of simple commands on a set of punched cards that needed to be interpreted by a program to generate the required SC4020 instructions. Initially these were in assembler code but later a Fortran version was released. The heart of the system was a set of 26 scanners that could move over the input 2-dimensional information to generate each required film frame.

The main syntax of BEFLIX is:

(scanner,operator,scanner or number)

Depending on the operator, this syntactic element can either be a condition or an action, with the initial scanner giving the scanner's position or contents (the number it is sitting over).

Instructions in the language take the form:

IF... (condition)...(condition) T (action)..(action) LABEL

If LABEL is supplied, the next instruction is the one with this label, otherwise it is the next command.

26 scanners called A, B, .., Y, Z are available for placing on the surface. We will typically use A and P as scanners and represent numbers by n.

Typical commands are IFANY, IFALL, IFNONE, IFNALL(not all).

The set of 26 conditions include:

  • Tests based on the relative positions of two scanners, (A,X,P) tests if A and P have same X coordinate
  • Tests on the scanner's contents, (A,E,n) tests if the contents of scanner A is the value n
  • Tests on the position of a scanner, (A,Y,n) tests if scanner A is above the Y coordinate Y=n
  • Tests on the contents of two scanners, (A,E,P) tests if the contents of A and P are the same

The set of 26 actions include:

  • Scanner movement based on another scanner's position, (A,Y,P) moves scanner A vertically to have the same Y-coordinate as P
  • Scanner movement from its current position, (A,U,2) moves scanner A up to positions
  • Scanner contents changed based on another scanner's contents, (A,W,P) replaces A's contents by the contents of P
  • Scanner contents changed, (A,E,n) adds n to the contents of A

The base BEFLIX language is enhanced by a set of subroutines that enhance the basic set of commands. These subroutines have their own set of scanners. These include:

  • Subroutines for generating lines, arcs and paths on the surface
  • Control when the current surface is transfered to film. This can be a static operation when the surface is complete or can be a dynamic operation where the new film frames appear at intervals during the changes being made to the surface
  • Film effects such as camera pan and zoom, dissolve between two different surfaces etc
  • Control over the output to the SC4020 screen

An example of what was possible is the film describing BEFLIX: A Computer Technique for the Production of Animated Movies .

The book Peripheral Vision: Bell Labs, the S-C 4020, and the Origins of Computer Art (Platform Studies) by Zabel Patterson describes the early work at Bell Labs.

The scanners concept was patented by Ken Knowlton: US Patent 3,609,670, Program Controlled System for Processing Spatially Distributed Information and is included as a separate page.

A flavour of how the scanners worked is shown in this animation that takes a textual frame of information and generates a set of large characters made up of a small set of SC4020 hardware characters.

Information to be Displayed Scanners A Defines start point and max Y value P Traverses first column Q Traverses second column Example SC4020 characters too small for films BEFLIX transforms information to be displayed Constructs large characters from a set of SC4020 characters (eg + and -) 26 Scanners define positions in the information Used to test contents and define the display T E X T Y X SC4020 Display SC4020 Display

BEFLIX probably had the most original way of solving the basic problem that the SC4020 was unable to generate film-size characters. GROATS took an alternative approach defining outline fonts that served the same purpose. Meanwhile ANTICS produced characters by drawing a set of parallel lines that filled in individual characters. This was the most costly in terms of time and the most difficult to achieve given the difficulty of maintaining a constant separation between neighbouring lines.