Das virtuelle Buch für unsere Kommode stellte das Programmierteam vor eine große Herausforderung. Zum einen muss es über das in der Kommode eingebaute Trackingsystem bedienbar sein, zum anderen soll das Umblättern einer Seite die passende Filmsequenz auslösen. Anfangs wollten wir auch hier alle Komponenten komplett in Eigenregie erstellen und entschlossen uns deshalb das Buch in Actionscript 3.0 zu schreiben. Schnell kristallisierte sich jedoch heraus, dass wir diesen Plan nicht umsetzen können. Die wenigen Programmierkräfte waren bereits mit den anderen Stationen mehr als ausgelastet, außerdem hätten wir uns zunächst in Actionskript einarbeiten müssen wozu uns schlicht die Zeit fehlte. Ein andere Lösung musste her.
Um die Ecke gedacht
Die Alternative fanden wir schließlich bei unserem Sponsor ICT, der uns neben hochwertigen Beamern und LED-Modulen auch seine Touchbook Software zur Verfügung stellt. Die Freude darüber war natürlich groß und sorgte zugleich für entspanntere Gemüter im Programmierteam.
Doch schon bald begannen die Köpfe wieder zu rauchen, denn wie sich herausstellte können wir die erhaltene Software nur bedingt nutzen:
Mit der Software können wir ein Buch generieren, das sich als Flashapplikation im Browser öffnen und mit der Maus durchblättern lässt. Die Darstellung und Animation des Buches wird uns dadurch abgenommen. Einige Fragen blieben jedoch noch offen: Wie wird das Buch mit dem Finger steuerbar? Wie können wir die Filmsequenzen mit den Seiten verknüpfen? Ein kreativer Programmierstil brachten uns Schritt für Schritt den Antworten näher.
Dieses war der erste Streich…
Das Tracking in der Kommode wird ebenfalls über CCV und TUIO realisiert. D.h. die Glasblatte wird rückseitig mit Infrarotlicht bestrahlt. Eine Kamera in der Kommode filmt die Glasblatte ab und übermittelt das Bild an die Software CCV. CCV speichert zu Beginn einmalig ein Referenzbild aus der Kameraaufnahme ab. Danach liest es den aktuellen Frame aus und gleicht die Pixelwerte mit denen des Referenzbildes ab (Die Farbe jedes Pixels wird über dessen RGB Wert definiert, der sich aus drei Zahlen zwischen 0 und 255 zusammensetzt). Berührt man die Glasblatte, werden an dieser Stelle Infrarotstrahlen von den Fingern reflektiert. An dieser Position haben die Pixel des ausgelesenen Kamerabildes einen anderen Wert als im Referenzbild, sie sind heller. Daraus folgert CCV, dass in den helleren Bereichen eine Berührung stattgefunden hat und sendet die passenden Koordinaten mittels UDP aus. Über das TUIO-Protokoll lassen sich diese Daten in verschiedene Programme und Programmiersprachen einbinden.
Design © Manuel Schmidt
Fotografie © Annabel Schiebol
Fotografie © Annabel Schiebol
An der Touchbook Software könenn wir, bis auf visuelle Anpassungen in der XML Datei, keine Veränderungen vornehmen. Deshalb stehen sich zwei geschlossen Applikationen gegenüber, die nicht direkt miteinander kommunizieren können. Auf der einen Seite das Touchbook im Browser, das wir für die Darstellung und Animation des Buches benötigen.
Design © Julia Moden-Treichl, Camilla Gratorp
Fotografie © Annabel Schiebol
Auf der anderen Seite ein in Processing / Java geschriebenes Programm, das Trackingkoordinaten verarbeitet und Filmsequenzen über den Beamer abspielt. Um beide Komponenten zu verknüpfen mussten wir reichlich um die Ecke denken. Dabei kamen uns die bisher gesammelten Erfahrungen zu Gute:
Wir wissen, dass sich die CCV Daten über das TUIO Protokoll mit Processing problemlos weiterverarbeiten lassen.Processing ist Java basiert und kann mit Proclipsing auch in der Entwicklungsumgebung Eclipse programmiert werden. Dadurch können wir Java und Processing kombinieren. Die Java API bietet eine Klasse namens Robot, in der verschiedene Methoden zur Maussteuerung implementiert sind.
Aus diesen Komponenten haben wir ein Programm geschrieben, das den Mauszeiger mit dem Finger steuern lässt. Außerdem wird beim Aufsetzen des Fingers die linke Maustaste gedrückt. Berührt der Finger nicht mehr die Glasplatte, wird die Maustaste wieder losgelassen. Durch das virtuelle Buch wird also mit der Maus geblättert, die wiederum über den Finger gesteuert wird.
Design © Julia Moden-Treichl, Camilla Gratorp
Fotografie © Annabel Schiebol
Design © Julia Moden-Treichl, Camilla Gratorp
Fotografie © Annabel Schiebol
… und der zweite folgt sogleich
Lange konnten wir uns nicht über das gelöste Problem freuen, denn wie so oft wartete das nächste bereits. Damit zu jeder Buchseite auch die passende Filmsequenz abgespielt wird, muss unser Programm wissen welche Seite gerade aufgeschlagen ist. Auf diese Information konnten wir auch an dieser Stelle nicht einfach zugreifen. Der gefallene Satz: „Wenn das Programm doch nur das projizierte Buch sehen könnte“, brachte uns schließlich auf die zündende Idee.
Das Buch wird zunächst im Browser geöffnet und einmal durchgeblättert. Von jeder Buchseite erstellt das Programm einen Screenshot und speichert diesen als Referenzbild ab. Danach wird das Browserfenster neu geladen und das Buch beginnt von vorne. Das alles geschieht voll automatisch in der Setupmethode unserer programmierten Steuerapplikation (wieder über die Klasse Robot). Interagiert der Benutzer mit dem Buch wird ein aktueller Screenshot genommen und in einer Methode mit den Referenzbildern abgeglichen. Für eine bessere Performance wird nur ein kleiner Bildschirmausschnitt abgespeichert. Stimmen Referenzbild und Screenshot überein gibt die Methode die betreffende Seitenzahl zurück. Das Programm reagiert darauf und spielt das passende Video ab.
Sieht gut aus
Während sich das Programmier- und Technikteam um die logische Struktur und den Aufbau der interaktiven Kommode kümmerte, entwarf das Grafikteam das Buchdesign. Dafür wurden alle Zeichnungen von Hand erstellt, eingescannt und in Photoshop weiter bearbeitet. Das Ergebnis der Teamarbeit ist ein Märchen wie es im Buche steht.
Beitrag von Annabel Schiebol