Archive:Touch Table

From London Hackspace Wiki
Revision as of 18:24, 2 February 2011 by Oni (talk | contribs) (→‎Developing)
Jump to navigation Jump to search

This page covers the multi-touch table I built that now lives at the space.

File:Touchtable.jpg

General

Some straight up facts

  • The machine running it is called Marconi
  • It has an IP that is statically assigned via the Fonera to 172.31.24.69
  • Its running Windows XP (very insecurely at that!)
  • Its WIFI doesnt work so it is plugged into the wall.
  • It uses the FTIR method with infrared light to detect the blobs to track- Infrared leaks out from the perspex when you touch it
  • you do need to press quite hard

Developing

Community Core Vision

The Touch table works by using the program, Community Core Vision. This is written in Openframeworks and runs on Linux, Mac and Windows.

On Marconi we are using the prebuilt 1.4 final edition.

This is essentially a mashup of OpenCV and a load of filters with the TUIO protocol for sending messages about touches and vectors

Windows appears to be much more stable and faster than Ubuntu was, on this laptop at least. With other PCs I've had more mileage with the touch table.

CCV has a lot of options for calibration and setting things up. It runs on startup. Select the little window and press space. It'll expand and show you all the blobs being tracked, the camera feed and all the rest of it. Fiddle with the settings and you'll get somewhere! :D

Existing Applications

There are two, one of which works. On the desktop there is a shortcut to fluid. Run this and press the space bar to get the options. You can find the source for this on the desktop. Look for the openframeworks folder and within this, navigate to apps/myApps/EmptyExample. You can see the source code there.

The second is called spies.py and doesnt work that well! :(

C++ Openframeworks

This is the preferred method of working with the Touch Table as it actually works, unlike the Python method. In a nutshell, Openframeworks forms the basis for an OpenGL based solution with lots of bolt ons. Simply add the headers and CPP files for whichever addon you need, fill in the blanks and hit compile. There is a set of basic examples within the openframeworks folder on the desktop.

I used Visual Studio Express 2010 as its the best. Code blocks is a nightmare! Dont do it! I've downloaded the Express2010 version of Openframeworks specifically for this reason.


Python

There is a pytuio example on the desktop. I've written a touch class as well which can be found on the desktop. Sadly, for some reason, the message passing between the client and server apps with tui seems too damn slow under Python and I've had no luck sorting it out. Python would be nicer but under both Linux and Windows, it seems too slow.

Windows

I use Windows because Linux seemed to have a few issues:

  • PS3 Eyetoy under CCV1.2 and CCV1.3 would occasionally run at VERY low FPS.
  • Actually getting CCV to build under Linux is quite annoying
  • Fluid example didn't actually want to run
  • Various build issues with Maverik and Lucid

In short, it was more hassle than it was worth, however, the DJ decks for London Music Hack day worked fine under Lucid on a faster machine so Linux dev is not out of the question.