Interactive floor - Dev blog for group 9 / IDP http://idp.mexinetica.com/blog/ Interactive floor - Group 9 dev blog (c) 2009 Mr. Personality [group 9] Thu, 09 Apr 2009 16:39:00 -0700 http://www.textmotion.org Settings definition of the OF tracking code http://idp.mexinetica.com/blog/blog/blog/view/58/settings-definition-of-the-of-tracking-code http://idp.mexinetica.com/blog/blog/blog/view/58/settings-definition-of-the-of-tracking-code <p>Modified the opticFlowExample tracking application to allow us to define the play area and scale blob coordinates accordingly.</p> <p>For now coordinates outside the play area are truncated, but tomorrow I'll try to code a better approach with users exiting when outside the play area, and blob events being ignored while outside the play area.</p> <p>The program is also able to load some settings from a text file. Adding support for more settings is trivial, and I'll do this tomorrow as well as post the full specifications of the file.</p> rocaa@student.chalmers.se (unknown) Thu, 09 Apr 2009 16:39:00 -0700 Projectors and projected area http://idp.mexinetica.com/blog/blog/blog/view/57/projectors-and-projected-area http://idp.mexinetica.com/blog/blog/blog/view/57/projectors-and-projected-area <p>We tried a new projector at the Science Park today, the <a href="http://www.planar.com/products/projectors/pr/pr5020/index.cfm">Planar PR5020</a>.</p> <p><ul><li>The projected area is not bigger than the Sharp's</li><li>It is brighter: 3000 lumens compared to Sharp's 1700</li><li>It costs us money to hire from lob: 400 SEK a day</li></ul></p> <p>Conclusion: We should stick with the Sharp if we can block out the natural light affecting the brightness of the projected display. If we can't, we will consider this projector again.</p> <p>We also discussed the small size of the projected area. This isn't a problem for some applications (for example it might be fine with the prisoner's dilemma) but for others (for example the monster chasing game) we will need a bigger area. I looked into wide-angle lenses but couldn't find any for the projectors we have access to. I did find some more information on related work. What's most interesting is the number of PCs and projectors that are used to accomplish what we're trying to do:</p> <p><ul><li><a href="http://www.artcom.de/index.php?option=com_acprojects&amp;page=6&amp;id=7&amp;Itemid=113&amp;details=0&amp;lang=en">The Famous Grouse Experiment (2002)</a> uses 6 PCs and 6 projectors, 6 infrared spotlights and 2 cameras for tracking, and 8 shock sensors for footfall recognition! (They use a separate PC to control everything.)</li><li><a href="http://www.artcom.de/index.php?option=com_acprojects&amp;page=6&amp;id=28&amp;Itemid=113&amp;details=0&amp;lang=en">Bodymover (2000)</a> - no tech information on this one</p> <p></li></ul></p> <p><b>More information</b></p> <p><ul><li><a href="http://www.aec.at/center_exhibitions_project_en.php?id=26">Sensitive Floors on Ars Electronica</a></li><li><a href="http://www.patentstorm.us/patents/7259747.html">US Patent</a> on these type of systems - interesting reading <a href="http://www.patentstorm.us/patents/7259747/claims.html">(claims page)</a></p> <p></li></ul></a></a></li></a></li></ul></b></a></li></a></li></ul></li></li></li></ul></a></p> keyvan@k1m.com (Keyvan Minoukadeh) Thu, 09 Apr 2009 08:46:54 -0700 Protocol description update http://idp.mexinetica.com/blog/blog/blog/view/53/protocol-description-update http://idp.mexinetica.com/blog/blog/blog/view/53/protocol-description-update <p>Protocol description is as follows:</p> <p><blockquote>KindOfEvent|User|XCoordinate|YCoordinate|XDirComponent|YDirComponent\n</blockquote></p> <p>KindOfEvent: integer. 0 = USER_JOINED; 1 = USER_MOVE; 2 = USER_LEFT</p> <p>User: integer. UserID. Note: UserID of 99 means “mood of the room”. (Read on)</p> <p>XCoordinate: float [0.0-1.0]. Note: if UserID is 99, this value is the mood of the room.</p> <p>YCoordinate: float [0.0-1.0].</p> <p>XDirComponent: float [0.0-1.0].</p> <p>YDirComponent: float [0.0-1.0].</p> <p></blockquote></p> rocaa@student.chalmers.se (unknown) Wed, 25 Mar 2009 08:53:34 -0700 Wide angle lens for projector? http://idp.mexinetica.com/blog/blog/blog/view/44/wide-angle-lens-for-projector http://idp.mexinetica.com/blog/blog/blog/view/44/wide-angle-lens-for-projector <p>Found a reference to <a href="http://www.projectorcentral.com/Panasonic-PT-D5700E-projection-calculator-pro.htm">Panasonic PT-D5700E</a> on a Russian <a href="http://www.beyond-media.ru/ls.en.html">Interactive Projection (Living Surface)</a> page. They have some information on there about how the system works.</p> <p>Looking at the Projector Central page (link above) we found a feature allowing us to change lens. So it appears some of these projectors have wide angle lenses available. Maybe that's why the distance from projector to floor is so low for some of these setups.</p> <p></a></a></p> keyvan@k1m.com (Keyvan Minoukadeh) Mon, 09 Mar 2009 09:02:31 -0700 Meeting Markus http://idp.mexinetica.com/blog/blog/blog/view/40/meeting-markus http://idp.mexinetica.com/blog/blog/blog/view/40/meeting-markus <p><b>Hardware: webcam (wide angle), beamer (wide angle or two). if two beamers, what is a good solution?</b></p> <p>- Markus suggested using the <a href="http://www.matrox.com/graphics/en/products/gxm/dh2go/">Matrox Graphics Extension DualHead2Go</a></p> <p>- We should also talk to Ole for the wide angle beamer</p> <p>- and test how much more projection area you get with projection under an angle (and correcting with keystone).</p> <p><span style="font-weight: bold">Software: pipeline thingie we're doing with two components - one for input/user tracking and one for output/interaction-scenario projection.</p> <p></span></p> <p>We might have issues with calibration and other things that need to be communicated between both components. The up-side for us is that we can use C and Processing, which suits our needs and capabilities better. It also forces us to think out and extend the protocol which might actually benefit our design. But then again, it could also NOT benefit us, hehe <img src="http://idp.mexinetica.com/blog/media/emoticons/default/smile.png" width="16" height="16" /></p> <p><b>Interaction / scenario: prisoner's dilemma, pong, ?</b></p> <p>Markus suggested that Pong is actually easier to make than the Prisoners Dilemma. I think he has a good point, because the PD involves a lot more game state and interaction handling.</p> <p></b></span></a></b></p> askewdriver@gmail.com (Eelke Boezeman) Wed, 04 Mar 2009 00:49:00 -0800 Processing monsters http://idp.mexinetica.com/blog/blog/blog/view/37/processing-monsters http://idp.mexinetica.com/blog/blog/blog/view/37/processing-monsters <p>Bookmark this!</p> <p><a href="http://www.rmx.cz/monsters/"><a href="http://www.rmx.cz/monsters/">http://www.rmx.cz/monsters/</a></a></p> <p></a></p> rocaa@student.chalmers.se (unknown) Mon, 02 Mar 2009 03:10:24 -0800 beamer / webcam angle http://idp.mexinetica.com/blog/blog/blog/view/38/beamer-webcam-angle http://idp.mexinetica.com/blog/blog/blog/view/38/beamer-webcam-angle <p>after doing some tangens calculations…</p> <p>ceiling 3m</p> <p>projection on floor: 3m x 4m</p> <p>necessary angle: 53,2 degrees x 67,4 degrees</p> <p>HP has a webcam that does that, or at least they in 2006:</p> <p><a href="http://www.engadget.com/2006/10/03/hps-two-megapixel-wide-angle-webcam/">Engadget review of wide angle hp webcam</a></p> <p><b>the big question is, what is the maximum projection angle of an average beamer?</b></p> <p>according to the <a href="http://www.theprojectorpros.com/learn-s-learn-p-theater_throw_ratios.htm">projection pros</a> there is such a thing as the throw ratio, which is defined as Distance to screen / width of projected image.</p> <p>distance to screen = ceiling to ground = 3m</p> <p>width of projected image = 4m</p> <p>wanted throw ratio = 3/4</p> <p>but from a hardware site I found out that a normal throw ratio is somewhere around <b>2</b>.</p> <p></b></a></b></a></p> askewdriver@gmail.com (Eelke Boezeman) Mon, 02 Mar 2009 00:58:00 -0800 Visit to universeum http://idp.mexinetica.com/blog/blog/blog/view/31/visit-to-universeum http://idp.mexinetica.com/blog/blog/blog/view/31/visit-to-universeum <p>Friday 20th we went to Universeum to see an installation similar to what we intend to do, called the “living floor”.</p> <p>We got a few tips and hints about its operation:</p> <p><ul><li>Uses infrared emitters and receptors</li><li>The beamer is ~4 m high and gives an image of approx 3x4 m^2 (or 12 Eelke-feet :P)</p> <p></li><li>The room is quite dark. We'll see how we manage that..</li><li>Interaction too simple (chase fishes). But they've fixed that (see website below)</p> <p></li></ul></p> <p>Website (has a nice video):</p> <p><div style="margin-left: 40px"><a href="http://living-surface.de/">living-surface.de</a></p> <p></div></p> <p></a></div></li></li></li></li></ul></p> rocaa@student.chalmers.se (unknown) Sun, 22 Feb 2009 03:30:54 -0800 Meeting [18/2] http://idp.mexinetica.com/blog/blog/blog/view/29/meeting-18-2 http://idp.mexinetica.com/blog/blog/blog/view/29/meeting-18-2 <p><b>Quick summary:</b></p> <p><ul><li>Keyvan is back! <img src="http://idp.mexinetica.com/blog/media/emoticons/default/grin.png" width="16" height="16" /> </li><li>Decided to split work on the prototype in 2 parts: video and software</li><li>Mohammad &amp; Eelke to work on Video</li><li>Keyvan, Amir &amp; Alejandro to work on Software</p> <p></li></ul></p> <p><b>Some notes about video:</p> <p></b><ul><li>Probably implemented using Premiere or a similar software</p> <p></li><li>Must display intended functionality</li><li>Must be self-explanatory</li><li>Desired length about a minute or as much as needed to make it self explanatory</p> <p></li><li><b>comments?</b></p> <p></li></ul></p> <p><b>Some notes about Software:</b></p> <p><ul><li>Implementation done in two modules: <b>Image recognition</b>, and <b>Reaction</b></li><li><span style="font-weight: bold"></span>Preferably to run in Windows, Mac and GNU/Linux</li><li>Emphasis on easyness over performance, but without exaggerating</li></ul></p> <p><b>Image recognition:</b></p> <p><ul><li>Looking at <a href="http://opencv.willowgarage.com/wiki/">OpenCV/C</a> - (Idea is to see if there's something more high-level)</p> <p></li><li>Looking at <a href="http://ubaa.net/shared/processing/opencv/">processing</a></li><li>Looking at <a href="http://www.openframeworks.cc/">OpenFrameworks</a></li><li><b>Input: Webcam data</b> - processed in whatever way it is needed</li><li></p> <p></li><span style="font-weight: bold"><li>Output: Notification of user(s) joining(user, x,y), user(s) leaving</li><li>Output: Position update(user, x,y) per user</li></span><li>Comments??</p> <p></li></ul></p> <p><b>Reaction module</b></p> <p><ul><li>Could be further subdivided into more specific modules ( IIP, user, ?)</li><li><b>Should stand on its own</b></li><li>Should be able to receive “faked” input (for example, read the mouse)</li><li>Suggestion for drawing graphics - OpenGL. It's fast and not too horribly complex <img src="http://idp.mexinetica.com/blog/media/emoticons/default/wink.png" width="16" height="16" /></p> <p></li><li><span style="font-weight: bold">I</span><b>deal to be able to receive data through either a socket or a pipe - this will make both programs independent</b></li><li><span style="font-weight: bold">INPUT: Notification of users joining, moving and leaving</span></li><li><span style="font-weight: bold">OUTPUT: A window with graphics - this will simply be maximized/fullscreen in the final version, when the computer is connected to the beamer</span></li></ul></p> <p><b>Edit: One last thing: if we go as a group on Friday and explain, we might be able to visit for 50 SEK. Keyvan knows the details.</b></p> <p></b></span></li></span></li></b></span></li></li></li></b></li></li></ul></b></li></li></li></span></li></b></li></a></li></a></li></a></li></ul></b></li></span></li></b></b></li></ul></b></b></li></li></li></li></li></ul></b></li></li></li></li></ul></b></p> rocaa@student.chalmers.se (unknown) Wed, 18 Feb 2009 00:48:00 -0800 Webcam http://idp.mexinetica.com/blog/blog/blog/view/27/webcam http://idp.mexinetica.com/blog/blog/blog/view/27/webcam <p>I bought a UVC compliant webcam which can take video with a rather good resolution.</p> <p>I'll start doing tests with OpenCV in the weekend.</p> rocaa@student.chalmers.se (unknown) Tue, 10 Feb 2009 06:43:34 -0800 Some ideas on implementation http://idp.mexinetica.com/blog/blog/blog/view/26/some-ideas-on-implementation http://idp.mexinetica.com/blog/blog/blog/view/26/some-ideas-on-implementation <p>I thought over some ideas for implementation, from a Software perspective:</p> <p><meta> <title></title> <meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)"> <style type="text/css"> <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style> <ul><li><p style="margin-bottom: 0cm">Core in C (nearly everything has bindings for C). If done right, will compile and run everywhere. Or we could also try with <a href="http://mono-project.com/Main_Page">Mono</a>? Or (ugh) Java?</p> <p></p> </li><li><p style="margin-bottom: 0cm">Vision using <a href="http://en.wikipedia.org/wiki/OpenCV">OpenCV</a>.</p> </li><li><p style="margin-bottom: 0cm">Graphics using OpenGL (simple, but we can make things look nicer if we get more time - and I'm very familiar with doing cross-platform OpenGL things). We definitely don't need OGRE, that would be an extreme overkill..</p> <p></p> </li><li><p style="margin-bottom: 0cm">AI – not decided yet. Perl? Python? Something more specialized? (CLIPS?).</p> </li></ul></p></li></p></li></a></p></li></a></p></li></ul></style></meta></title></meta></p> rocaa@student.chalmers.se (unknown) Mon, 09 Feb 2009 00:48:00 -0800