Processing: Finding Beauty in Math
Processing Rectangles Experiment
Since last week I've been fixated on Processing. What is Processing? Processing is an open source programming environment within which one can write programs using the Processing language to create digital art and animations. Both the art and animations can be either static – using predefined parameters, or dynamic – responding to user mouse and keyboard input. Processing traces its roots back to the Aesthetics and Computation Group at the MIT Media Lab.
I say fixation because I have embarked on a crash course approach to mastering this tool by reading and fully understanding the book Processing: Creative Coding and Computational Art. Written by Ira Greenberg, the book provides a solid introduction to graphic programming and animation in the Processing environment.
Processing itself is a Java application so requires that Java be installed on your computer. The Processing programming language is similar to Java but much simpler. Artists without programming experience may find some of the object oriented programming concepts tricky to follow. Do not let this discourage you. From the book's description:
"This book is written especially for artists, designers, and other creative professionals and students exploring code art, graphics programming, and computational aesthetics. The book provides a solid and comprehensive foundation in programming, including object-oriented principles, and introduces you to the easy-to-grasp Processing language, so no previous coding experience is necessary."
It has been some years since I have written Java programs. In fact as far as I can tell my Java applet Mars Database of Named Features was the first such tool available on the Internet. Unfortunately I have not updated the data elements since the last program update in 1999.
I have always found algorithmic art fascinating. Many years ago I wrote a Basic program to produce Lissajous curves based on user input and shared it with a few friends. The program was created and ran on an OS/2 system. Do you remember OS/2? OS/2 was the IBM operating system for the PC that was a pleasure to use. Unlike Windows, it was a real operating system and in my mind far superior to its Microsoft counterpart at the time. One objective I have is to revive this old program and port it over to the Processing environment. Perhaps even turn it into a Java applet on my web site so that others can play with it. Of course this is assuming that I can find it (see Doomed Diskettes).
I created the graphic Processing Rectangles Experiment (shown above) using a simple Processing program I wrote. The program has just 11 lines of code. The "vision" aspect consists of having a picture in your mind of what you want to create and then being able to translate that vision into lines of code.
Having only just begun to learn Processing, one concern I have is the apparent limitation to images being no larger than the physical screen size. It appears that Processing does allow large images to be opened in a memory buffer and displayed on the screen one section at a time. I don't know the answer yet but it may be possible to draw to this buffer area; display sections of the buffer on screen; save the sections to disk one at a time; and then reassemble the image in Photoshop. I do hope so.
Processing Videos and Games
Following is an example of a video created in the Processing environment. Titled Moscow Olympics: Second Trace it was created by Vimeo user Eduardo Omine. It serves as an example of Processing's animation abilities integrated with audio.
Moscow Olympics: Second Trace. Video since removed
Another interesting example is a game created using Processing.: Benjamin Nelson's SlingStar (the site http://stanford.edu/~bmnelson/ is no longer online) is more easily played than explained.
For more information about Processing and examples, check out the following.
- Processing Information, Download, and Forums
- Open Processing Exhibition Space
- Vimeo Processing group
Happy Processing, Jim