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:
http://processing.org/reference/) 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
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