14 January 2011

Scott Draves

First of all I want to thank two incredible people who made possible this amazing Special Post, the well known software artist Scott Draves and as interviewer Phoenix Perry who is curator of Devotion Gallery and a new media artist and performer.

So in the interview you can read almost everything about the career of Scott Draves as a visual and software artist. He says how and when started in the fabulous and huge world of programming and also explains some of his projects in the easy way.
If you already know him, now you're going to learn a lot of new stuff from him, and if you didn't hear speaking about him, so you'll meet a pioneer of generative art and the creator of the Electric Sheep. See more;

Scott Draves (S) and Phoenix Perry (P)

P: Hi!  I’ve been looking forward to this.

S: Hi Phoenix. Me too.

P: Have you always been hooked on art through programming? When did you start?

S: I started programming in about 1978 when I was 10 years old. Our grade school had one computer for about 500 kids. It was an Apple II. I fell in love immediately and started to learn to program by myself. Eventually I convinced my parents to get one and we had an Apple //e at home.  I spent a lot time with it, sometimes playing games but also amusing myself by programming graphics and interactive things, including eventually games. I started out with things like spirograph in BASIC.

I was fascinated by the ability of the computer to do the unexpected. People think of the computer as an automaton that follows the program you write for it, but what's the fun in seeing it execute what you already imagined or knew? We are naturally attracted to novelty. Anything predictable or repetitive eventually becomes boring.

P: What were the games you played that influenced you the most?

S: So those were the days we had arcades with the classics: Space Invaders, Donkey Kong, Defender, Pac Man, etc. The computer wasn't as good, the ones I remember playing the most were Lode Runner, and I had a friend who had "Wizardry", a D&D knockoff.

P: What games did you make?

S: It was called "Ace Snake", it was written in assembly language.  It got a prize from a local competition. There were smaller ones but that was the only full-on polished one.

P: Did the game-play resemble anything that you later wove into your creative practice?

S: No, this was simple stuff.

P: I always find it interesting that gaming was the gateway into this space for many computational artists. It seems to inspire a sense of play that never dies.

S: It was definitely there from the beginning.  We had an Atari 2600 too. Not sure it was the gateway though -- more of a parallel track.

Electric Sheep

P: So what led you to make the Electric Sheep open source screensaver project?

S: The pieces came together over a long period of time.  Before Sheep there was the Flame algorithm, creating art out of math.  And before Flame there was a long series of experiments with similar algorithms. The first was the summer between freshman and sophomore years in college at Brown University.  My first job there was at a place called IRIS.  They had developed a whole collaborative multimedia hypertext system.  This was like 1987. I got a job as a sysadmin there and had access to the computers and network.

A friend (Bill Poirier) had described an idea to me, which he called “recursive pictures”.  He drew one for me by hand, it looked kind of like a bow-tie.  I’m not sure if he got the idea from “Gödel, Escher, Bach” (the book by Douglas Hofstadter, which has a similar “MU picture”), or had it on his own, or what.  I realized I could program the computer to draw one.  So I wrote it in PostScript, and the program ran on the original LaserWriter (at IRIS).  It output at 300dpi black and white, and made the picture with lots of very small vectors.  An image at 300dpi 8.5x11 was too much data to transmit to the printer, but the program was small, and then the image computed in the printer.  It was slow but it worked.  I made a couple dozen images with different transformations.  I wonder where they are now.

P: I was just going to ask that.

S: I found them in a folder just a couple of years ago, not sure where they are now though.  I think they made it into a storage box :)

P: So basically at this point you'd caught the generative bug?

S: I was fully infected.  It was really going in high school -- when I was playing with simpler things like spirograph. But with bigger computers and people to talk to who knew a lot, it had more room to develop.  Brown was a great place for computer graphics and a bunch of today’s digital artists studied there at that time too, like Scott Snibbe and Brian Knep.

Electric Sheep

P: What I though was so amazing about Electric Sheep is you had the idea to do this over a network.

S: That came later, in 1999. There were three steps to getting there. First while at the Brown graphics group working for Andy van Dam I kept playing with the recursive picture thing, rewriting it for different computers with different techniques.  I learned that it was basically Iterated Function Systems (IFS), a kind of fractal  -- I had access to the literature; I wasn’t just experimenting by myself anymore.  Eventually I went to grad school, and then on an internship to Japan.  This was 1992.

P: Where did you intern in Japan and how did being there effect you?

S: The company was called NTT Data, it was the Japanese version of Bell Labs.  I went after two years of doctoral study in Computer Science at Carnegie Mellon University.  This was back when Japan was “the future” to us here in the states.  The DOD was sending engineers there to learn their language and steal their magic :-)  They gave me some research jobs and a computer to work on.  It was a graphics supercomputer -- the highest-end SGI all to myself. An intern!

