{"id":2824,"date":"2021-04-06T14:13:03","date_gmt":"2021-04-06T18:13:03","guid":{"rendered":"https:\/\/dems.asc.ohio-state.edu\/?p=2824"},"modified":"2021-04-27T18:08:26","modified_gmt":"2021-04-27T22:08:26","slug":"cycle-1-5","status":"publish","type":"post","link":"https:\/\/dems.asc.ohio-state.edu\/?p=2824","title":{"rendered":"Cycle 1"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">My overall goal for this final project is to create a video game like &#8220;shooting&#8221; environment that utilizes leap motion controls and a parallax effect on the display. Cycle 1 was focused on creating the environment in which the &#8220;game&#8221; will take place and building out a system that drives the head tracking parallax effect. My initial approach was to use basic computer vision in the form of blob tracking. I originally used a syphon to send kinect depth image from Isadora into TouchDesigner. That worked well enough, but it lacked a z-axis. Wanting to use all of the data the kinect had, I decided to try and track the head in 3D space. This lead me down quite the rabbit hole as I tried to find a kinect head tracking solution. I looked into using NIMate, several different libraries for processing, and all sorts of sketchy things I found on GitHub. Unfortunately none of those panned out so I fell on my backup, which was Isadora. Isadora looks at your skeleton and picks out the bone associated with your head. It then runs that through a limit scale value actor to turn it into values better suited for what I&#8217;m doing. Those values then get fed into an OSC transmit actor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-1024x444.png\" alt=\"\" class=\"wp-image-2825\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-1024x444.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-300x130.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-768x333.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-1536x666.png 1536w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-1.57.43-PM-2048x888.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">TouchDesigner has an OSCin node that listens for the stream coming out of Isadora. Using a little bit of python, a camera in touch allows its xRotation, yRotation, and focal length to be controlled by the values coming from the OSCin. The image below shows some rounding I added to the code to make the values a little smoother\/consistent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"485\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-1024x485.png\" alt=\"\" class=\"wp-image-2827\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-1024x485.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-300x142.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-768x364.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-1536x727.png 1536w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.02.35-PM-2048x970.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">TouchDesigner works by allowing you to set up a 3D environment and feeding the various elements into a Render node. Each 3D file, the camera, and lighting are connected to the renderer which then sends that image to an out which can be viewed in a separate window.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.43-PM-1024x528.png\" alt=\"\" class=\"wp-image-2828\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.43-PM-1024x528.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.43-PM-300x155.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.43-PM-768x396.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.43-PM.png 1314w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"746\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.17-PM-1-1024x746.png\" alt=\"\" class=\"wp-image-2829\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.17-PM-1-1024x746.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.17-PM-1-300x219.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.17-PM-1-768x560.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-06-at-2.01.17-PM-1.png 1498w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>My overall goal for this final project is to create a video game like &#8220;shooting&#8221; environment that utilizes leap motion controls and a parallax effect on the display. Cycle 1 was focused on creating the environment in which the &#8220;game&#8221; will take place and building out a system that drives the head tracking parallax effect. [&hellip;]<\/p>\n","protected":false},"author":61,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[],"class_list":["post-2824","post","type-post","status-publish","format-standard","hentry","category-nick-romanowski"],"_links":{"self":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/users\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2824"}],"version-history":[{"count":1,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2824\/revisions"}],"predecessor-version":[{"id":2830,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2824\/revisions\/2830"}],"wp:attachment":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}