{"id":134,"date":"2016-11-14T14:43:59","date_gmt":"2016-11-14T19:43:59","guid":{"rendered":"http:\/\/www.talariavr.com\/blog\/?p=134"},"modified":"2016-11-29T21:23:47","modified_gmt":"2016-11-30T02:23:47","slug":"steamvr-tracking-license-day-3","status":"publish","type":"post","link":"http:\/\/www.talariavr.com\/blog\/steamvr-tracking-license-day-3\/","title":{"rendered":"SteamVR Tracking License Day 3"},"content":{"rendered":"<p><span style=\"font-size: 18pt; font-family: helvetica, arial, sans-serif;\"><strong>Render Model<\/strong><\/span><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\">In our third and final day, we started out with creating our own render models for the reference objects given to us in our hardware development kit. \u00a0Synapse taught the course using open-source software, namely <a href=\"https:\/\/www.blender.org\/\"><span style=\"text-decoration: underline; color: #00ccff;\">Blender<\/span><\/a>. \u00a0After successfully modelling\/downloading our render models (which included\u00a0Thor&#8217;s hammer, a longsword, a Portal gun, and more), we tossed them into our SteamVR render models folder. \u00a0If you want to change up some render models yourself, take a look at the format of them. \u00a0Should be under:<br \/>\n<\/span><\/span><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\">Steam\\steamapps\\common\\SteamVR\\resources\\rendermodels\\<br \/>\nAll it needs is an obj (same name as the folder) with forward pointing in the -z, a material file, and a texture file. \u00a0That&#8217;s the format for any SteamVR Tracked object (so third party controllers like Oculus Touch may not work under that format). \u00a0I&#8217;m not sure if this will throw any errors when trying to launch experiences, so it might be smart to make a backup if you plan on messing with any of these files!<br \/>\n<\/span><span style=\"font-size: 18pt;\"><strong><br \/>\nPractice<br \/>\n<\/strong><\/span><\/span><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif; font-size: 12pt;\">So now Synapse wanted to be sure that we have what it takes to design tracked objects, and fix any problems that may arise. \u00a0We were given various broken situations (ie. IMU axes inverted, sensors reporting incorrect positions, incorrect IDs, etc.), and then troubleshot them into correction. \u00a0These activities were done on &#8220;UFOs&#8221; provided by Synapse (not included in our Hardware Development Kit). \u00a0They were pretty much versatile tracked objects that we would select which sensors were active and then play around with its JSON file. \u00a0After successfully troubleshooting the UFO problems, we spent some time experimented with activating various sensors on the UFO and observing its effect on tracking. \u00a0 It was pretty cool &#8211; we limited sensors to be only colinear or coplanar, and were able to experience pose rotation and translation error in real-time (was most evident when disabling the IMU)! \u00a0Always cool to see theory come out in application.<\/span><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\"><br \/>\n<span style=\"font-size: 18pt;\"><br \/>\n<\/span><span style=\"font-size: 18pt;\"><strong>Architecture<\/strong><\/span><br \/>\n<\/span><\/span><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\">We then went over the electrical architecture and firmware technicalities. \u00a0There&#8217;s not really much that I can say here, other than reiterate that Valve has made the decision to have Synapse lock down the firmware (and by extension a large amount of the bill of materials) to ensure a standard for the SteamVR Tracking ecosystem. \u00a0If you want more info, sign up to be a licensee!<\/span><span style=\"font-size: 12pt;\"><br \/>\n<span style=\"font-size: 18pt;\"><br \/>\n<\/span><span style=\"font-size: 18pt;\"><strong>Putting it all Together<\/strong><\/span><\/span><\/span><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\">And so we&#8217;ve finally got it all. \u00a0The sensor placement. \u00a0The visualization and optimization. \u00a0<em>The<\/em> JSON file. \u00a0The Watchman. \u00a0The render model. \u00a0Troubleshooting and low-level understanding. \u00a0We have the power to create a motion-tracked object with sub-millimeter accuracy in virtual reality. \u00a0<strong><em>Bring it on.<\/em><\/strong><\/span><\/span><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\">With still an hour and half left in the day, and with training formally over, one of our colleagues was eager to go through the full process (and we were happy to join in the fun). \u00a0Ciuffo, the engineer from Synapse <\/span><\/span><span style=\"font-family: helvetica, arial, sans-serif; font-size: 12pt;\">who was our amazing primary teacher for the course, ran off to his office and returned with an object that had plenty of variances in geometry to track: a Nerf gun (Photo credit again goes to <span style=\"text-decoration: underline; color: #00ccff;\"><a style=\"color: #00ccff; text-decoration: underline;\" href=\"http:\/\/www.facebook.com\/lightweaveco\">Michael McClenaghan<\/a><\/span>).<\/span><\/p>\n<p><a href=\"http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-138\" src=\"http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman-300x225.jpg\" alt=\"nerf-rifle-watchman\" width=\"300\" height=\"225\" srcset=\"http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman-300x225.jpg 300w, http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman-768x576.jpg 768w, http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman-360x270.jpg 360w, http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Rifle-Watchman.jpg 960w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><span style=\"font-family: helvetica, arial, sans-serif; font-size: 12pt;\">Michael was on hardware duty &#8211; he applied and wired up sensors, took physical measurements, and prepared the JSON. \u00a0You can read more about his experience on that\u00a0<a href=\"https:\/\/www.reddit.com\/r\/Vive\/comments\/5cjg5c\/today_i_completed_the_steamvr_tracking_course_and\/\"><span style=\"text-decoration: underline;\"><span style=\"color: #00ccff; text-decoration: underline;\">here<\/span><\/span><\/a>. \u00a0Our colleague Jack then assembled the render model, ensuring its orientation would match our physical device. \u00a0I was pretty eager to explore next-steps with this process, so I hopped into <a href=\"https:\/\/unity3d.com\/\"><span style=\"text-decoration: underline;\"><span style=\"color: #00ccff; text-decoration: underline;\">Unity<\/span><\/span><\/a>\u00a0and began preparing a scene. \u00a0Once our hour and a half was up, we had a system with impressively stable tracking (especially considering only 5 sensors +IMU were active), a properly aligned\u00a0render model, and a successful &#8220;game&#8221; in Unity.<\/span><\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-134-1\" width=\"640\" height=\"368\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Gun-Unity.mp4?_=1\" \/><a href=\"http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Gun-Unity.mp4\">http:\/\/www.talariavr.com\/blog\/wp-content\/uploads\/2016\/11\/Nerf-Gun-Unity.mp4<\/a><\/video><\/div>\n<p><span style=\"font-family: helvetica, arial, sans-serif;\"><span style=\"font-size: 12pt;\"><br \/>\nNeedless to say, we were proud :) \u00a0Just goes to show how efficient Synapse and Valve have made the prototyping process. \u00a0(Also, sorry about the slow-motion; we accidentally recorded high-speed, but I think adds a slight charm to it).<\/span><br \/>\n<span style=\"font-size: 18pt;\"><br \/>\n<\/span><span style=\"font-size: 24px;\"><b>Farewell Synapse<\/b><\/span><\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: helvetica, arial, sans-serif;\">And thus concludes the epic journey that was SteamVR Tracking training. \u00a0To say I had an amazing time is an understatement, and I think my colleagues from the course would readily agree. \u00a0Synapse runs a great and creative environment, and I do hope I get to work with them again in the future. \u00a0Cheers, Synapse &#8211; keep up the amazing structure and work you have going for you.<\/span><\/p>\n<p><span style=\"font-size: 12pt; font-family: helvetica, arial, sans-serif;\">If any of you from the community want to reach out, we&#8217;ve got\u00a0<a style=\"color: #00ccff; text-decoration: underline;\" href=\"http:\/\/www.talariavr.com\/blog\/steamvr-tracking-license\/#respond\">comments<\/a>\u00a0and we&#8217;ve got email (<span style=\"text-decoration: underline;\"><span style=\"color: #00ccff;\"><a style=\"color: #00ccff; text-decoration: underline;\" href=\"mailto:blog@talariavr.com\">blog@talariavr.com<\/a><\/span><\/span>) &#8211; feel free to hit us up! \u00a0I&#8217;ll be summarizing the past three days in my next post, as well as answering any community questions that have rolled in since the training began. \u00a0Keeping this blog is a neat and new experience for me, and I hope I&#8217;m providing you all with information that&#8217;s valuable to you.\u00a0 &#8216;Til next time!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Render Model In our third and final day, we started out with creating our own render models for the reference objects given to us in our hardware development kit. \u00a0Synapse taught the course using open-source software, namely Blender. \u00a0After successfully modelling\/downloading our render models (which included\u00a0Thor&#8217;s hammer, a longsword, a Portal gun, and more), we tossed them into our SteamVR render models folder. \u00a0If you want to change up some render models yourself, take a look at the format of&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"http:\/\/www.talariavr.com\/blog\/steamvr-tracking-license-day-3\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,6,7],"tags":[],"class_list":["post-134","post","type-post","status-publish","format-standard","hentry","category-hardware","category-steamvr-tracking","category-steamvr-tracking-license-steamvr-tracking"],"_links":{"self":[{"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/posts\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/comments?post=134"}],"version-history":[{"count":13,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/posts\/134\/revisions"}],"predecessor-version":[{"id":149,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/posts\/134\/revisions\/149"}],"wp:attachment":[{"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/categories?post=134"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.talariavr.com\/blog\/wp-json\/wp\/v2\/tags?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}