P: That's unheard of then.  Unbelievable.

S: Back in grad school I had the cheapest Sun workstation with a bit-mapped display.  Literally!  One bit per pixel.  It was still a serious computer compared to your basic PC or Mac, but the SGI was another world.

P: SGI machines at this point cost thousands upon thousands of dollars.

S: Yea it was pretty crazy.  It was like driving a Formula One car instead of a Model T.  I finished the job they gave me in two weeks. They gave me another thing to do and I did that in a week.  So then they said "well we don't have anything else for you do to, so you can have the rest of the summer to yourself."  I guess they weren't that interested in me working for them -- remember why I was there.  Or maybe they were just kind.  So I went to work on my art.  I didn't think of it as "art" yet -- it was just something I was into.

This computer gave me freedom.  I went back to the Flame algorithm. Previously I had been making approximations.  Because it takes so long to draw the image, essentially I was using shortcuts, just to get something.  But now with a fast computer and freed from the constraint of time I was able to come up with a true solution that revealed the complexity in this process.  Now it uses thousands of parameters.  The resulting images are distinct, unlike anything else -- but often remind viewers of objects in nature like feathers, galaxies, or coral reefs.

Electric Sheep
P: What came next?

S: The next important thing was open source: letting others see and use my code.  It was next year, back in school at CMU.  NCSA Mosaic, the first graphical web browser, was released.  I made a home page for myself and put the Flame images and the source code on it.  I was already very into open source.  Emacs (the text editor by RMS) got me hooked on that.  So not much happened right away, but word spread and people saw the gallery.  Things happened so slowly back then, but eventually the code got ported into the standard graphics apps: Photoshop (via Kai's Power tools), GIMP, and After Effects.

P: What were the plugins called?

S: In KPT it was FraxFlame, in the Gimp it was just Flame, and aeFlame for After Effects.  So now we are in the mid 90s.  Oh one thing
happened along the way:  my PhD adviser was initially Andy Witkin (who recently tragically died).  Actually I had two advisers: Andy for graphics, and Dana Scott for programming languages, which was my other big thing.  Ask me about fnord sometime, or about my thesis.

Andy had received a Golden Nica from the Prix Ars Electronica (for reaction diffusion textures, with Michael Kass).  I showed him the Flame images and he recommended I enter them in the competition.  I did (by taking pictures of a CRT, my monitor at the time, with a 35mm film camera and making slides).  I got a prize.  I didn't know it was a big deal, I didn't even go to Linz for the show.  I couldn’t have afforded it even if I had realized I should have.

P: That's the highest honor you can get in the community of digital arts.

S: Well I didn't get a Golden Nica but I am very honored.

P: Even being selected to go is a massive achievement.

S: Thank you.  Dana later told me he was there for the show, having no idea I had entered or anything, and they had a giant print of my work “Flame #149”.  He was admiring it and looked at the credit and realized it was his own student!  He was quite pleased.

Dreams in High Fidelity II on 3 projectors creating an immersive installation at Lexus Hybrid Art, Moscow, 2010.04

P: So you accidentally ended up an artist.

S: Yes, in a way.  I had been doing it for years but without the label.

P: So how did you end up in California?

S: I graduated with my PhD in 1997.  The bubble was in full swing.  I moved to the Bay Area to work for tech startups, first Transmeta -- the chip company where Linus Torvalds among many other great programmers worked.  Later FastForward Networks, which got acquired by Inktomi.  So I was living in SF and the Internet was going off, big time.

One day I got a VHS tape in the mail.  It was from Alien Skin, the VFX company where the aeFlame guys worked.  They had put their render farm to work at night and made a couple minutes of video of animated flames.  I was impressed, it would have taken me weeks to do something like that on my regular PC.  This was right after SETI@home had come out, I think that was in the early spring.  Now the end of summer was approaching, I had just quit my job at Transmeta.  Burning Man was in a month and I was going to go (my 2nd time).  I was hanging out with my friend Nick Thompson and showed him the video and we had the idea of distributed rendering of Flames.  It was just rendering back then, no interaction, evolution, or crowd-source.  It took me a week to write the first version of the client and server.  It ran on Linux only at 256x256 resolution.  The genetic code was much simpler back then.

Once it was working, I posted it and emailed a few people, and it's been growing and spreading ever since.  We have half a million users now.

P: And this was Electric Sheep.

S: That's how it started.

 Draves' silhouette makes contact with the Electric Sheep.

P: You are well known thanks to Electric Sheep.  Do you consider it one of your best projects?

S: Certainly one of the best :-) But there are different metrics. Something like Dreams in High Fidelity, Clade, or Generation 243 are much higher quality.  But they are all created by the Electric Sheep project.  I don't think of it as a single artwork really but as a genre or a technique.  Other stuff I have done like Fuse and Bomb have been influential and are just as creative from my perspective, but they never took off in the same way.  There are many ingredients required for that, plus luck.

