BBTouch, code, multitouch, openSoundControl

BBTouch -> Quartz Composer make nice tutorial30 Jul

For anyone who is interested, the esteemed ScreamingDrills has put together a nice tutorial on how to get QC and BBTouch to play well together. (thanks Drills! and thanks Sandor for the other QC links)

if you are looking to do that here are some links:
QC vs BBTouch tutorial: (thanks Drills!)
http://nuigroup.com/wiki/Quartz_Composer_with_BBTouch/

a working example of the TUIO plugin: (thanks Sandor!)
http://workflow.cd-cologne.de/download/QC_surface.zip

have fun!

edit: i always forget to set the catagories! i suxx0r!

BBTouch, multitouch

New multi-touch table, day 1.330 Jul

Raining.

(and dark at this point, no place inside to do any big cutting and woodwork. One of the very few downsides to living in an old Victorian flat in inner city Melbourne. but i digress)

I decided to see how the image is going to look when i finally get it all up and running so i 'mounted' the fire-i camera into the table (and by mount i mean to say i held it there). The normal lens was not wide enough so i switched up to the big ole' wide angle and here is what i got:

wide angle surface shot

a bit blurry, but look at all that space! I am giddy. my proto-surface is about the size of an A4 sheet of paper. so this is a big improvement. Although i see now that the very first thing i will need to do is write a barrel distortion de-frakulator in BBTouch. Weekend project i guess. Something to do while i wait for the diffusion/projection material.

Cheers!
-b

multitouch

New multi-touch table, day 130 Jul

So! Yesterday, my lovely partner Leonie managed to lay claim to a lovely old old OLD wooden work bench from the University (apparently they are upgrading to new metal and plastic ones). I decided to go ahead and convert it to a multi-touch surface, since the one i currently have is a sickly little thing that i whipped up in a few hours with the scrap wood i had laying around. Of course, nothing that is free is easy, and this table is no exception :-)

Here it is (sans tabletop) in it's original state: (the bunnies don't seem very interested in it yet)
a big table frame

It was wayyy too long to be really useful (i could have built a nice surface into one end, and used the other end as a workspace, but there is no place our house for such a beast.) so it must be cut down. I originally had planned on just popping the legs off, cutting it down and reassembling it. However, as I mentioned, this is an OLD old old table, and as such it is built with some nice hardwood and is all dowel and glue construction, so getting the legs off would require tools that i do not currently possess. (ie a sawsall). Instead i went with the slightly lamer, but infinitely simpler version of just cutting it doen from the center, and splicing it back together.

First: the cuttie:
slicey dicey

then the splicey:
splicey

Then i was pleasantly surprised to find out that I could get a nice bit of 8mm clear acrylic sheet cut to fit in about 10 minutes at a place that is a 5 minute drive from my home. And it was very reasonable. $65 for a 920mm x 500mm x 8mm chunk of plastic. The final working surface will be about 820mm x 420 mm. Much longer than tall of course, but i kinda like that. I was originally going to just put a 4:3 ratio surface in the center of the table (something like 560mm x 420mm), but decided that it would be much cooler if it wasn't 'screen' sized.

anyway, here it is with the acrylic perched atop: (the bunnies are only mildly impressed)
rough table with acrylic

Yes, those are casters. I firmly believe that everything should be mounted on wheels. Makes it sooo much easier to move about :-)

I was actually on track to get the mirror bay attached and the projector mounted, but it started to rain, so instead I am here writing this. I plan to finish it tomorrow. Although i don't yet have any diffusing material for it, i may have to fake it with multiple sheets of tracing paper. I did order some Rosco Grey projection material, which should be here monday, so we will see how that works out.

code, multitouch, openSoundControl

BBOSC now as a framework28 Jul

Hey All,

Pawel Solyga has done a great thing, and converted the BBOSC project from the half-assed state that I had committed it, into a nice framework. So now it is easy to integrate into all your Cocoa-based OSC apps.

Just grab the code from the repository and compile with the framework project. Works great!

obligatory code link:
http://code.google.com/p/bbosc/

thanks again Pawel!

BBTouch, code, multitouch

Attack of the Dark Blobs!25 Jul

Soo... since the CIImage conversion was such a letdown, i decided to at least do something productive today.

Commenter thescreamingdrills alerted me to the fact that users of the very cool MTMini couldnt use BBTouch since BBTouch was looking for light colored blobs and the MTMini generates dark colored blobs.

I came up with a brilliant on the spot fix, only to find out it wasn't so brilliant after all.

That said, the fix is actually very simple, all you need to do s reverse the order that the bytes are being compared (light blobs: foreground - background > threshold, dark blobs: background - foreground > threshold) and bob's your uncle!

So, i did that, and tested it (by shutting off the IR illumination on my surface, removing my visible light filter and shining a big light from above). It seemed to work well.

I added a 'find dark blobs' config switch to the interface so that you can choose your method of detection.

The new code is on the repository.
Also, at Pawel's suggestion, I uploaded a binary version to the opentouch downloads page for those of you who dont want to hassle with the code compiling and whatnot:
http://code.google.com/p/opentouch/downloads/list

So, now all you MTMini guys can use the MTMini on your mac now :-)
groovy!
-b

About

meMy full name is Ben Britten Smith.

I go by Ben Britten because Ben Smith is a bit too common and using my full name is a mouthful.

I live in Melbourne, Australia and service clients all over the globe.

Contact

Have some questions?

Feel free to contact me directly at support@benbritten.com with any questions you might have about any of the applications I support.

Thanks!

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIGFib3V0LXdpZGdldDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2JlbG93X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL2JlbmJyaXR0ZW4uY29tL3dwLWNvbnRlbnQvdGhlbWVzL3ZpYnJhbnRjbXMvaW1hZ2VzL2FkNDY4LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2JlbG93X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gYmVuYnJpdHRlbi5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19ibG9ja19pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly9iZW5icml0dGVuLmNvbS93cC1jb250ZW50L3RoZW1lcy92aWJyYW50Y21zL2ltYWdlcy9hZDMzNi5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19ibG9ja191cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19ibG9nPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2djYXQ8L3N0cm9uZz4gLSAvY2F0ZWdvcnkvYmxvZy88L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWVudTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGFjdDwvc3Ryb25nPiAtIGNvbnRhY3Q8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSBodHRwOi8vYmVuYnJpdHRlbi5jb20vZmF2aWNvbi5pY288L2xpPjxsaT48c3Ryb25nPndvb19mZWF0cGFnZXM8L3N0cm9uZz4gLSA1NDk8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19sYXlvdXQ8L3N0cm9uZz4gLSBkZWZhdWx0LnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL3ZpYnJhbnRjbXMvPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSAyLDgyLDU0OSw1NTMsNTY3LDUzMiw1MzQsNTM3LDgzMjwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYWQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfbXB1PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zdGVwczwvc3Ryb25nPiAtIDEuLCAyLiwgMy48L2xpPjxsaT48c3Ryb25nPndvb190YWJiZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIFZpYnJhbnRDTVM8L2xpPjwvdWw+