Mittwoch, 20. Mai 2009

Weitere Software-Systeme

Die neue Version von tBeta (Community Core Vision 1.2) sendete erkannte Finger über OSC oder in eine Flash-Version.
Die OSC-Daten wurden schon von MTUntangle genutzt. Nachdem Flash installiert war, konnte alle Flash-Beispielprogramme direkt über tBeta genutzt werden. Es musste nicht mehr Floc genutzt werden, welches die OSC-Daten für Flash konvertiert.
Es kann aber nur entweder OSC oder das Flash-Ausgabe-Format genutzt werden.

Processing
Ist eine auf Java basierende Programmiersprache, welche auf die Einsatzbereiche Grafik, Simulation und Animation spezialisiert ist.
Hiermit wurde ein keines Multitouch Beispiel-Programm entwickelt. Es wurde ein von Processing mitgeliefertes Beispiel um eine Multitouchschnittstelle erweitert.Die zu sehende Weltkugel kann nun über Gesten gedreht werden.

Hierzu muss man sich Processing von deren Webseite herunterladen. Damit man auf Multitouch-Eingaben reagieren zu können, muss man auch noch eine entsprechende Bibliothek einbinden.
Um unter Processing eine Bibliothek zu installieren, muss man diese in den Unterordner libraries des Projekt-Ordner (Beim Mac : ~/Documents/Processing/) kopieren.
Die Eigenheit der Multitouch-Bibliothek besteht darin, dass man einen neuen Ordner TUIO in "libraries" erstellen muss. Dort kopiert man den Ordner library aus dem heruntergeladenen Zip hinein.
Die Ordnerstruktur sieht dann wie folgt aus:
BeispielProgramm/Test.pde
libraries/TUIO/library/TUIO.jar
libraries/TUIO/library/libTUIO.jar
Grüße,
Nico & Flo

Sonntag, 17. Mai 2009

AndTangle - MTUntangle für Android

Hallo fleißige Leser,

die letzten Tage haben wir natürlich wieder mal weder Zeit noch Mühen gescheut und haben MTUntangle - unter dem Namen AndTangle - auf die Google Android Mobilplattform portiert. Das bedeutet soviel wie, dass AndTangle nun auf jedem Handy, unabhängig von Dingen wie Hersteller oder Auflösung spielbar ist. Durch das schöne Design von MTUntangle war es uns möglich ca 90% des MTUntangle-Programmcodes wiederzuverwenden.

Die Android Plattform bietet momentan keine (jedenfalls keine offizielle) MultiTouch-Unterstützung und deshalb lässt sich AndTangle momentan nur mit einem Finger bedienen. Sollte der Apfel ;) seinen Finger von der MultiTouch-Sperre heben so wird AndTangle mit Leichtigkeit auf MultiTouch-Fähigkeit umgestellt werden können.

AndTangle bietet 2 Spiel-Modi einen FreePlay-Modus mit unbeschränkter Zeit und einen Score-Modus bei dem sich die Spieler in eine weltweite Highscore eintragen können:
HighScore-Website: http://www.anddev.org/andtangle/highscore/

Bereits 2319 Spieler haben das kostenfreie AndTangle aus dem Android-Market heruntergeladen - in nur 48 Stunden.

Wer kein Android-Handy besitzt kann sich Meinungen über AndTangle auf folgender Webseite einholen: http://www.cyrket.com/package/org.anddev.andtangle

Direkt-Link zum Download in den Android-Market (funktioniert nur von Android-Handys aus):
http://market.android.com/search?q=pname:org.anddev.andtangle

Das Hauptmenü...

Die Optionen...
Level 1 mit Minimalanweisungen...
Eines der zufälligen Level mit Ingame-Menü...

Landschafts-Format ist auch kein Problem (dynamischer Wechsel möglich)...

Das Infofenster, wenn die Zeit abgelaufen ist...


Grüße,
Nico & Flo

Donnerstag, 14. Mai 2009

Die springenden Finger

Heute haben wir uns auf die Suche nach den "Springenden Fingern" gemacht. Dieser Bug hatte sich beim Spielen von Untangle gezeigt, als selten und urplötzlich Nodes quer über den Bildschirm 'weggeklaut' wurden.

