FTIR built by Ryerson New Media students in Toronto
Posted: 03 April 2007 09:41 AM   [ Ignore ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

• mac book pro
• processing w/ v3ga blob detection
• firewire mini dv cam w/ nightshot mode + overexposed negative
• viewsonic PJ255 projector
• 0.75” acrylic (top side cut to 45°)
• mylar projection surface behind acrylic (not a compliant surface)
• strategically placed aluminum foil (around acrylic, around diodes)
• diodes: 880nm, 1.5V @ 100ma, 160mW/sr, Angle +/- 20 (OSRAM SFH485)

edit: because there has been more interest in this thread than anticipated a synposis regarding the theoretical framework has been added:

Data over a network becomes manifest and represented as pixels of varying colours. These different colours are based on emergent algorithmic patterns that grow (similar to cellular automata) and adapt to the interaction defined by the user touching the surface. The unique colour of a specific pixel furthermore determines its characteristic behaviours within the hive of pixels and in doing so delegates how it will interact with the pixels around it. Audio harmonies also become evident when a user activates the interface. There is evidence of speakers, a subwoofer, and a ping sensor to detect distance of presence. The direct influence of user interaction intensifies the audible bass levels of a fabricated human heartbeat.

technology: FTIR, infra-red/nightvision, processing.org, v3ga blobDetection, Sonic ping sensor, physical computing/serial communication, Max/MSP, MIDI, Ableton Live

location: InterAccess Electronic Media Arts Centre, Toronto, Canada

Image Attachments
mindHive6.jpgmindHive12.jpgmindHive14.jpgmindHive19.jpgmindHive18.jpgmindHive23.jpgmindHive10.jpg
Profile
 
 
Posted: 03 April 2007 10:09 AM   [ Ignore ]   [ # 1 ]
Administrator
RankRankRank
Total Posts:  302
Joined  2007-01-08

Nice. 

I’m currently wondering if i should paint mine all black (like yours), or if i should paint the frame around the screen a different colour.

*edit* removed stuff about complaint surface

Profile
 
 
Posted: 03 April 2007 10:16 AM   [ Ignore ]   [ # 2 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

unfortunately i had to edit my post, as the mylar was not a “compliant surface.”

the mylar was actually placed behind the acrylic rather than infront. we bought it at a local art supply shop.

i actually had a thought about self-adhesive mylar, for a compliant surface, because it feels so nice on the fingertips and goes on so smoothly.

Profile
 
 
Posted: 03 April 2007 10:30 AM   [ Ignore ]   [ # 3 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

@Joobs

lol, if you only knew that we didn’t paint it at all.

we actually cut out strategic pieces of black foam core…

Profile
 
 
Posted: 03 July 2007 02:53 AM   [ Ignore ]   [ # 4 ]
New Member
Rank
Total Posts:  5
Joined  2007-07-02

how does your macbook pro handle the processing - i’m planning to upgrade my laptop myself

Profile
 
 
Posted: 03 July 2007 09:37 AM   [ Ignore ]   [ # 5 ]
Jr. Member
RankRank
Total Posts:  116
Joined  2007-06-06

mindhaus,
Thanks for posting this.  I really enjoy seeing how people actually construct their tables.

 Signature 

- Miketavius
http://mikeytech.blogspot.com/

Profile
 
 
Posted: 03 July 2007 09:59 AM   [ Ignore ]   [ # 6 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

@pkny

the macbook pro handles the processing wonderfully. it’s a dual core 2 rig so it had no problems with the real time interpretation.

Profile
 
 
Posted: 03 July 2007 10:00 AM   [ Ignore ]   [ # 7 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

@miketavius

my pleasure, thank you for your interest in our project smile

Profile
 
 
Posted: 03 July 2007 02:02 PM   [ Ignore ]   [ # 8 ]
Administrator
RankRank
Total Posts:  185
Joined  2007-06-12

Frosted white mylar? (2 sided matte)

I bought a sheet myself for an FTIR table, but I’m thinking of returning it.  I have done a couple of tests and it seems to diffuse the blobs as well.  No big deal for many apps, but for things like painting the blob-blur would compromise the integrity of the image.

Profile
 
 
Posted: 03 July 2007 02:31 PM   [ Ignore ]   [ # 9 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03
theillustratedlife - 03 July 2007 02:02 PM

Frosted white mylar? (2 sided matte)

I bought a sheet myself for an FTIR table, but I’m thinking of returning it.  I have done a couple of tests and it seems to diffuse the blobs as well.  No big deal for many apps, but for things like painting the blob-blur would compromise the integrity of the image.

Indeed, I also found that the mylar diffused the blobs, however for our scenerio we didn’t require as much precission as you wish to achieve.

Are you using v3ga? I found a great way to calculate the relative middle of each blob with a method written by v3ga himself. It’s not included in the example code but he documents x,y precission really well on his site.

Profile
 
 
Posted: 03 July 2007 02:35 PM   [ Ignore ]   [ # 10 ]
Administrator
RankRank
Total Posts:  185
Joined  2007-06-12

Thanks for the tip.  I’ll look into it. 

I’m building TouchEvent.  Currently, it draws a rectangle around each blob and uses the center as the touch point.  Seems to work well, but I don’t have an FTIR board to test with yet.

Profile
 
 
Posted: 03 July 2007 02:47 PM   [ Ignore ]   [ # 11 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03
theillustratedlife - 03 July 2007 02:35 PM

I’m building TouchEvent.

I attempted using Flash 8 with a getPixel() method a while back but found Flash lacking in frame rate translation for real time detection. This class you’ve linked was written in CS3 however, and I know Flash’s drawing engine has greatly improved in this version. The reason I choose to use processing.org is because the Java drawing engine allows for incredibly precise detection in real-time (and CS3 was not released at this point).

Let me know how the CS3 class works. Flash’s XML abilities definitely outweigh processing, and as a result will allow you to plug into a multitude of API engines. Especially some of the one’s NUI himself has supplied on this site.

*edit* If you find that Flash can’t handle what you’re attempting to do, yet still want to use it because of the powerful IDK, I have a great trick for using processing to interpret the blobs and then send x,y coordinates to Flash through serial communication setting up a simple server/client connection.

Profile
 
 
Posted: 03 July 2007 03:31 PM   [ Ignore ]   [ # 12 ]
Administrator
RankRank
Total Posts:  185
Joined  2007-06-12

I also found getPixel32() to be slow.  That’s why I’m using getColorBoundsRect().  It seems to work well so far.  I played briefly with Matrix and BitmapData.compare() and found them both to impede performance.

If you plug in a DV cam on a Windows machine, it will assume it’s anamorphic and do widescreen blob processing.  It does this by multiplying touch.y and touch.height by .75 after the touch has been found.  Using a Matrix to scale _bitmapData by 75% seemed to slow the framerate down.  Doing these corrections after detection is much faster.

You can add your cam to checkHDV in TouchListener if you want to test it.

Profile
 
 
Posted: 03 July 2007 04:14 PM   [ Ignore ]   [ # 13 ]
New Member
Rank
Total Posts:  8
Joined  2007-04-03

I really must check out this TouchEvent class, sounds very promising. Thanks for the info.

If you’re looking for a compliant surface, I know Joobs has been tirelessly in search of one, so he is likely the best person to contact. Have you tried Rosco (I’ve heard mixed results). Also, if you haven’t been on the IRC channel, I remember it is #ftir or maybe #multitouch on irc.freenode.net (same server as the Ubuntu crew). They are a wealth of information for materials.

Profile
 
 
Posted: 22 July 2007 07:55 PM   [ Ignore ]   [ # 14 ]
New Member
Rank
Total Posts:  22
Joined  2007-07-19

If you find that Flash can’t handle what you’re attempting to do, yet still want to use it because of the powerful IDK, I have a great trick for using processing to interpret the blobs and then send x,y coordinates to Flash through serial communication setting up a simple server/client connection.

Mindhaus, would you mind sharing this trick? TIA!

Profile
 
 
   
 
 
‹‹ YAY, I built one!      loopArenaMTC ››