Art1

I created a repository for running Art1 on modern computers (https://github.com/ef1j/Art1). Here, I document what I've learned as I explore one of the first computer art programs. Some recent Art1 compositions are here. I write about the abstract painter Frederick Hammersley and his use of Art1 here.

Richard Williams' Art1

Art1 is a program that was written by Richard Williams (1931-2018) in 1968. Its purpose, as conceived in collaboration with the artist Charles Mattox, was to give artists access to an IBM System/360 Model 40 at the University of New Mexico in order to explore artistic and aesthetic uses of the machine. Williams, an engineer at Sandia National Laboratory and a faculty member in Electrical Engineering, collaborated with Charles Mattox, Frederick Hammersley, Kathernine Nash, and others. This early period of computer art is described in Patrick Frank's recent book, Sharing Code: Art1, Frederick Hammersley and the Dawn of Computer Art. [1] Art1 was disseminated to other institutions, especially by the efforts of Kathernine Nash, including to the University of Minnesota, the Computer Arts Society in the UK, the University of Puerto Rico, and the University of Iowa. [2] Williams' description of Art1 appears in Jasia Reichardt's 1971 book, The Computer in Art. [3]

Williams wrote Art1 in Fortran IV. The program provided seven elementary "drawing" routines of lines, rectangles, ellipses, triangles, and exponential curves, set in a composition space of two 50 by 105 character arrays. An eighth "quadrant" function mirrored the top left quarter of the arrays in the other three quarters. A running Art1 program received input from the user by a set of punch cards. The Art1 program's output, which included runtime information, was printed on an IBM 1403 line printer. Because Art1 works are composed of printed characters, they are an early example of "ASCII art", albeit with more abstract results than images or cartoons. Here is an example of Art1 output:

Hammersley in particular systematically explored Art1. His extensive archives [4] document a meticulous study of the program and its output during the period spanning from late 1968 through early 1971. Hammersley's use of overprint and especially simple overlapping shapes produced many sublime pieces. David Pagel, reviewing a Hammersley retrospective in 2013 that covered his Art1 works, states that "Hammersley's drawings show an inventive mind having a blast as it turns simple grids of letters, numerals and punctuation marks into eccentric compositions that are a pleasure to look at -- as fresh with insight and surprising delight as the moment they were made." [5]

There is something satisfying in Williams repurposing the technologies of bureaucracy, commerce, and social control. The very information processes and machines that calculated and printed the university payroll, or number-crunched the post-war 20th century technocracy---with its growing thermonuclear arsenals---could be subverted, adapted. They include the most fundamental of those technologies: type; the alphabet. The IBM System/360 mainframe and 1403 line printer, the then-modern incarnation of a succession of tools that, through time, recorded arithmetic tables, taxes, harvests---dating back to ancient cuneiform tablets---generated works of art at 1000 lines per minute. Repurposing is also an embodiment of hacker culture. Take a tool (alphanumeric glyphs, a mainframe computer, a line printer) and ask what novel things can come from it.

Even today Art1 is an interesting program to use. It is also exciting to see how many seeds of today's creative coding ideas and objectives were germinating at such an early time in the history of computers and computing. Indeed, Richards' Art1 has many similarities and objectives with the tools creative coders use today, including Processing, p5.js, and others. [6] Clearly, Hammersley and his contemporaries who explored Art1 and its offshoots "... preceded to test its limits and search for ways to express themselves through it." [1] And, like current creative coding practitioners, Art1 evolved in a community that openly shared and disseminated its programs.

Art1 in 2021 (and beyond)

Using an available listing of the original Fortran code, [7] I typed in the Art1 program and compiled it using a Fortran compiler on a modern machine. Doing this required only a few minor changes -- mainly, omitting the CALL EXIT command at the end -- and adapting the program and workflow to modern computing equipment. The Art1 program running on the IBM System/360 received input from the user by a stack of punch cards, which acts as the standard input (unit 5). The modified Art1 program simply reads the standard input by changing READ(5,*) commands to READ(*,*). (Note that all of the READ and WRITE commands have associated FORMAT statements, which is used in place of the second asterisk.) Output WRITE(6,*) commands are likewise redirected from unit 6 (the printer) to the standard output.

The easiest way to input data to Art1 on a now is to redirect a text file. [8] The structure of the input file is described in Williams' mimeographed instructions. Here is the code that generates "EXPANDING":

'1 11        EXPANDING                                       04 APR 24
06,1500010520052    50105
06'1500010480052    50105
06,1500010470052    50105
06'1500010450052    50105
06,1500010430052    50105
06'1500010410052    50105
06,1500010390052    50105
06'1500010370052    50105
06,1500010340052    50105
06@1500010250050    50105
06I2500010320052    50105
01 

Each of the lines in our file represents one 80-column punch card. A card stack starts with an initialization card, which specifies the default characters for the two arrays, the number of prints to generate (between 1 and 6) and the title to be printed at the bottom. Here, thirteen instruction cards are required to make a reasonably complex composition. The instructions end with a "sentinel" card, 01 that marks the end of the Art1 instructions. After reading in each card (or line), the program modifies the AR1 and AR2 arrays. At the end of the program, the output of Art1 (what is stored in AR1 and AR2) is sent to the standard output with Fortran carriage control characters, +, 0, and 1, in the first column to denote carriage return, line feed, and form feed. The BSD Unix command asa can be used to convert this text format to use more common ASCII control characters.

As you can see in the example above, Art1 makes use of overstriking, the ability to print characters on top of each other by issuing a carriage return without a line feed. Text output in a terminal will separate lines that would be overprinted in a printer, or only render the second line. Since most of us don't have an IBM 1403 line printer handy, I wrote a program to process the text from Art1 and generate images. The program uses high resolution scans of glyphs from an Olivetti Te-318 teleprinter. The images are 600dpi and would normally be printed on 14-7/8" by 11" white tractor feed paper. It's also easy to generate a PDF file directly from the Art1 output using the commands enscript and ps2pdf, which is how EXPANDING was generated. Details are provided in the Github repository linked above.

The first page of output from Art1 summarizes the cards that are read in. Here's an example from EXPANDING:

tangent31 1

The Art1 computer

IBM System/360

Williams used the University of New Mexico's IBM System/360 Model 40. The System/360, developed under Thomas Watson, Jr.'s leadership, was one of IBM's "bet the company" moments in its history, as documented in James W. Cortada's recent book, IBM: The Rise and Fall and Reinvention of a Global Icon. [9] The System/360 was announced in April 1964 and deliveries began a year later in April 1965. The model 40 was one of the first computers offered by IBM in the series. I've created a page on the IBM System/360 to describe the installation and software.

A limited number of characters were available for early Art1 users at UNM according to Williams' instructions:

ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*/=.,'()$

A revolving chain in the high speed IBM 1403 printer set the available characters. This particular arrangement of 48 glyphs (including space) was used for printing FORTRAN programs and scientific output. Other chains were available from IBM for business applications (accounting, payroll, inventory) and printing in a variety of languages. The glyph set is quite limited compared to the character sets that we are familiar with today. An interesting exercise would be to create Art1 works with lowercase letters and other symbols, or asking how the output might have varied as Art1 was adapted at other institutions on different equipment.

From the Systems Reference Library IBM 1403 Printer Component Description: "Chain and train arrangements are provided in addition to the AN, HN, PCS-AN (preferred Character Set-AN), PCS-HN (preferred Character Set-HN) and QNC (Figures 32 and 33)." It is a guess that, given the S/360's use calculating the UNM payroll and supporting science and engineering departments, they had the RN chain installed: FORTRAN-COBOL-COMMERCIAL.

Williams documents another peculiarity of the computer in his Art1 instructions. He states that blank characters in the initializing card would erase the Arrays 1 and 2, but then goes on to write, "A local UNM printer difficulty requires non-printable character instead of a blank. Here, use a (") for a blank."

