• Click here for a list of all my projects.
  • Click here for Touchlib info. Source code here.
  • Click here for our multitouch community site.

Monday, March 26, 2007

Weekend Multitouch Progress

I got a ton of stuff done on my screen this weekend. For one, I ditched the rickety PVC stand I had been using in favor of a much nicer looking television stand someone was throwing away. I also swapped out the crappy sanded plastic diffuser I was using in favor of the Rosco Grey projection screen. Overall it looks and functions great. I will post some pics and video as soon as I am able to get them off my camera. The rosco really does bock out a lot of background IR. It needs to be attached very closely to the acrylic though, or it will block out your finger presses.

I also finished up a few test applications in Flash (AS3). Here is a small preview - Keep in mind these are all playing back the same finger press data and the photo one has some randomness to it, so the finger presses may not make sense:

Photo App
Paint App
Ripples

Flash 9 Required. The ripples app is currently too slow to run on the 2 ghz machine I'm running my table off of. I'm gonna see if i can optimize it or modify it.

Sunday, March 25, 2007

Touchlib gets some linux love


Johannes Hirche has committed his changes to the repository. The changes get touchlib working under Linux. Haven't tried it myself, but I hope to at some point.
Big thanks to Johannes for his contribution!

Friday, March 23, 2007

Audio Synthesis - possible under flash 9!

Everyday I learn about more cool things that can be done in Flash 9. Apparently realtime audio is one of those things now, even though it is a little bit of a hack. Here's a page describing the technique. You should also check out some of the awesome examples on this guy's site. He has some really cool visual examples (including realtime physics and 3d raycasters) in addition to some very nice synthesizers (considering that they are done in flash). It would be nice if Adobe would add a more official way to do audio, instead of having to rely on the hack.

Sunday, March 18, 2007

Touchlib

Just a note to anyone trying out the binaries: You'll also need to have the .NET framework installed apparently (I'm guessing visual studio 2005 added this dependency.. anyone know how to remove it?). You'll also need DirectX installed if you expect to get any video capturing using the DSVideoLib option (which is the default). I'll update the touchlib page with this info soon. I also have some slightly newer binaries to post with some fixes and additions.

As you know, I am working on a complete package for developing apps using Touchlib, FLOSC, and Flash 9. I'm currently working on the low level stuff like generating events for multitouch things. Debugging is proving to be a pain in the ass since I moved my camera and table to a seperate machine so I have to walk to another room when I want to test something. This is combined with the fact that Flash 9 doesn't have breakpoints and code stepping working (yet). So, I decided I've had enough and I'm gonna write some code to record the OSC packets to an XML file that I can replay again and again while I'm debugging. I'm also coding some built in stuff for visualizing finger presses and displaying debug info. This way I won't have to get up and I'll at least be able to use Flash's trace window.

Once I get this stuff working, my first app is gonna be the Jeff Han style photo app since it should be fairly easy to do in flash and everyone seems to want it. Plus it'll allow me to write code for for the 'scale, rotate, translate' gesture which will no doubt become a multitouch standard.

Labels: ,

Tuesday, March 13, 2007

Touchscreen work


I just received a new PC I ordered. I'm planning on dedicating it to my multitouch table so that I can have a more permanent setup. So, right now I'm doing the fun task of getting all the windows updates installed. I'm also planning on messing a bit with Ubuntu later this week.
Lately I've been doing some work on creating some Actionscript 3 classes for Flash 9 that will interface with FLOsc. The nice thing about what I'm doing is that my TUIO events will extend the regular mouse events, so regular components (such as buttons, scrollbars, etc) may still work in a multitouch setting.

Overall I'm really liking most of the changes for Actionscript 3, especially the XML ones which make dealing with XML a much more painless process. Also, the extra speed and lower level control over movieclips and bitmaps is nice. I'm looking forward to seeing what kind of graphical effects I'll be able to accomplish.

Once I get these classes done I'll be working on some small multitouch apps (preferably games or other fun things) in Flash 9. I want to make a game that a couple people can work together on in a cooperative way. I think sandbox style games may work well.
If anyone has any ideas they'd care to share, feel free to post them in the comments.

Labels: ,

Tuesday, March 06, 2007

Vista install

I took the plunge yesterday and installed Vista on my main PC, which has been running win2k up until this point. At first, things didn't go as well as I'd hoped. Vista doesn't let you upgrade from within Win2K - you have to boot from the CD. Also, it's not an in place upgrade - vista doesn't keep all your old programs so everything has to be reinstalled (from win2k anyway. I think XP is a bit more forgiving). Doing a dual boot might have been a nice idea, but I didn't have any free partitions with enough space on them. Anyway, I proceeded with the install regardless since I like to live dangerously. Strangely, the install paused on "Unpacking files - 0%" for about a half an hour before starting up again and finishing the install. Then it got weirder from there. Instead of booting up into Vista, Win2k started loading up again and informed me that there was an error logging me in, but it let me in anyway. None of my programs were there and it was basically like booting into a fresh win2k setup for the first time. I ended up messing around with things for a couple hours trying to get it to boot into vista, even going so far as to pull a hard drive out of my other PC to try to install vista on it (though vista didn't see the drive for some reason). Finally I went thru the vista install process again and this time it worked. All my hardware was detected automatically except for my audio drivers but I downloaded the drivers from the manufacturer's site and they installed fine. Now I have the unhappy task of reinstalling all my old software, but at least I have a working OS.

Sunday, March 04, 2007

Status report

I updated the touchlib page to include a "Who should use touchlib?" section. Also included is some discussion of OSC.

Currently I am deliberating about where and how I can set up my table in a more permanent place in my house. Right now it's next to my main PC in my living room but it's not in a place where I would ever use it. Ideally I'd like to get a couple cheap computers that I can dedicate to the table that I can either leave on all the time or set them up so that they boot up into the touch screen software. Getting everything set up each time takes away from the fun.

I've also been looking into LED projectors. There are several mini projectors on the market that use bright LED's instead of the usual bulbs. LED's last lots longer (they are rated at 10,000 hours) and are much cheaper. Amazon.com has the Mitsubishi PK10 listed for $379.00. They are also smaller and generate less heat (and probably less IR). In a situation where I'd like to leave the table on and unattended, I think long life is a great advantage. The drawback is that the image is not nearly as bright. This may not be as much of an issue for a touch table where the projector is fairly close to the screen but it I would need to test it out. There is a Toshiba LED projector coming out which is supposed to be brighter than the current crop. It might be worth waiting for.

UPDATE: I did some more checking around today and I noticed the Mitsubishi PK20 is also available for 599$. It's supposed to be 150% brighter than the PK10, though it's still only 25 lumens which is kinda crappy. Also interesting is the fact that it can produce a 20" diagonal image from only a foot away. This could significantly reduce the height requirements for my screen and maybe also make coffeetable type setups possible.

Now that OSC is working I am thinking of using Flash 9 as my language of choice for developing apps. As soon as I finish upgrading my OS (I'm moving to Vista). I plan on writing some Actionscript classes to make it easy to interface with FLOsc and to generate touch events for your actionscript code.

Speaking of OS's I am also planning on installing Ubuntu Linux on one of my old machines. It's going to be a challenge to learn my way around in Linux, but maybe I'll be able to help port Touchlib once I get the basics down.