{"id":202,"date":"2014-08-06T00:00:08","date_gmt":"2014-08-05T23:00:08","guid":{"rendered":"http:\/\/preip.net\/?p=202"},"modified":"2014-08-06T00:00:08","modified_gmt":"2014-08-05T23:00:08","slug":"bodylenses","status":"publish","type":"post","link":"https:\/\/preip.net\/?p=202","title":{"rendered":"BodyLenses"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p><em>BodyLenses<\/em> explores the Idea of <em>Embodied Interaction<\/em> in front of a large, interactive display wall. User has their own personal Magic Lens that follows them around, when they move in front of the display. We experiment with different shapes of the lens, more abstract ones and more bodily shaped ones. Furthermore, we also explored how the space in front of the wall can be used for, e.g., <em>proxemic interaction<\/em>. Body Lenses was developed at the <a href=\"https:\/\/imld.de\">Interactive Media Lab Dresden<\/a> and resulted in a <a href=\"http:\/\/dx.doi.org\/10.1145\/2817721.2817726\">publication<\/a> at the <a href=\"http:\/\/www.its2015.org\">ACM ITS 2015<\/a>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/preip.net\/wp-content\/uploads\/2013\/09\/BodyLenses_thumb.png\" alt=\"\" class=\"wp-image-136\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">General<\/h2>\n\n\n\n<p>The <em>BodyLenses <\/em>prototype was developed mostly by a colleague and myself. Some student projects were involved with specific functions.<\/p>\n\n\n\n<p>The prototype is written in Phython using the <a href=\"https:\/\/www.libavg.de\/site\/\">libavg<\/a> graphics framework. The position of users is tracked by using a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kinect\">Micrsoft Kincet<\/a> placed behind the users and which is connected to a dedicated tracking PC. The resulting skeleton data is transmitted to the display wall&#8217;s PC using UPD and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Open_Sound_Control\">Open Sound Control<\/a>. The tracking application uses the <a href=\"https:\/\/dev.windows.com\/en-us\/kinect\">Kinect SDK<\/a> and is written in C++. As OSC libraries we use <a href=\"https:\/\/trac.v2.nl\/wiki\/pyOSC\">pyOSC<\/a> on the python side and <a href=\"http:\/\/www.rossbencina.com\/code\/oscpack\">OSCpack<\/a> on the C++ side.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"BodyLenses \u2013 Embodied Magic Lenses and Personal Territories for Wall Displays\" width=\"580\" height=\"326\" src=\"https:\/\/www.youtube.com\/embed\/8m-vWxpMT2Q?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Details and Contribution<\/h2>\n\n\n\n<p><em>BodyLenses <\/em>was a follow up project to <a href=\"https:\/\/preip.net\/multilens\/\">MultiLens<\/a>. Since we had some performance related issues during that project, most likely due to having used WPF as a GUI framework, we wanted to make sure this time that we would be able to handle a large number of objects on screen. Therefore we tested several options. I wrote smaller prototypes in <a href=\"https:\/\/libcinder.org\/\">Cinder <\/a>and raw Direct3D. In the end, we decided to use  <a href=\"https:\/\/www.libavg.de\/site\/\">libavg<\/a> as it was fast and provided high level input capabilities as well.<\/p>\n\n\n\n<p>As a first step, I ported our Graph and Lens structures from <em>MultiLens <\/em>and C# over to Python for the new prototype. Instead of MVVP I used a more generalized MVC structure without data bindings but with a callback structure so that views could be updated easily whenever something in the model changed. First tests were promising and we manged to have graphs a lot bigger with smoother performance than in the WPF prototype.<\/p>\n\n\n\n<p>While I was occupied with the graphs and lenses, my colleague implemented the Kinect tracking based on a previous prototype and connected it with our Python front end. After that we experimented with lenses of different shapes and more body-like lenses. While that was interesting and fun I have to say that from a usefulness perspective the classic shapes, i.e., circles and rectangles worked best.<\/p>\n\n\n\n<p>Furthermore we also experimented with using the distance to the wall to control how the lenses behaved. I implemented a mode which basically switched through a large stack of images based on the users position. Using a video or similar time based data sets, this gave the impression as moving forward through time when stepping closer to the wall. It was a rather neat effect and always very demonstrable to visitors.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>BodyLenses explores the Idea of Embodied Interaction in front of a large, interactive display wall. User has their own personal Magic Lens that follows them around, when they move in front of the display. We experiment with different shapes of the lens, more abstract ones and more bodily shaped ones. Furthermore, we also explored how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-202","post","type-post","status-publish","format-standard","hentry","category-portfolio","category-project"],"_links":{"self":[{"href":"https:\/\/preip.net\/index.php?rest_route=\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/preip.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/preip.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/preip.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/preip.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=202"}],"version-history":[{"count":0,"href":"https:\/\/preip.net\/index.php?rest_route=\/wp\/v2\/posts\/202\/revisions"}],"wp:attachment":[{"href":"https:\/\/preip.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/preip.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/preip.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}