P: In a way they are now almost seed concepts for new forms.

S: Definitely, and that's one of my key motivations, to enable other people's art.  Running the screensaver is great, but it’s passive.
Voting is interaction, but it’s pretty low bandwidth. Hand-designing sheep – which people can do on their own using software built on the flame algorithm -- is pretty involved, but the ultimate for me is when people take our source code and make their own programs from it, or based on it. Or when people remix the sheep videos into their own stuff and make it their own. Now, that's intimate, engaged

P: That is very exciting, very interactive, it’s more than just pushing a button or waving your hand in a museum.  What language is it built in?

S: The graphics engine is in C. It's not based on any graphics API like OpenGL; it works directly with the math and the pixels as raw memory.  The genetic algorithm is also in C, but the http/networking/database part of the server is in Perl.  What a horrible choice that was, it really needs to be redone.  We used to have separate code bases for each client platform, but now we have a unified C++ client for Mac, PC, and Linux (it has some Objective-C on Mac).  The mobile clients (in development) use the native APIs (Java for Android and Objective-C for iOS).

Working directly with the pixels in C is what gives us our unique look.  It’s unlike most other digital art, which uses primitives or vector graphics or photography.

Electric Sheep

P:  What do you think of efforts like Cinder and Processing? Cinder is in C++ and it seems now the world is catching up with you.

S: I think it's great that Processing has made programming interactive graphics easier.  It's opened the door to a lot of people, as has openFrameworks.

P: Now there's a whole pack of artists programming, exploring code in a way never done before.

S: Yes but all of those packages are really just layers on top of something like OpenGL.  It's certainly true that there are lots of programmer/artists these days, whereas 20 years ago you could count them on two hands.

P: So you are saying there's no OpenGL in anything you code?

S: Flame, Fuse and Bomb do not use OpenGL.

P: This hurts my brain.  Wow.  Tell me about the look, and your choice to not use what everyone else is using in terms of graphics packages.

S: A graphics package is like a language.  And Flame is a visual language, to use the term like Kandinsky did.  Processing/Cinder/oF are like Italian, French, and Esperanto.    You can draw lines, circles, and polygons in 3D.  They are based on the metaphor of drafting, which was called CAD when people starting doing it by computer.

Flame, the language of the Electric Sheep is different, it’s like Japanese or Martian.  In particular, in how you give up control.  And this is the source of its ability to evolve.  It's not really possible to take two Processing programs, mate them, and produce children.  But with the Sheep, it is.

Electric Sheep

P: Can you go into the details of this?  And for people who might not know about mating programs, can we give them a brief explanation?

S: Control is the crux of it.  With normal graphics, and normal art, the artist has an internal vision and then reproduces it in material form by hand.  You put a stroke here, a blob there, until the painting realizes what you saw in your imagination. Or - people sometimes ask me what photo source I used to make a particular image, but that’s not how it works either.

As I described from my earliest experiments as a child, what I want is not to "get what I asked for" but to get something I haven’t even thought of, and never imagined.  I want to surprise  myself, the creator.  Generative art is the path in this direction.  You can introduce randomness, for example.

And if your process has an element of complexity you might get more out of it than you put in.  This difference -- emergence, synergy, life, call it what you will, is what I am after.  I wrote a paper for YLEM Journal titled “Metaprogramming Emergent Graphics” that really goes into this, see here.

Normal computer graphics is more like the controlled process of painting.  Of course that's the metaphor -- drafting.  That's where it comes from.  Flames are different because the relationship between the parameters and the image is not so one-to-one.  What the algorithm does is solve an equation where every pixel is a variable.

P: So you really don't know how it's going to look until you are done. Tell me more about this equation.

S: Flame computes the interference pattern between geometric transformations of the plane.  It solves a recursive set equation.  It does so by sending billions of particles into a formula with thousands of parameters (corresponding to the genetic code), and based on where they go, the image develops.

Electric Sheep

P: What are you working on? You told me that you are reviving Fuse, could you explain it further?

