Index / Processing / Seed / / HairyRed / ORA / Aviso / Conditional / MicroImage
Processing _BETA_

The Processing project was created to introduce a new audience to computer programming and to encourage the audience of hybrid artist/designer/programmers. It integrates a programming language, development environment, and teaching methodology into a unified structure for learning. Its goal is to introduce programming in the context of electronic art and to open electronic art concepts to a programming audience. Unlike other popular web programming environments such as Flash and Director, Processing is an extension of Java and supports many of the existing Java structures, but with a simplified syntax. The application runs locally and exports programs to Java applets, which may be viewed over the Internet. It is not a commercial production tool, but is build specifically for learning and prototyping.


Graphical user interfaces became mainstream nearly twenty years ago, but programming fundamentals are still primarily taught through the command line interface. Classes proceed from outputting text to the screen, to GUI, to computer graphics (if at all). It is possible to teach programming in a way that moves graphics and concepts of interaction close to the surface. Making applications created during learning viewable over the web supports the creation of a global educational community and provides motivation for learning. A "view source" methodology of programming enables the entire community to learn from each other.

The concept of Processing is to create a text programming language specifically for making responsive images, rather than creating a visual programming language. The language enables sophisticated visual and responsive structures and has a balance between features and ease of use. Many computer graphics and interaction techniques can be discussed including vector/raster drawing, 2D/3D transformations, image processing, color models, events, network communication, information visualization, cellular automata, etc. Processing shifts the focus of programming away from technical details like threading and double-buffering and places the emphasis on communication.

Programming Language/Environment

Processing is a Java environment which translates programs written in its own syntax into Java code and then compiles to executable Java Applet 1.1 byte code. It includes a custom 2D/3D engine inspired by PostScript and OpenGL. The software is free to use and the source code will be made public. It runs on Windows, Mac OS X, Mac OS 9, and Linux and the software is currently in Alpha release. The Beta release is scheduled for Summer 2003. Processing Version 1.0 focuses on teaching basic concepts of interactive networked computer graphics.


Processing provides three different modes of programming—each one more structurally complex than the previous. In the most basic mode, programs are single line commands for drawing primitive shapes to the screen. In the most complex mode, Java code may be written within the environment. The intermediate mode allows for the creation of dynamic software in a hybrid procedural/object-oriented structure. It strives to achieve a balance between features and clarity, which encourages the experimentation process and reduces the learning curve.

Skills learned through Processing enable people to learn languages suitable for different contexts including web authoring (ActionScript), networking and communications (Java), microcontrollers (C), and application development (C++).

Networked Learning

The Processing website houses a set of extended examples and a complete reference for the language. Hundreds of students, educators, and practitioners across five continents are involved in using the current version of the software. An active online discussion board is a platform for discussing individual programs and future software additions to the project. The software has been used at universities and institutions in cities ranging from New York to Oslo to Berlin and will be used in the future in Columbia, Korea, Turkey, and Japan.


Processing website
Software examples
Language reference



© 2002, 2001 | Casey Reas