Learning Processing

“Is there a good, basic tutorial for Processing?”

This question gets asked all the time. Processing is a powerful, open source, cross-platform (Mac, Windows, Linux) tool capable of all kinds of multimedia magic from video processing to generative 2D and 3D art and animation. There’s no graphical UI, just simplified Java code, but it really is simple enough to be used by non-programmers — frankly, I find it much easier than ActionScript (Flash) or Lingo (Director). But download it, and it’ll be extremely unclear where to begin. There’s no step-by-step tutorial, just a reference to commands and some sample code.

Fortunately, Josh Nimoy — the NYU whiz who created the excellent JMyron computer vision library — has written just the kind of “Processing quick start” you need:

Processing Tutorial for Macromedia Minds

It’ll be particularly friendly if you come from Director or even Flash. There are also a couple of reference books due, one from Processing’s original creators and another, more practical reference, in the works for next year by NYU faculty Daniel Shiffman. Even after those books have come out, though, I expect people will still find a quick start useful. If you’re trying to learn Processing or even just want to see an overview of what it is and how it works, this is for you.

Incidentally, ignore the references to Proce55ing and P5; when Processing had zero Google rank for confusion with other forms of (lower-case) processing, this odd spelling was needed. Now, virtually no one uses these names.

Teaching Computers to See

Processing happens to be a great environment for working with computer vision applications, but that brings us to the next question: what’s computer vision, and how do you learn about that? Computer vision is a broad term applied to various techniques for teaching computers to “see” the way we do. This can be very simple, like basic motion detection and using frame differencing to display parts of an image that change from frame to frame. It can also be more sophisticated and interactive, from basic collision-detection with individual pixels to tracking discrete objects as they move around the screen.

Working with computer vision is a little like working with video in general: some of the basic techniques are simple and commonly-understood, but turning them into something artistic is easily a lifetime endeavor. That said, here’s one of the best places to start I’ve seen yet:

eating video: Workshop by Zachary Lieberman

Zach Lieberman is best known for his work on Messa di Voce, a beautiful interactive music piece with simple but elegant animations of circles and other shapes floating around performers and appearing to stream out of their mouths. For this workshop in Barcelona, he provides some terrific background reading (including the tutorial above), plus various code examples in Processing.

Missa di Voce is a glimpse of what computer vision can mean for performance, in what is likely to be a quickly-expanding medium.

This is extremely basic stuff in the workshop examples, but it’s a good place to start. (Windows users will need WinVDIG as this uses the built-in Processing capture library and QuickTime for Java.) Next, I’d suggest turning to JMyron (which also saves Windows users the trouble of using WinVDIG); check out the examples included with that download:

Myron aka webcamxtra aka JMyron from Josh Nimoy

Read through these materials, work through Josh’s tutorial, and work through the examples in JMyron, and you’ll be well on your way to creating some basic interactive motion pieces in Processing. I’ve been developing some of my own, so since that last step isn’t terribly well-documented, stay glued to Create Digital Motion and I’ll try to write something up in the next couple of weeks.