Für Entwickler: Flash-Midi-Schnittstelle einfach machen.

Damit es möglichst wenig Stolpersteine bei der Verwendung der Flash-Midi-Schnittstelle gibt habe ich nach einer Lösung gesucht, das Java-mmj-Paket als festen Bestandteil in die Flash-Midi-Applikation zu integrieren.

Der Vorteil liegt klar auf der Hand: Der Benutzer muss nicht erst die mmj-Bibliothek runterladen und manuell ins Verzeichnis „MacintoshHD -> Library -> Java -> Extensions“ kopieren. Ein Doppelklick auf die Programm-Datei genügt, um die Midi-Flash-Schnittstelle zu starten.

Hier meine Lösung:

  1. Die Processing-Skizze öffnen, über „File -> Export Application“ ein Mac-Programm erstellen.
  2. Im Finder: Rechter Mausklick auf die erstellte Programm-Datei und „Paketinhalt zeigen“. Ein Ordner „Contents“ erscheint.
  3. Die Datei „Contents -> Info.plist“ in einem Texteditor öffnen, nach dem Eintrag für „ClassPath“ suchen. In dem Tag <string> darunter sind die Pfade für die Klassen angegeben, die eingebunden werden sollen.
  4. Direkt nach dem <string> und vor dem ersten „$JAVAROOT…“ folgendes eingeben: „$JAVAROOT/mmj.jar:“. Der Doppelpunkt am Ende ist das Trennzeichen zwischen den Einträgen – wichtig!
  5. Die beiden Dateien „mmj.jar“ und „libmmj.jnilib“ (download hier) in den Ordner „Contents -> Recources -> Java“ kopieren.
  6. Testen…

Endlich! Die Weltformel! Per Brute-Force.

[SWF]http://labor.99grad.de/wp-content/uploads/2009/04/formulator.swf,450,120[/SWF]

Spätestens der legendäre Schach-Kampf zwischen Deep Blue und Kasparow hat es uns bewiesen: Nicht künstliche Intelligenz, sondern die Fähigkeit innerhalb kürzester Zeit unendlich viele Varianten eines Spielzuges zu generieren und auf ihre Gewinn-Wahrscheinlichkeiten miteinander zu vergleichen sind die eigentlichen Stärken eines Computers. 

Stellen wir uns jetzt ein Computer-Programm vor, das praktisch überhaupt keine Intelligenz besitzt und den ganzen Tag mit nichts anderem beschäftigt ist, als nach dem Chaos-Prinzip unendlich viele Variationen von mehr oder weniger sinnvollen Formeln zu erzeugen. Erst im nächsten Schritt prüft das Programm, ob die Formeln nicht zufällig genau die langersehnte mathematische Antwort auf eine naturwissenschaftliche Frage ist.

Wetten: Ohne auch nur einen müden Gedanken zu wälzen hätten wir durch diese Brute-Force-Methode innerhalb von wenigen Tagen die gesamten altgriechischen Trigonometrie-Weisheiten auf dem Schirm. Und – Hand aufs Herz und Genialität beiseite – rein formal betrachtet ist auch Einsteins e=mc2 nicht unbedingt eine für den Zufallsgenerator unerreichbare Blüte der kreativen Formschöpfung.

Abgesehen davon hätte das Ganze auch einen gewissen Sympathiebonus – die Suche nach Antworten ohne die Frage zu kennen ist ja auch beim Homo Sapiens ein nicht unbekanntes Phänomen!

Die Typografische Milchstrasse

