Selbst aufwändige Computergrafiken scheitern heute kaum noch an der Rechenleistung. Es sind die Grafikbibliotheken und die mit ihnen verbundenen Einstiegshürden, die so manches Computergrafikprojekt im Keim ersticken. Verbreitete Bibliotheken wie Java2D, Cairo oder OpenGL verlangen dem Entwickler einiges ab. Neben dem Händchen für Gestaltung ist ein gerüttelt Maß an Einarbeitung nötig, bis die eigenen Kunstwerke auf dem Bildschirm Gestalt annehmen.
Processing macht's leicht
Diese Hürde schien Ben Fry, Doug Benett und Casey Reas zu hoch. Grafikausgabe auf dem Computerschirm sollte nach ihrer Meinung so intuitiv funktionieren wie das Zeichnen mit dem Bleistift. Mit dieser Zielsetzung entwickelten sie das Processing-Framework [1]. Mit ihm sind zwei- oder dreidimensionale und sogar animierte Grafiken schnell entworfen.
Processing besteht aus einer schlanken Entwicklungsumgebung, der Sprache selbst und einer Laufzeitumgebung. Die Sprache lehnt sich an die Java-Syntax an, vereinfacht diese aber und stattet sie mit zusätzlichen, auf grafische Operationen zugeschnittenen Kommandos aus. Processing gehört damit zur zusehends populärer werdenden Familie der domänenspezifischen, also speziell auf einen eng umgrenzten Einsatzzweck zugeschnittenen Sprachen.
Die Nähe zu Java kommt nicht von ungefähr: Sowohl die Entwicklungs- als auch die Laufzeitumgebung sind in Java geschrieben, die Skizzen übersetzt Processing erst einmal in normale Java-Quellen und kompiliert sie dann zu Java-Programmen oder Applets. Diese laufen wie bei Java üblich auf allen Betriebssystemen und fast allen Browsern. Neben der sehr performanten Basissprache kann Processing bei Bedarf auf die ganze Armada bestehender Java-Bibliotheken zugreifen. Doch der besondere Reiz besteht darin, dass der Entwickler sich im Normalfall nicht um die darunterliegende Technik kümmern muss.
Java plötzlich künstlerisch wertvoll
Weil Processing die Einarbeitung in komplexe Techniken erspart, haben Grafikdesigner und Künstler das Framework längst für sich entdeckt. Die eingebaute Exportfunktion erzeugt mit einem Mausklick fertige Java-Applets für den Upload ins Netz. Neben technischen Diskussionen wie bei anderen Programmiersprachen gibt es deshalb Internetseiten, auf denen Anwender ihre Arbeiten vorstellen und über gestalterische Aspekte diskutieren [2]. Der Open-Source-Gedanke ist in der Processing-Community stark vertreten. Neben den fertigen Bildern oder Filmen gehört es auch zum guten Ton, die Quelltexte mit zu veröffentlichen.
Mit Processing lassen sich unterschiedlichste Typen von Visualisierungen umsetzen, beispielsweise ein interaktives Java-Applet zur Verteilung der Postleitzahlen in Deutschland [4]. Abbildung 1 zeigt ein Beispiel für die Verlinkung von Webseiten. Auch die Verteilung von Wörtern (Abbildung 2) im Alphabet kann Processing grafisch darstellen [5]. Viele weitere Anwendungen finden sich außer auf der Webpräsenz des Processing-Projekts selbst [2] auf Visual Complexity [6] oder in Ben Frys Vortrag auf der Wiesbadener See-Conference [7].
Abbildung 1: Processing kann auch Abstraktes anschaulich visualisieren, beispielsweise die Verlinkung von Websites als Graph – hier das Linux-Magazin.
Abbildung 2: Diese 3D-Visualisierungen zeigt die Verteilung englischer Wörter mit vier Buchstaben im Alphabet [5].
Zunehmend kommt Processing bei Installationen oder Medienkunst zum Einsatz. Abstrakte Sandgebilde wie in Abbildung 3 von Jared Tarbell [8] (Mitgründer der Kunsthandwerk-Börse Etsy) sind ebenso möglich wie die organischen Animationen der Medienkünstlerin Lia [9] oder die beeindruckenden Vogelschwärme [10] von Robert Hodgin, die für einen Spielfilm entstanden. Processing-Grafiken und -Animationen finden sich in den kuriosesten Umgebungen und sind auf den ausgefallensten Plattformen zu bewundern. Sogar der gute alte Commodore 64 von 1983 kann beispielsweise mit 980 Kilohertz Takt und 64 KByte Speicher hübsche, mit Processing berechnete Animationen abspielen [3].
Abbildung 3: Die Schönheit von Mathematik: Dieses Sandgebilde von Jared Tarbell entstand mit Processing, auf der Webseite [8] lassen sich über ein Java-Applet beliebig viele Variationen davon erzeugen.
Erste Anlaufstelle für Processing ist [1]. Hier steht die Umgebung für Linux verpackt bereit. Das Tar-Archiv enthält Beispiele, eine Dokumentation und ein Java-Runtime. Das Binary »processing« startet die Entwicklungsumgebung. Je nach Alter der eingesetzten Linux-Distribution ist dazu ein C++-Kompatibilitäts-Paket (Compat-libstdc++) nötig. Die Software zeigt bei deren Fehlen eine Warnung an.
Abbildung 4: Processing-Skizzen haben eine einheitliche Verzeichnisstruktur, die auch alle benötigten Dateien enthält. Nach einem Export sind dort die erzeugten Applets oder Standalone-Java-Anwendungen zu finden.