Re: [-empyre-] capacious processing

Thanks to Peter Luining for posting his review of Processing. I'm writing this to answer some of Jim Andrews' excellent questions, as well as to expand a little on what I think is needed in an application to teach digital media theory and practice. It should be said that I believe in the essential need to teach the nature of computation, at least if the students are to be expected to break the boundaries of existing software.

If I come across as a Processing evangelist, I apologise. There are a number of tools that can be used to teach computation as a digital media tool, including of course Flash and Director. I suppose I'm inevitably arguing a purist approach to computation...

> Processing is not a "graphic app",

Do you mean it is a programming language?

Yes. Processing currently translates into Java code, but could theoretically be ported to use another code base (i.e. C++ and OpenGL). The decision to use Java derives from its cross-platform and web publishing advantages. But the Processing language (as described here: is a complete programming language, with a strong bias towards graphics, interaction, sound and simulation.

Great. You must have given some thought to this, Marius, and what it might
take to produce a tool that does not produce narrow visual expression. I
would be very interested to hear your thoughts on the matter.
What metaphors are you thinking of? In particular, I'm interested in the
Director and Flash metaphors you don't employ. Are there other metaphors you
*do* adopt?

These are important questions. The current discourse on software art and computational design criticizes the assumption that software is neutral or transparent in reflecting the user's actions. All tools have bias, so the choice of tools becomes a choice of bias.

The reason I say that Processing does not have a narrow visual expression is obvious. It has a graphics library for dealing with 2D and 3D graphics, as well as raster graphics. It also allows realtime video processing, enabling experiments with webcams, interactive video tracking and experimental film. Like any tool, Processing has a visual bias in how its graphics library is set up. Its functionality is based on concepts from Postscript and OpenGL, both systems widely accepted for their versatility.

Flash and Director are based on the concepts of the timeline, movie clips, symbols and scripts that are attached either to symbols or frames. This is an excellent framework for working with animation, particularly with media created in other tools. Flash excels at 2D vector-based graphics and is good for interactive projects and . It is not well suited to realtime 3D, pixel graphics, serial communication, sound synthesis or video processing.

Processing reduces its structure to setup, loop and events. For advanced concepts it encourages the use of object-oriented programming. The stripped-down nature both of the tool and the language is intentional, and means that it is well-suited for beginners experimenting with interaction, simulation and computational form. It allows the programmer to create the metaphors of timeline, movie clips etc., but it does not require them. It is a genuine programming language, but does not require the user to know about compilers or IDEs.

I want to teach students who are used to thinking visually to see how computational processes can influence their design and art practices. A tool like Flash requires the user to work in a specific way in order to accomplish results, and is not focused on computational form. Processing has fewer limitations in terms of work flow, and I can have students drawing computational compositions within minutes of showing them the tool.

Processing is not yet Open Source, but will most likely become so in the near future. Already, various people have created external libraries for sound synthesis and analysis, 3D file output and advanced particle system simulations. The extensibility of the tool adds to its appeal. Because it is based on Java, anyone can extend it by creating their own libraries for any functionality they might need.

Why just prototypes? Director has certain limitations that I know of that

As a teaching and research tool for non-programmers, Processing is easy to learn and allows for the exploration of computational form. For programmers, it is a tool for sketching quickly without having to worry about details. For finished work, be it animation, interactive installations, performance or net-based art, Processing is currently a little clunky. Java is (relatively) slow, and the Processing rendering engine can't compare with Flash or native OpenGL applications. Also, it has limited support for complex digital media like vector graphics and 3D objects.

The strength of Processing is its simplicity and extensibility, not in being an optimal tool for professional digital media production.

Marius Watz - Amoeba / Unlekker

This archive was generated by a fusion of Pipermail 0.09 (Mailman edition) and MHonArc 2.6.8.