2010 Summary

Its been a while since anything was posted on this blog so its time for an update. First of all I’ll just point out that I’ve been working really hard on a thesis. I don’t want to go into any more detail about it till its accepted so I haven’t posted any updates concerning it. Hopefully in the new year I’ll be able to make several posts detailing what it was about.

Compiz Multi-touch plugin

Despite saying that I wasn’t going to do any more work on it, the recent interest in it did make me go back and tidy up the code a bit.


  • There should be no warnings when running the make command.
  • The plugin now works fine on both 32 and 64bit systems.
  • The settings in the compiz settings manager now correctly show the fire effect option.
  • The post on this blog detailing the plugin’s installation (here) has been updated to reflect updates in ubuntu packages. (Instructions for un-installation are also now on the post.)

There are still issues concerning freewin’s stability. Though I did intend to look into this I haven’t had time and since I am not working on this plugin anymore I’m unlikely to in the near future.

Again I’d like to thank all the developers who provided the original code and modifications for this plugin. I just consolidated their code, they did all the hard work.

touchLib project

Anyone watching my google code profile may have noticed I created a project entitled touchlib-newcalibration. This was intended to be part oh my thesis work but has since been omitted. However I will list the accomplishments and intentions of the project as I believe these ideas could be beneficial in future multi-touch vision systems.

The project so far:

  • Performs all the functions of touchlib
  • Can stitch together the input from up to 4 flycapture cameras
  • Can crop and position the camera feeds before stitching through the config file

This ability to manage multiple inputs was the main requirement of the project. However it is not much use unless your flycapture cameras align in such a way that their fields of view have no overlap or gaps between them as a single touch could not be tracked when travelling from one field of view to another. Two solutions were proposed to resolve this:

  1. Seemless stitching
  2. TUIO multiplexing

Solution 1 would use the methods used in panoramic image stitching software to combine the video feeds. By using touches during calibration as reference points the feeds could be stitched. This method has the advantage that the rest of the touchlib framework could be left unaltered.

Solution 2 would treat each feed from a camera separately, applying the filters and blob detection to each feed individually. With each feed ultimately producing a TUIO output a multiplexer could be used. This will combine all the TUIO feeds. Any blobs with the same real world co-ordinates (or co-ordinates within a certain distance of each other) will be consolidated because these blobs are likely to be the same touch, being seen by multiple cameras. A single TUIO feed is finally output. The difficulty with this is that a lot of touchlib would require to be rewritten, specifically parts dealing with calibration.

The project was also ultimately intended to provide:

  • An abstraction of the multiple flycapture camera filter to use more than one of any camera that touchlib can currently use on its own
  • An improved, single window GUI (for editing config and filters as well)
  • Fiducial support
  • Quick calibration using OpenCV’s checkboard methods (i.e. placing a board with a checker pattern on the surface of a DI display will allow touchlib to automatically calibrate without relying on the accuracy of user touches.)

There is an additional intended feature, but I won’t mention it here as it relates to the work documented in my thesis, and I don’t want to give the game away yet.

There may be further work on the project from time to time. However CCV does seem to be in the process of having a lot of these features implemented. If anyone could suggest a free-to-use vision system which can use an input from multiple cameras simultaneously (in the meantime before CCV has this feature implemented) I would greatly appreciate it.


4 thoughts on “2010 Summary

  1. Glad to see you are back! Is this a Masters thesis or PhD that has been keeping you away for so long? I look forward to hear what interesting project you have been working on all this time 🙂

    Regarding the free vision software, you should take a look at Movid, if you have not already. I don’t know if they have implemented stitching function yet, but I remember reading about this a while back on their developer mailing list. But it can use multiple cameras for sure. It is very well written and is modular, so you can easily add on to it. Even with my very rusty C++ skills I was able to write a module to get image from flucapture cameras.

    I was very glad to hear about improvements to the compiz plugin, I will try it out as soon as I get a chance. I have not been using it permanently in my setup because of stability issues, but when it works it is just awesome!

    I have a technical question for you, perhaps it could be the topic of one of your future posts :). You most likely know all about the Unity project which is adding multi-touch support to Ubuntu. I was wondering, what do you think is the best way to bridge TUIO with Unity. Do you know if this is currently possible?

    1. Hi, thesis was intended as a PHD thesis but due to lack of funding I’ve had to cut it down to a MSc.
      Movid looks very useful, I can’t believe I haven’t come across it before.
      I was actually thinking about TUIO for uTouch (the unity touch input project) the other day. I think some sort of kernel, similar to the driver kernels that uTouch already uses. This kernel could listen for TUIO, parse it and pass it on in the correct format to uTouch. If I have the time I’ll look into it.
      Thanks for taking the time to read this and comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s