May 30, 2003

Artist Programmers: an ongoing discussion

by Andrew Stern · , 3:40 am

An issue we want to address on grandtextauto, as we discuss the practice of making computer-based art, literature, poetry, drama, etc., is the question of artists as, or needing to be, programmers. How can artists to learn to be programmers? Why aren’t more artists programmers? Can tools simplify or take the place of programming? What kind of programming languages are amenable to artists? At what point do artists need to be programmers? Isn’t it enough for artists just to collaborate with programmers? Are programmers artists?

This topic is too big to address in just a post or two – so we’ll be addressing it in blog posts over time. Please join in with comments, ideas, and opinions.

For much of the art-making from each of us on this blog, non-trivial amounts of programming have been a key requirement. Each of us are programmers, some pretty hard core. Some of us are teaching artists how to program – for example, Stuart is establishing an undergraduate degree in games and simulations; Michael will be teaching a class this Fall for artist programmers. A couple years back I wrote an essay on the topic. Several others in the community, such as the outspoken Mark Bernstein, have a lot to say about this.

As an informal way to kick off the discussion, I thought I’d poke around on the web to see what kinds of artist-programmer stuff is currently out there. A cursory search turned up a few interesting things. Please contribute more links in comments!

First of all, there are all the languages and systems many people are already pretty familiar with, that artists tend to use – HTML, javascript, Flash, Shockwave, Director, StorySpace, Hypercard, MUDs and MOOs, game mods, etc. etc. A great thing about these languages / systems is that, unlike, say, C++ or Java, they’re pretty easy to get started with. Some are integrated with user-friendly GUI interfaces. One can start simple and slowly wade into coding, to the depth you wish. But there tends to be limits to their power – hence the need for this discussion. (More on what these limits are and why it’s important, in future posts.)

Here are some example university courses geared towards teaching artists to program, at RIT, SMFA Boston, U.Washington, Ohio State. The instruction in these courses range from Java to Flash.

John Maeda’s Aesthetics and Computation Group at the MIT media lab has developed a programming environment and language called Design by Numbers. “The environment provides a unified space for writing and running programs and the language introduces the basic ideas of computer programming within the context of drawing.” Design by Numbers is being used in several university courses outside MIT.

Proce55ing, also from Maeda’s MIT group, “is an environment for learning the fundamentals of computer programming within the context of the electronic arts and it is an electronic sketchbook for developing ideas”. On the site are some very impressive new works of algorithmic visual art created in Proce55ing.

Python is a language with “simple, easy to learn syntax that emphasizes readability and therefore reduces the cost of program maintenance”. The site includes lots of tutorials about learning how to program. Here’s an article suggesting that there is a book in development for Python programming for artists.

For the creation of text-based interactive fictions, a popular user-friendly language is Inform, developed by Graham Nelson. I’m sure Nick has a lot to say about this.

Alice is an interactive 3D graphics programming language developed at CMU. “Learning to program a computer is hard. Alice makes learning to program easier. And it’s fun.”

In a previous post I mentioned Garage Games’ new Reaction Engine.

For our interactive drama project Façade, Michael and I are developing ABL (A Behavior Language), specifically designed for the construction of virtual characters, aka believable agents. When it’s ready, ABL will be made publicly available.

Ken Perlin gave a short passionate speech at last March’s GDC Academic summit, calling for teaching procedural literacy to everyone, starting from a young age.

What else is out there for artist programmers?