Dazu haben wir unseren Konsolenoutput von MTUntangle und sind dabei auf folgenden Fall gestoßen. (Es wird jeder von tBeta/CCV kommende Input ausgegeben)
Betrachen wir die Bewegung von UI-Node: 11 an.

Moving: ID:3862 with UI-Node: 11 x=0.298131 y=0.637226

Moving: ID:3870 with UI-Node: 12 x=0.11934726 y=0.67102945
No match for: ID:3879
No match for: ID:3883
No match for: ID:3884
No match for: ID:3887
Moving: ID:3862 with UI-Node: 11 x=0.31170952 y=0.63369524
Moving: ID:3870 with UI-Node: 12 x=0.11422939 y=0.69484645
No match for: ID:3879
No match for: ID:3883
No match for: ID:3884
No match for: ID:3887
Moving: ID:3862 with UI-Node: 11 x=0.78755903 y=0.84421074
No match for: ID:3879
No match for: ID:3887
Removed: ID:3870 with UI-Node: 12 x=0.11422939 y=0.69484645
Moving: ID:3862 with UI-Node: 11 x=0.79170287 y=0.84594536
No match for: ID:3879


Wie man leicht erkennen kann macht die Node einen riesigen Sprung über den halben Bildschirm, was mit normaler Fingerbewegung nicht machbar ist. Ganz nach...
In dubio pro code
und genauer Codeanalyse, müssen wir diesen Fehler leider tBeta/CCV zuschieben. Möglicherweise ist er aber auf suboptimale tBeta-Filtereinstellungen zurückzuführen.

Grüße,
Nico & Flo

tBeta 1.1 --> Community Core Vision 1.2

Heute haben wir die Zeit genutzt um eine neue Version tBeta, der Blob-Erkennungs Software, aufzuspielen. Wie ihr gleich sehen werdet, konnten wir sowohl die alte Version "tBeta-1.1" als auch die neue Version, die auf den Name "Community Core Vision 1.2" hört, nur mit gemischten Gefühlen genutzt.

Dinge die mit der alten Version nicht funktionierten:
  • GPU-Modus (zeigte kein gefiltertes Bild an)
  • Auflösung größer als 320x240 führten zum Absturz.
  • Framerate nie höher als ~16 FPS. (trotz erfolgreicher Umstellung im Kameratreiber und in der config.xml)
  • Einstellung Kalibrierpunkte nicht richtig möglich. (Benötigt zur Fischaugenkorrektur)
Dinge die mit der neuen Version nicht funktionieren:
  • Framerate nie höher als ~16 FPS (trotz erfolgreicher Umstellung im Kameratreiber und in der config.xml)
  • Einstellung Kalibrierpunkte immernoch nicht richtig möglich. (Benötigt zur Fischaugenkorrektur)
  • Horizontale und Vertikale Spiegelung des Eingangsbildes nicht mehr möglich.
Dinge die mit der neuen Version funktionieren(!!!):
  • GPU-Modus funktioniert!
  • Dynamische Hintergrund-Subtraktion! (Passt sich Lichtverhältnissen recht gut an)
  • Auflösung von 640x480 führt nicht mehr zu einem direkten Absturz!

Grüße,
Nico & Flo

Donnerstag, 7. Mai 2009

MTUntangle - Ein Multitouch Spiel

Das es auf der Hardwareseite, wie berichtet, etwas schleppend voranging haben wir uns etwas auf der Softwareseite ausgetobt. Und zwar haben wir zusätzlich zu den Effekt-Demos (JMonkeyEngine + Jops + Jopsmonkey2.0) über die wir bereits berichtet hatten ein weitere Applikation mit diesen Bibliotheken realisiert.