[iframe http://labor.99grad.de/wp-content/uploads/2009/04/processing/typowanderung/index.html 448 440]

Der Mathematiker Steven Wolfram beschäftigte sich Anfang der 1980er Jahre mit „Zellulären Automaten“ – Computerprogrammen, die durch wiederholtes Anwenden sehr einfacher Regeln zu sehr komplexen Strukturen führen.

Die Idee eines Zellulären Automaten (Cellular Automata) wurden schon in den 1940er Jahren von John von Neumann beschrieben. Man kann sich das analog zum alten Brett-Spiel „Othello“ vorstellen. Auf dem Spielbrett gibt es eine bestimmte Anzahl von Feldern auf die Steine gelegt werden können. Die Steine haben nur zwei mögliche Zustände – schwarz oder weiß. Man beginnt mit einer einfachen Ausgangsfigur, bei Othello sind das zwei weißen und zwei schwarzen Steinen in der Mitte des Spielfeldes. Bei jedem Durchgang wird jetzt eine neue Reihe Steine angebaut. Die Farbe der neuen Steine entscheidet sich nach einfachen, festgelegten Regeln, z.B. wird ein Stein dann schwarz, wenn er von zwei schwarzen Steinen umgrenzt ist. Oder er wird weiß, wenn vier Steine im Umfeld schwarz sind etc.

Bewegt man sich Reihe für Reihe über das Spielfeld, entsteht so ein komplexes bis chaotisches Muster. Interessant wird das Ganze beim wiederholten Durchlauf: Aus dem „Output“ des vorherigen Durchlaufs wird der „Input“ des Nachfolgers. Der Vorgang läßt sich beliebig oft wiederholen – Programmieren sprechen dabei von einer Rekursion.

Während der Beschäftigung mit dem Thema kamen wir auf die Idee, mit einem „Typografischen Automaten“ zu experimentieren: Die Zellen sind dabei die einzelnen Buchstaben einen Textes und die Regeln nicht viel komplizierter als schwarze und weiße Steine:

  • Vokale lieben Konsonanten
  • Konsonanten meiden Konsonanten
  • Räumlich nahe, gleiche Buchstaben werden betont.

Nach einigen Minuten entsteht daraus ein nahezu stabiles Schrift-Bild, das zufällig wirkt – aber in Wirklichkeit das logische Ergebnis einer auf simplen, strengen Regeln basierender Rekursion ist. Der gleiche Text würde immer wieder zum gleichen Ergebnis führen. Mehr noch: Durch ein einfaches Vertauschen der Vorzeichen in der Regeln wäre der gesamte Vorgang auch reversibel – man käme nach gleicher Zeit wieder zurück zum Ausgangsbild – dem ursprünglichen, lesbaren Text.

Der Textauszug stammt übrigens aus dem Buch „Das Universum und das ewige Leben“ von Marcus Chown – er stellt in dem Abschnitt die Frage, ob wir das SETI-Projekt (Suche nach extraterrestrischen Leben durch die Suche nach Mustern und Strukturen in Radiosignalen) nicht besser an den Nagel hängen sollten. Wie komplex – und eigentlich nicht mehr erkennbar – eine Struktur leider durch eine auf drei einfachen Regeln basierende Rekursion wird, sieht man…

Annähernd stabile Zwischenstufe der Animation nach ca. 15 Minuten
Annähernd stabile Zwischenstufe der Animation nach ca. 15 Minuten

Auch wenn die grafischen Qualitäten in diesem ersten Versuch noch nicht ausgereizt sind: Die typografischen Konglomerate in der Grafik wirken interessanter als bei einer rein zufälligen Anordnung von Buchstaben. Die Ballung einzelner Vokalgruppen kontrastiert mit „vereinsamten“ Konsonanten im Randbereich.

Umgesetzt wurde die Animation in Processing – einer Open-Source Programmiersprache für Künstler und Designer, die sehr gut mit vielen Elementen umgehen kann. In Flash hätte das Ganze sicher auch geklappt – bei Processing gefällt mir aber die Möglichkeit des Exports in verschiedene (Vektor)-Formate, die eine unkomplizierte Weiterbearbeitung und Verfeinerung in Illustrator oder FreeHand ermöglicht.

Quelltext runterladen

ActionScript(ur) – Flash Kalligrafisch

Für ein Webprojekt im künstlerischen Bereich beschäftigten wir uns mit der Frage, wie man in Flash Formen erzeugen kann, die möglichst kalligrafisch anmuten. Die Faszination ist hier wieder das freundschaftliche Händeschütteln von zwei, auf den ersten Blick scheinbar gegensätzlichen Diziplinen: Design und Programmierung.

[SWF]http://labor.99grad.de/wp-content/uploads/2009/04/kalligrafische_linie.swf,450,400[/SWF]

Download der Quelldateien (AS 2.0)

Die Aufgabenstellung ist denkbar einfach – schon deshalb, weil man eine relativ klare Vorstellung des anvisierten Ergebnisses hat. Jeder Designer, der im Grundstudium noch einen Typografen der „alten Schule“ als Professor genießen durfte, wird sich vielleicht an eine der ersten kalligrafischen Übungen erinnern: Das Zeichnen und Schreiben mit Tusche und den unterschiedlichsten Materialen als Schreibwerkzeug – von Rohrfeder bis zur abgebrochenen Dachlatte.

Ob mit Tusche auf Tapete oder per Script auf Pixelraster – am Ende steht man immer vor den gleichen ästhetischen Fragen. Wann sieht das Bild interessant aus? Wann ist es spannend, wann langweilig? Wann ist es fertig?

Warum sind diese Fragen für einen Designer gerade in Bezug auf den gescripteten Ansatz so interessant? Weil es manchmal für Momente so scheint, als könnten die Antworten durch die Programmierung an Klarheit und Schärfe gewinnen. Man beginnt zu erahnen, mit welcher Begeisterung Euklid am goldenen Schnitt geforscht haben musste.

Nach dem – für einen visuellen Menschen – oft eher quälenden Marathon des Scriptens übernimmt man dann endlich das Steuerpult mit ein paar wenigen, aber mächtigen Justier-Schrauben. Die kleinste Veränderung einer Variable entscheidet über Duktus, Länge, Schwung, Radius und den Grad an Chaos oder Ordnung in der Visualisierung.

Und genau hier beginnt das endlose Spiel, für das sich die Kopfschmerzen gelohnt haben: Was, wenn ich eine Regel setze, dass der Strich immer zur Mitte der Gesamtstrecke dicker wird? Was, wenn der Schwung immer abhängig von der Länge eines Strichs ist? Wird es spannender, wenn ich weniger oder mehr, kürzere oder längere Striche mache? Wann wirkt es wie ein Schriftzeichen, ein Symbol? Wann wird es chaotisches Gekritzel? Wann wird das Auge geführt, wann irritiert?

Was aber für die Auseinandersetzung mit den Fragestellungen noch entscheidender ist: Das Programm kann innerhalb kürzerster Zeit unendlich viele Varianten der Form innerhalb der festgelegten Regeln erzeugen. Wenn mich ein Ergebnis überzeugt, kann ich so sehr schnell hinterfragen: Ist es nur zufällig gut – oder weil es bestimmten Gesetzmäßigkeiten folgt? Oder ist es gut, weil die Gesetze den Zufall erlauben?