CDC 6600

Katherine Nash, who was visiting the University of New Mexico when Art1 was developed, took Williams' code with her when she returned to the University of Minnesota. There, she implemented Art1 on a Control Data Corporation CDC 6600, and continued to develop the program. How was the CDC machine equipped? What line printer did it use? How does the type differ between prints made in New Mexico on the IBM equipment and those in Minnesota?

Computing Costs

Computer time was expensive in 1969. (See this link for an estimate.) Computers were not the ubiquitous devices that they are today. Access to mainframe computers like the IBM System/360 was restricted. Jobs were submitted by users and run by trained computer center staff. Programs ran in batch, one at a time. Frivolous use of the computer was discouraged, and sometimes considered theft. James Ryan writes, "the production of ... artifacts [line printer Snoopy calendars] was identified in the late 1970s as the canonical example of `computer crime,' due to a strong association with the unauthorized use of such equipment." [10] A 1978 bill introduced in the U.S. Senate proposed that "stealing" computer time should be a felony, punishable by up to fifteen years in prison. In one famous case, Steve Wozniak left the University of Colorado after his first year in 1969, in part supposedly because of the costs he incurred calculating Fibonacci's sequence on the university's computers. [11] It was also rare for an institution to outright own computers like the IBM System/360. Companies and schools typically rented them from IBM on contracts that stipulated the amount and cost of computer time.

