Ngoprek Microsoft Surface

Yang udah berhasil dilakukan disalahgunakan:

  • Boot ke USB CD/DVD. Password BIOS memang tidak dikasih, tapi ternyata kita bisa minta ke Customer Support Microsoft.

  • Windows 7 dan 8 preview dapat terpasang dengan baik

  • Ubuntu dan BlankOn juga bisa dijalankan (walau tidak nyoba memasangnya). Skrinsut:

  • Microsoft Surface 1.0 SDK (bukan versi Workstation Edition) ternyata sudah tersedia di partisi bawaan (Windows Vista). Awalnya saya kira Microsoft ngga ngasih installer apa2.

  • SDK tadi aslinya hanya bisa dipasang di Windows Vista Business 32bit yg dibawa oleh Microsoft Surface. Namun dengan sedikit utak-atik, SDK ini juga bisa dipasang di atas Windows 7, termasuk yg 64 bit. Seharusnya bisa juga dipasang di atas Windows 8 Preview, namun saya masih gagal memasangnya.

  • MultiTouchVista bisa dipakai untuk membuat windows 7 touch events. Sumber event bisa macem2 termasuk TUIO, multiple mouse, dan juga Surface Input! Saya belum berhasil melakukan kompilasi MultiTouchVista terbaru yg sudah berisi adapter Surface Input. Akhirnya terpaksa menggunakan TUIO dg didampingi konverter Surface Input ke TUIO.

  • Kalau touch events dari Surface Input sudah sampai ke Windows 7, maka kita udah bisa “megang2” si windows 7. IE sudah mendukung scroll dg menggeser halaman (bukan pada scroll bar) sedangkan Firefox 7 dan Chrome 13 (atau 14?) belum.

Sekian.

TUIO data dari multitouch touchpad

Setelah sebelumnya nemu hal menarik tentang multitouch touchpad di mac os x, saya ngoprek2 lg tuk bikin aplikasi kecil yg meneruskan data-data tersebut via TUIO. Hasilnya adalah Tongseng!

Salah satu cara yg bisa dipake tuk menangkap multitouch events di sebuah aplikasi adalah dengan menggunakan TUIO ini. TUIO ini adalah format data (dan API?) yg dipake tuk menampung informasi multitouch events. Data ini lalu dibungkus lagi di atas OSC lalu dikirim via jaringan.

Via jaringan? Ya! Aplikasi yg bertugas memproduksi events dan memproses events adalah dua buah aplikasi berbeda dan mereka berkomunikasi via jaringan. Dengan adanya pemisahan ini, multitouch events tidak harus dihasilkan oleh multitouch table, melainkan bisa juga dg device lainnya seperti iPhone, Wiimote, simulator, dan tentu saja mutltitouch touchpad yg ada di MacBook/MacBookPro.

Silakan buka http://www.tuio.org/?software kalau mau tau software2 terkait.

Mengapa tongseng? silakan tanya Kosha xD

Multitouch browser

I was wondering can I somehow transmit TUIO data to a browser. So I can use javascript and of course HTML and friends to build a (not really) web based multitouch application. I found no available libraries.. well maybe because it is just ridiculous to implement such thing. But hey, it’s fun to have one! So, I decided to give a try.

The first problem is browser speaks HTTP and TUIO uses OSC things over UDP. Actually, creating a TUIO application using Flash also face this kind of problem. But already have a translator that converts TUIO data (which uses OSC over UDP) to XML data that flash accepts which uses TCP connection. So, if I want to have the TUIO data arrived at the browser, I have to transmit it over HTTP.

Beside that, the tracker transmit a data when a touch event happens. In other words, the TUIO data has to be transmitted right into the browser immediately after it is produced. But, as we know, in (ordinary) HTTP connection, browser is the one who initiate connection, not the server. So, how to solve this?

Then.. i remembered Comet! It’s a concept of pushing data to a browser. Exactly fits what I need. Well.. new problem came since I couldn’t found a simple and ready to use library. One requires me to install Jetty. I tried but didn’t know what to do 😀 so I tried to find another solution. Then I stumbled upon a great tutorial that gave me more keywords for google! It was orbited, stomp, and morbidq which all share another keyword: simple 😀

After coding for several.. err.. hours, i guess, finally now I have a working prototype! See the screencast below.

Basically, there is a script that reads TUIO data from tracker. Then it transmit the data to a message queue that supports stomp. Script inside the browser then takes data from the message queue (or the other way around?) and process it. Communication between the message queue and browser is handled by the orbited. I don’t really know what happens inside =D

Well.. just see the code if you want to know more. Check it out at http://github.com/fajran/tuiojs/tree/master. Have fun!

Multitouch browser

I was wondering can I somehow transmit TUIO data to a browser. So I can use javascript and of course HTML and friends to build a (not really) web based multitouch application. I found no available libraries.. well maybe because it is just ridiculous to implement such thing. But hey, it’s fun to have one! So, I decided to give a try.

The first problem is browser speaks HTTP and TUIO uses OSC things over UDP. Actually, creating a TUIO application using Flash also face this kind of problem. But already have a translator that converts TUIO data (which uses OSC over UDP) to XML data that flash accepts which uses TCP connection. So, if I want to have the TUIO data arrived at the browser, I have to transmit it over HTTP.

Beside that, the tracker transmit a data when a touch event happens. In other words, the TUIO data has to be transmitted right into the browser immediately after it is produced. But, as we know, in (ordinary) HTTP connection, browser is the one who initiate connection, not the server. So, how to solve this?

Then.. i remembered Comet! It’s a concept of pushing data to a browser. Exactly fits what I need. Well.. new problem came since I couldn’t found a simple and ready to use library. One requires me to install Jetty. I tried but didn’t know what to do 😀 so I tried to find another solution. Then I stumbled upon a great tutorial that gave me more keywords for google! It was orbited, stomp, and morbidq which all share another keyword: simple 😀

After coding for several.. err.. hours, i guess, finally now I have a working prototype! See the screencast below.

Basically, there is a script that reads TUIO data from tracker. Then it transmit the data to a message queue that supports stomp. Script inside the browser then takes data from the message queue (or the other way around?) and process it. Communication between the message queue and browser is handled by the orbited. I don’t really know what happens inside =D

Well.. just see the code if you want to know more. Check it out at http://github.com/fajran/tuiojs/tree/master. Have fun!

Simulasi air

Bosen ngerjain tesis, trus nemuin contoh kodingan menarik ttg simulasi air. Jadi kepikiran tuk porting kodingan tsb supaya bisa menerima multiple input via TUIO. Voila! jadilah aplikasinya =P

Ini screencastnya..

Kodingan bisa dilihat di http://github.com/fajran/multitouch-water-simulation/.

Kalau mau nyobain..

$ git clone git://github.com/fajran/multitouch-water-simulation.git water
$ cd water
$ make
$ ./water

Pastikan udah nginstall g++, libsdl1.2-dev, libsdl-image1.2-dev, dan bbrp library lain kalo ada (saya gak merhatiin =P). Tuk simulator multitouch table, bisa make buatan reacTIVision.

$ wget http://prdownloads.sourceforge.net/reactivision/TUIO_Simulator-1.4rc1.zip
$ unzip TUIO_Simulator-1.4rc1.zip
$ cd TUIO_Simulator
$ java -jar TuioSimulator.jar

matikan antialiasing (Option => Antialiasing) kalo putus2..