Und zwar handelt es sich um ein Spiel, das wir 'MTUntangle' getauft haben, welches ein Problem aus der Graphentheorie (dem ein oder anderen Informatiker mag es bekannt vorkommen) behandelt. Und zwar geht es um die Planarität von Graphen ( http://de.wikipedia.org/wiki/Planarer_Graph ). (Kurzer Gruß an Fr. Prof Fimmel ;) ).

Einfach ausgedrückt: "Die Knoten müssen so verschoben werden, dass sich keine Linien überschneiden."



MTUnangle in Aktion...


Das Spiel wird in der momentanen Realisierung relativ schnell relativ schwer, wir selbst haben es bisher nur bis Level 8 geschafft =D . Leider hängt sich ab und zu die Socket-Verbindung zum TUIO-Server nach einigen Minuten auf - wir arbeiten dran.

Ganz wunderbar erschließt sich auf spielerische Weise die Einfachkeit und Effektivität von Multi-Touch und sogar Multi-User Möglichkeiten, wenn 4 Leute an einem Tisch helfen den verknoteten Graphen zu entwirren.

MTUntangle is volkommen unabhängig von dr Auflösung des Zielsystems, also egal ob ein VGA , ein HD-Beamer oder ganz normal am Bildschirm geuntangelt wird.

Wir haben mal wieder keine Mühen gescheut und ein 'Out-Of-The-Box' lauffähiges Kompilat geschnürt. (Quellcode ist natürlich in der 'mtouch.jar' enthalten). Benötigt wird lediglich ein JRE >= 1.6 (1.5 müsste auch funktionieren) [Getestet wurde nur unter Windows Vista32 Home Premium und Windows XP32 Professional, wobei auch Linux und Mac mit marginalen Anpassungen funktionieren sollten. ] Des weiteren wird eine 'TUIO-Server' wie tBeta ( http://ccv.nuigroup.com/ ) oder der TUIO-Simulator ( http://www.tuio.org/?software ) der fleißig TUIO-UDP-Pakete auf Port 3333 an den Rechner rausprügelt, auf dem die Applikation läuft.

Binaries (mit Quellcode in der 'mtouch.jar' ) können hier heruntergeladen werden:

http://www.andnav.org/files/mtouch.zip (Mirror: http://www.megaupload.com/?d=RB8X5U3L )

Grüße,
Nico & Flo

Austesten der Beleuchtungs-Setups

Heute haben wir mit den neuen IR Strahlern verschiedene Setups ausgetestet.

In den Aufbau Skizzen sind die IR-Strahler mit groben Abstrahlwinkeln in rot dargestellt, die Kamera mit grobem Erfassungswinkel in blau.

Setup #1:
  • IR-Strahler senkrecht an die Decke

  • Resultat ohne LSD (Light Shaping Diffusors)-Folien
  • Resultat mit LSD (Light Shaping Diffusors)-Folien

Setup #2:
  • IR-Strahler schraeg sehr nah an die Seite
  • Resultat ohne LSD (Light Shaping Diffusors)-Folien

Setup #3:
  • IR-Strahler schraeg recht nah an die Seite
  • Resultat ohne LSD (Light Shaping Diffusors)-Folien

Setup #4:
  • IR-Strahler über Kreuz maximale Distanz
  • Resultat ohne LSD (Light Shaping Diffusors)-Folien

Setup #5:
  • IR-Strahler über Kreuz 10 cm vor der Wand
  • Resultat ohne LSD (Light Shaping Diffusors)-Folien


Fazit. Setup 4 bietet die gleichmäßigste Ausleuchtung bei minimalen 'Toten Flecken'. Weitere Optimierungsmöglichkeiten liegen in ...
  • der 'Mitverwendung' der alten LED Matrix zur Erhöhung der Gesamthelligkeit.
  • Verdeckung der restlichen Direkteinstrahlung (Tote Flecken) von IR-Strahlern in die Kamera.
  • Bessere Diffusion an der Wand
  • Halterungen für die IR-Strahler zur Fixierung (momentan wurden sie behelfsmäßig in ihre Boxen getapet)

Grüße,
Nico & Flo

Lösung der Kameratreiber-Problematik

Leider hat der Kameratreiber von PointGrey für Vista nicht mit tBeta funktioniert. Die Kamera lässt sich in zwei Modi betreiben. Für Vista wird nur noch eine Installation, welche diese beiden Modi unterstützen soll, ausgeliefert.
Das alte System nutzt Windows XP in der 32-Bit Version. Da wir wissen, dass unter diesem System die Kamera funktioniert haben wir notgedrungen auch auf dem neuen Rechner Windows XP installiert. Jetzt kann mit der Kamera unter tBeta kommuniziert werden, aber wir haben von den realen 4GB nur 3,25GB zu Verfügung.

Mit tBeta konnte die Auflösung der Kamera bisher nicht höher als 320x240 Pixel gesetzt werden, da tBeta sonst aus bisher unerklärlichen Gründen abstützte, wobei das der Kamera beliegende Tool diese Auflösung problemlos verkraftete.

Grüße,
Nico & Flo