The Bespoke Multi-Touch Framework is a feature-rich and extensible software framework for developing multi-touch interfaces. Licensed under the BSD License, you are free to use and extend the source code to suit your purposes. The framework can be paired with any vision-based multi-touch hardware (e.g. FTIR, or Diffused Illumination). With the limited commercial availability of multi-touch hardware, it’s likely that you’ll need to build your own multi-touch surface. Following is a list of previous multi-touch blog entries:

Downloads (Current Version: – Release Date: 10/11/2008)

Installation Notes

The Multi-Touch Framework requires the .NET 2.0 Framework to run. To compile the software (pre-compiled binaries are included in the package) you’ll also need Visual Studio 2005 or 2008 (any of the Visual Studio SKUs will function, including the Express Editions). And to utilize the XNA presentation layer, you’ll need XNA Game Studio 2.0. For XNA support, the library includes only a partial install of the Bespoke 3DUI XNA Framework (an XNA-based game engine and 3D user interface toolkit) . Additional sample code for the 3DUI Framework is included in the full 3DUI XNA Framework installation.

Photo Gallery

  • Construction

Multi-Touch Hardware Construction Images


Original Multi-Touch Prototype

31 Comments so far

  1. projects out there « grafiti on July 16th, 2008

    […] Bespoke Multi-Touch Framework Multitouch framework (requires .NET 2.0) – Microsoft Public License (Ms-PL) […]

  2. […] Multi-Touch […]

  3. […] Multi-Touch […]

  4. […] Multi-Touch […]

  5. Matt on September 15th, 2008

    Why can’t we download the framework anymore?


  6. Paul on September 15th, 2008

    There’s a long answer to that question that I’d prefer not to go into. I’m actively working on getting the software re-posted. Sorry for the inconvenience. I expect the issue to be resolved very shortly (within the week).


  7. […] Multi-Touch […]

  8. artifact on November 1st, 2008

    sorry if this is obvious: do I need touchlib or another program to send blob information to your framework? … or does it have its own tracking?

    if it has its own tracking, how would I use other TUIO apps (such as NASA World Wind with plugin from NUIGroup guys, smoke, etc)?

    thanks a lot!

  9. Paul on November 6th, 2008

    Hi artifact,

    This is a stand-alone framework entirely separate from TouchLib. The Bespoke Multi-Touch Framework captures data from a webcam submitting each frame through an image processing pipeline to produce usable blob data. It uses OSC (Open Sound Protocol) for transmitting point information across a network for use by any application capable of using UDP/IP and across any hardware/software platform (including Flash and the flosc gateway that TouchLib uses). I’ve included a number of example applications that demonstrate the framework.

    If you have any questions just shout.


  10. artifact on November 15th, 2008

    excellent, thank you Paul!

  11. […] source projects, though, are: reacTIVision, Touchlib, and tBeta (which isn’t to diss BBTouch, Bespoke, or Touché because I’m not qualified.)  I’m a reacTIVison fan, but by no means an […]

  12. […] example, a local developer (Paul Varcholik) is doing some awesome research at UCF on Multi-Touch interfaces.  Bill Reiss is starting up a venture to host and monetize games written in Silverlight […]

  13. Kenny on April 24th, 2009

    I have a FTIR setup and am able to run touchlib flash samples. I wanted to try Bespoke Multitouch and I have encountered some issue. I’ve installed the Bespoke Multitouch Framework I have progressively updated my .NET from 1.0 to now 3.5. I have installed VS C# 2008 Express, XNA and game studio 3.0. I ran the Helloworld sample and it ran fine, able to detect correct number of FTIR points. When I try to run the others like calibration, Multitouch Simon or SurfaceCommand, the application would crash. Could you help out? Thanks.

  14. Paul on April 24th, 2009

    Hi Kenny,

    Do you have a fairly modern graphics card? To use XNA you need a graphics card that supports shader model 2.0. To know for certain if it’s an XNA problem, run one of the XNA samples (like Simon or SurfaceCommand) from within the debugger. Alternately, you could try creating a brand new, stand-alone XNA project, independent of the multi-touch library, to see if it truly is an XNA problem.


  15. Joey on May 13th, 2009

    I was just wondering two things about your Framework. Is it compatible with TUIO applications? And is there a way to use an AVI video file as its input instead of a camera?
    Thanks very much

  16. Paul on May 13th, 2009

    Hi Joey,

    The Bespoke Multi-Touch Framework supports Open Sound Control, which is the specification that TUIO was built upon. Therefore, the underlying communications system is the same. The difference is in the specific messages that are sent.I’ve described the system at

    I don’t have direct support for an AVI video stream as the input to the system. However, this shouldn’t be difficult to add. The source code is provided if you’re interested in writing this.


  17. mike on July 15th, 2009

    Hi Paul,

    I’ve downloaded the sources and try to read them in vs 2008. However the vs2008 failed to convert some projects(Games.Framework, MultiTouch.CalibrationDemo, MultiTouch.Framework.XNA)

    What I’m trying to build upon this framework is a simple multi-touch aware application in WPF. So, I was wondering if it is okay to go without converting those projects successfully. Thank you in advance.

  18. Paul on July 15th, 2009

    Hi Mike,

    What’s likely going on is that might not have XNA installed. The two projects you’re referring to require XNA, and Visual Studio 2008 will choke on converting these projects if it doesn’t recognize them (which it won’t without XNA installed). I’ve successfully converted all of the framework and samples to VS 2008 and the next release will include this update.

    To your question — yes, if you aren’t using XNA, then there’s no need to convert or build the XNA specific projects. Please note, of the four demos, only HelloWorld is non-XNA. I have a WinForms demo to include in the next release and can attest to the rendering-platform-independent nature of the framework.


  19. mike on July 16th, 2009

    Thank Paul,

    I’m glad that I don’t need those projects anyway…

    Since I can’t run the calibration demo, could you briefly tell me where to look in order to get the camera and screen calibrated? I’m using an FTIR screen the application.

  20. Paul on July 16th, 2009

    Hi Mike,

    Have a look at the FtirSurfaceComponent.cs file of the Bespoke.MultiTouch.Framework.XNA project and at the CalibrationTable.cs file of the Bespoke.MultiTouch.Framework project. The CalibrationTable.cs file has four important classes : CalibrationPoint, CalibrationPointCollection, CalibrationTable, and FourPointCalibration. These classes get used within the FtirSurfaceComponent class — primarily in the Update() method within the if (mCalibrating) block.


  21. Mike on July 19th, 2009

    Hi Paul,

    I built this small calibration module which is based on what you’ve done in FtirSurfaceComponent.

    Calibration works pretty well except that programs using the calibrationtable throw an following unhandled exception:

    System.ArgumentException: Condition false

    0 =< screenColumn < Data.Columns

    : Bespoke.Common.Assert.IsTrue(String paramName, Boolean condition)

    This exceptions occur whenever a touch is detected inside x < 80 or something.

    Screen Positions for calibration points – which I put clockwise order from the topleft – were (0, 0), (720, 5), (720, 700), (10, 710) and Camera positions were (850, 37), (197, 42), (183, 692), (848, 704) respectively. (yes, the screen points are not really alligned well in the first place..) So, those points are vertically symmetrical.

    Could you tell me where I’m doing wrong?

    thank you. I appreciate your help.

  22. Mike on July 19th, 2009

    Oh, I forgot to mention that row and column sizes I entered for the calibrationtable are both 800.

    Thank you

  23. Paul on July 19th, 2009

    Hi Mike,

    Be sure that you pass height then width (rows then columns) to the CreateCalibrationTable() method. These are generally the dimensions of the client portion of your Form. It’s possible you’ve got these transposed.


  24. Paul on July 19th, 2009

    Hi Mike,

    Is 800×800 the actual dimension of your display area? Note, this isn’t necessarily the full resolution of your monitor (unless your doing a full screen app or mouse emulation) just the resolution of your multi-touch application. If not, then this is certainly an issue. Also, are you capturing camera data using the Bespoke Framework or are you receiving point data over Open Sound Control? If over OSC, then be certain the captured data matches the defined calibration dimensions. If using the Bespoke Framework, be sure you’ve scaled the vertical and horizontal resolutions appropriately through the Bespoke.MultiTouch.Framework.config file. If your horizontal camera resolution was 320 and your horizontal screen/display resolution is 800, then your scale factor would be 2.5 (800/320). Use the same concept for vertical resolution scaling.


  25. C.A.S.S.S.H on March 31st, 2010

    hello i have proble with mosuse emulator that not run on win 7 it´s not reaging it say incorrect input string format, what´s the problem ?

  26. Paul on March 31st, 2010

    Hello C.A.S.S.S.H,

    I’m afraid that’s not enough information for me to assist you. I’ve successfully used the Multi-Touch Mouse Emulator with Windows 7. Are you able to successfully use the Bespoke Multi-Touch Framework at all?


  27. handoyo on April 2nd, 2010

    Hi Paul..I want to ask,does your framework license allow me to create a commercial application??Thanks a lot…

  28. Paul on April 2nd, 2010

    Hi handoyo,

    Yes. The Bespoke Multi-Touch Framework is licensed under the BSD License which allows you to use the product in source or binary form for practically any purposes including creating a commercial application. All that’s required is for you to include the original license with your distribution. You can see an example of referencing 3rd-party packages within the Bespoke Multi-Touch Framework distribution itself. It’s also good form to cite the reference in your application (e.g. in a readme file), though this is not required.


  29. Inquisitor on October 2nd, 2010

    Has anyone seen a virtual touchpad?

    I would like to define a small “virtual touchpad” area on my touchscreen and use it as a virtual mouse so that I can move the pointer to second or third screen that are not touch screens.

    Any advice is much appreciated!

  30. Paul on October 4th, 2010
  31. Sam on March 9th, 2011

    Hi Paul
    I have a bit of a problem with your software. I am trying to install it on Windows 7 Ultimate 64 bit. Is it compatible with 64bit because I just open the program and get the “This program didn’t install ocrrectly” dialog (I have re-installed).
    Please reply to if you do reply.


Leave a reply