Processing, The Language

I have been wanting to jump into several programming languages, recently. Unfortunately, I’m very limited on time. As a full-time Flash developer, it is bad enough that I am lagging behind on adopting AS3, Flex, AIR, and Papervision. I would love to pick up Ruby, Python, and Silverlight, too.

However, the data visualizationist in me has been captivated this year by a language called Processing. Flash is a great tool for visualizing sets of data, and has served me fairly well in the past. While Flash is mostly tied to the web (and with AIR, it takes a step out of the browser), Processing is designed to be put in many more places. More on that in a second.

Let’s start with a summary of the platform. Here is an excerpt from Processing.org:

Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain. Processing is free to download and available for GNU/Linux, Mac OS X, and Windows.

Processing is built on Java, which means you can create applications for the web, desktop, and mobile devices. Even more fascinating, there is a project related to Processing, called Wiring, that allows your Processing application to communicate with homemade hardware (circuit boards, solder, and microprocessors, oh my!). This means that no matter what input or output medium you want to use, Processing should be able to do it.

Before I get motivated enough to try out any new technology, I need to see it in action. The more impressive the examples, the more motivated I will be to try it out.

I found out about Jonathan Harris thanks to his TED Talk in 2006. The project that I found particularly fascinating was “We Feel Fine“. It features many colorful objects floating in space that represent feelings the application discovered while scraping blogs.

As a Flash developer, I could not miss Audi’s “Rhythm of Lines” micro-site built using Papervision3D that features moving lines in 3D space, shaping the outline of an Audi A5. I was surprised to learn weeks later that the accompanying TV spot for the “Rhythm of Lines” campaign was created using Processing. Upon doing more research on the subject, I came across this detailed AIGA article about Processing.

Another feature that Processing boasts over Flash (something I have been wishing to see added to Flash years) is OpenGL-powered hardware acceleration. Papervision3D is filling the gap a little bit, but it still requires a lot of work from the CPU, instead of throwing it onto the GPU where it should be. OpenGL support means that you can add more complexity, some shading, and other fancy effects without taking much of a performance hit.

Even though I am very short on time, if I get inspired to do a particular data visualization, I might invest some of my sleep hours into a micro-project.