In light of the cost and difficulty accessing computers, it is a wonder that Richard Williams and Charles Mattox were able to collaborate in the creation and use of Art1 at all. What permissions did they have to seek out from the university administration as they pursued their novel interdisciplinary work? How did they propose the project?

Conservation

Art1 survives today due to traditional archives and conservation practices. The artistic works, instructions, and related documentation were preserved through time as ink on paper, and were stored in personal and institutional archives. We have many centuries of experience archiving printed texts and material culture. Physical punch cards, too, survived in the Hammersley archives. To our knowledge, however, the Art1 code did not survive in a stored electronic form on magnetic tape or in an archived filesystem, although much of the toolchain used to compile and run Art1 has.

Similarly, the physical devices used to make the original Art1 prints are also rare. While there are a limited number of working IBM 1403 line printers today, there is no running IBM System/360 mainframe in operation. It is possible to run the code in an emulator, such as Hercules, that more closely replicates the computing process, but it is uncertain whether doing so provides important insight or new information into Art1 or the works of its adopters.

What if all that survived of Art1 was instead magnetic tapes of the archived program? Similar cases involving literary text or visual works have become more frequent in recent years, especially as the machines have become necessary for viewing or interacting with the work. [12] The conservation problem with the encoded information inaccessible to our immediate senses (vision) is intimately linked then to the material conservation of complex storage media and the devices used to read and present the information in a form that is processable by the human mind.

Acknowledgments

Thanks to Patrick Frank for providing a copy of Richard Williams' mimeographed instructions and to Paul Rickards for pointing out the proper use of STDIN. I gratefully acknowledge Richard Williams' family for their permission to make his code and instructions available and the Archive of American Art for their scans of Frederick Hammersley papers, including those of his original punch cards, Art1 output, and printed works.

Notes and References

  1. Patrick Frank, Sharing Code: Art1, Frederick Hammersley, and the Dawn of Computer Art (Santa Fe, New Mexico: Museum of New Mexico Press, 2020).
  2. Katherine Nash and Richard H. Williams, "Program for Artists: ART 1," Leonardo 3, 439-442 (1970).
  3. Jasia Reichardt, The Computer in Art. (New York: Von Nostrand Reinhold Publishing, 1971).
  4. Frederick Hammersley papers, circa 1860-2009, bulk 1940-2009. Archives of American Art, Smithsonian Institution.
  5. David Pagel, "Taking on the computer age." Los Angeles Times, February 8, 2013.
  6. Golan Levin and Tega Brain, Code as Creative Medium: A Handbook for Computational Art and Design (Cambridge, Massachusetts: MIT Press, 2021).
  7. https://ibm1401.computerhistory.org/pictures/ART-1-RWilliams-Fortran.pdf, retrieved 4/1/2024.
  8. Art1.f can be compiled with no modification at all. In Unix, one simply redirects a file (or the output of a punch card or tape reader) to the standard input: art1 < cardfile.
  9. James W. Cortada, IBM: The The Rise and Fall and Reinvention of a Global Icon (Cambridge, Massachusetts: MIT Press, 2019).
  10. James Ryan, 2022 Line-Printer Snoopy Calendar (2021), https://www.aleator.press/shop/p/snoopy-calendar-2022, retrieved 12/12/2021.
  11. Walter Isaacson, Steve Jobs (New York: Simon and Schuster, 2011), p. 24; Steve Wozniak, iWoz (New York: W. W. Norton, 2007), p. 68-71.
  12. Matthew G. Kirschenbaum, Bitstreams: The Future of Digital Literary Heritage (Philadelphia, Pennsylvania: University of Pennsylvania Press, 2021).

Links


Topics to write about

A list of topics that I'd like to write about include:

  • The structure of an Art1 program
  • Getting Art1 running and process workflow
  • Modifying Art1 to print different page formats
  • Adding array initialization to the code
  • Printing Art1 output on a teleprinter and wide-format impact printers
  • Code conservation
  • Data encoding on punch cards and EBCDIC

Some questions

  • What operating system or control software was used on the UNM System/360 model 40?
  • What we can learn about Hammersley's work by reconstructing it?