Multi-Touch
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:
- Multi-Touch Montage
- Multi-Touch Demo Explorer
- Improved Multi-Touch Calibration
- Multi-Touch Mouse Emulator
- Multi-Touch Ink Demo
- Multi-Touch Calibration & Particle Trail Demo
- SurfaceSimon Redux
- Multi-Touch Videos
Downloads (Current Version: 4.2.0.0 – Release Date: 10/11/2008)
- Bespoke Multi-Touch Framework Installer (.exe) (Source + Binaries – 26MB)
- Online Documentation (.html)
- License – BSD
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
[...] Bespoke Multi-Touch Framework Multitouch framework (requires .NET 2.0) – Microsoft Public License (Ms-PL) http://www.bespokesoftware.org/wordpress/?page_id=41%20/ [...]
[...] Multi-Touch [...]
[...] Multi-Touch [...]
[...] Multi-Touch [...]
Why can’t we download the framework anymore?
Thanks!
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).
Paul
[...] Multi-Touch [...]
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!
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.
Paul
excellent, thank you Paul!
[...] 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 [...]
[...] 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 [...]
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 4.2.0.0. 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.
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.
Paul
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
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 http://www.bespokesoftware.org/wordpress/?p=57.
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.
Paul
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.
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.
Paul
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.
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.
Paul
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.
Oh, I forgot to mention that row and column sizes I entered for the calibrationtable are both 800.
Thank you
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.
Paul
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.
Paul
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 ?
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?
Paul
Hi Paul..I want to ask,does your framework license allow me to create a commercial application??Thanks a lot…
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.
Paul