S: The Fuse algorithm is a form of texture synthesis.  These days it is a standard technique in computer graphics, and many research papers are devoted to it.  But instead of textures you can synthesize pictures. :-)  At the time I was working on it I had to invent it myself.  I believe it was later independently re-invented by someone else, who actually published it in a scientific journal.  All I did was open-source the code.  I don’t think he saw it, but once ideas out there they are floating around.  It’s very common for something to be discovered in more than one place in the world independently. draves.org/fuse has a couple galleries of images from the mid-90s.  I’m working with this code again, making it better and applying it to new imagery and bringing new concepts to it.

Fuse is algorithmic but not so abstract because it uses images as input.  It was the first program that could do anything like the advanced kind of what most people call photomosaics, as well as other manipulations.  It takes images, breaks them into little pieces, and then fits them together to make new images, either with a goal or not. “With a goal” is like those posters you see everywhere now where a big face is made up of lots of little faces.  “Without a goal” overlaps them based on other similarities.  The algorithm primarily relies on search, associative matching.  It finds ways of putting together the pieces so they match their neighbors, and (if there is a goal) so they match that too.  This was inspired by the text cutup technique of William S Burroughs.  I think Brian Gyson was involved in that too.

P: I was just going to say that.  I feel like Gyson was nearly a generative artist in his approach to painting and language.

S: Yes definitely a progenitor. Along with John Cage.

Electric Sheep

P: Did you use Electric Sheep as part of Clade?  Could you explain which part you used?

S: Yes. Clade, the Blu Ray, is made with re-rendered, high definition Electric Sheep.  There are six sheep in Clade, plus about 20 ways of connecting those Sheep.  Those six were chosen because they form a clade.  I wanted to emphasize the evolutionary aspect of the Sheep, to tell more of that story.  Previously the HD pieces didn't have a theme.  I wanted to be more... specific.  Do you know that famous illustration of evolution, a monkey walking upright and becoming man?

P: Yes.

S: Clade treats that as a filmstrip. Those images are key-frames, for animation along (and across) the family lines of evolution.  A "clade" is a group that shares a common ancestor.  I learned the word from "Schismatrix Plus", Bruce Sterling's book.  It's a term from evolutionary biology and in a sense it's meaningless because the Darwinian orthodoxy is that all life is descended from one. But more practically it refers to any one branch of the tree of life.

P: Something in me feels like that is wrong.  Emergence is more diverse.

S: Right, it's not exactly true.  But it's a big step in the right direction.  See Lynn Margulis for a start on the exceptions.  Anyway, the terms species, genus, family, class, order, phylum, and kingdom refer to branches of the tree of life of different sizes.  "Clade" is the generic term for any or all of them, and the six sheep form a clade. They all share a common ancestor, and so they share a common gene, and so their shapes are related.

There is a common theme that runs through the piece. The structure they share forms a trefoil shape. This is an ancient symbol.  It makes the piece like a theme and variations, the musical form.  The trefoil is always there, but the Sheep look fairly different in style: one is modern, one is machine-like, one is like Indian lace, etc.  And then between them all kinds of things happen – the transformations from one sheep to the next reveal hidden secrets of their biology.

P: Do you think there are limits to what can be accomplished with computational art?

S: Certainly the field is limited by its definition.  And computation has some theoretical limits, like Kurt Gödel’s Incompleteness Theorems.  And there are plenty of practical limits. We talked before about how having a fast computer can remove one limit, for example.

But to address the essence of the question, the answer is no. I believe that computation can reproduce the whole creative process, and that ultimately computers can have soul.  We are a long way from that, but we are headed in the right direction.  The limits are really in society's understanding of this.

 Dreams in High Fidelity 2 triple projection at 3LD Manhattan 2009.  Photo by Mike Este.

P: You and I are much in agreement here.  Who inspires you?

S: I always find this question difficult. There are many people who have influenced me and inspired me.  Every time I make a list like this, I look at it later and think of all those I left off. How could I!  So, I will mention just one here, because he doesn't seem well known, but had a big impact on me, at a critical time in my life. That would be Gregory Bateson.  There’s a book of his collected writings, "Steps to an Ecology of Mind" that I found very insightful. I read it around 1995.  At that time I was struggling with the definition of information and meaning.  What is life?  A lot of theorists have definitions -- Claude Shannon, Andrey Kolmogorov, Greg Chaitin, Erwin Schrödinger, etc. People keep trying to quantify it. Bateson said "information is a difference that makes a difference". It was a sign to me that information (and hence beauty) could not be quantified, or reduced to an equation.  But, I was also reassured that I could trust myself to recognize it.  And so I was able to continue to pursue creativity.

P: OK that sounds like a good place to stop.  Thanks for talking.

S: And thank you for your time.
Edited interview by IM, 2010.12.23 for Triangulation Blog