{"id":2018,"date":"2017-05-10T14:46:18","date_gmt":"2017-05-10T05:46:18","guid":{"rendered":"http:\/\/www.codedojo.com\/?p=2018"},"modified":"2017-05-10T15:50:46","modified_gmt":"2017-05-10T06:50:46","slug":"playing-with-the-hololens","status":"publish","type":"post","link":"https:\/\/www.codedojo.com\/?p=2018","title":{"rendered":"Playing with the HoloLens"},"content":{"rendered":"<p>At an extremely spendy price of $3,000 I picked up a HoloLens. \u00a0Why so much more than a Rift or Vive?<\/p>\n<p>Well, the biggest difference is instead of tethering to your computer, this thing IS a computer+kinect small enough to wear.<\/p>\n<div id=\"attachment_2022\" style=\"width: 635px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2022\" class=\"wp-image-2022 size-large\" src=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1-1024x683.jpg\" alt=\"\" width=\"625\" height=\"417\" srcset=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1-1024x683.jpg 1024w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1-300x200.jpg 300w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1-768x513.jpg 768w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1-624x416.jpg 624w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_1.jpg 1500w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><p id=\"caption-attachment-2022\" class=\"wp-caption-text\">Welcome to the world of mixed reality! \u00a0I hope I&#8217;m keeping up with my jargon correctly<\/p><\/div>\n<h1>Mobile VR is trash, HoloLens is different<\/h1>\n<p>The\u00a0current mobile VR solutions (GearVR, Google Daydream, etc) are garbage, you know why? <strong>They can&#8217;t track positional movement<\/strong>. \u00a0Take a step sideways or forward &#8211; in the game nothing happens.<\/p>\n<p>This means there is an entire category of games they won&#8217;t work with &#8211; basically nothing where you move around a room naturally.<\/p>\n<p><strong>HoloLens is different<\/strong> (well, it&#8217;s AR\/MR and not VR for one, but that&#8217;s not the point here), it\u00a0can fully track position\/rotation\/acceleration, you can even do something a Vive can&#8217;t &#8211; <strong>you can walk BETWEEN ROOMS<\/strong> and it knows.<\/p>\n<p>Without any complicated setup, you\u00a0can plop this\u00a0on someone&#8217;s head and it just works, anywhere. \u00a0Oh, and it&#8217;s fast. \u00a0As for tracking your hand.. well, not so fast, we&#8217;ll get into that later.<\/p>\n<div id=\"attachment_2019\" style=\"width: 810px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2019\" class=\"wp-image-2019 size-full\" src=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_3.jpg\" alt=\"\" width=\"800\" height=\"948\" srcset=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_3.jpg 800w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_3-253x300.jpg 253w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_3-768x910.jpg 768w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_3-624x739.jpg 624w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-2019\" class=\"wp-caption-text\">Akiko knows kung-fu<\/p><\/div>\n<p>It uses multiple cameras\u00a0(normal and infrared) to\u00a0figure out\u00a0where your walls, table, and chairs \u00a0are &#8211; and is capable of knowing exactly where your head is located in space.<\/p>\n<p>It&#8217;s quick enough to feel nearly\u00a0as smooth as say, a Vive. I think it&#8217;s using acceleration\/rotation sensors to do accurate predictions while constantly correcting things with the camera based space-mapping but it works well despite the occasional glitch.<\/p>\n<p>I didn&#8217;t expect it to track outside (it must use walls to calculate head position, right?) but it worked fine! I guess it&#8217;s scanning the ground or something.<\/p>\n<h1>Cool, but here are the problems<\/h1>\n<p>At\u00a01268&#215;720 resolution per eye, the objects you&#8217;ll see overlaid look great\u00a0&#8211; but that&#8217;s mostly because the DPI (dots per inch) are so tiny.<\/p>\n<p>If you hold a piece of A4 paper at arm&#8217;s length you&#8217;ll get an idea of how small the rendering area is.<\/p>\n<div id=\"attachment_2023\" style=\"width: 1010px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2023\" class=\"wp-image-2023 size-full\" src=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_2.jpg\" alt=\"\" width=\"1000\" height=\"667\" srcset=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_2.jpg 1000w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_2-300x200.jpg 300w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_2-768x512.jpg 768w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_2-624x416.jpg 624w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><p id=\"caption-attachment-2023\" class=\"wp-caption-text\">The actual screen overlay area is tiny<\/p><\/div>\n<p>This means when a\u00a0spaceship tries to run away in a game, it just gets cut-off unless you turn your head to follow it. \u00a0A workaround that games are using is they will pop up an arrow &#8220;&lt;&#8211; It&#8217;s over there!&#8221; to help you find it again. \u00a0Not great, but hey.<\/p>\n<p>It also isn&#8217;t able to overlay graphics too close, like if you set your GL near plane too far away. \u00a0You can see the image break apart in the gif below.<\/p>\n<div id=\"attachment_2024\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_park.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2024\" class=\"wp-image-2024 size-medium\" src=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_park-300x184.gif\" alt=\"\" width=\"300\" height=\"184\" srcset=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_park-300x184.gif 300w, https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_park-624x383.gif 624w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2024\" class=\"wp-caption-text\">Click this gif to view it in action. Don&#8217;t blame me if you get sick<\/p><\/div>\n<div id=\"attachment_2020\" style=\"width: 494px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2020\" class=\"wp-image-2020 size-full\" src=\"https:\/\/www.codedojo.com\/wp-content\/uploads\/2017\/05\/hololens_lag.gif\" alt=\"\" width=\"484\" height=\"272\" \/><p id=\"caption-attachment-2020\" class=\"wp-caption-text\">Kinect delay is back, baby<\/p><\/div>\n<p>It can sort of track one of your hands &#8211; but it&#8217;s too laggy to be of much use for anything. \u00a0 It&#8217;s a better experience to move your head around to put a centered crosshair on an option, then use the included remote&#8217;s satisfying clicker to select something.<\/p>\n<p><strong>Random free idea that makes no sense due to the hardware requirements<\/strong>: Use with a Vive hand control to make a spray paint simulator so you can tag up your house.<\/p>\n<h1>Seth&#8217;s verdict<\/h1>\n<h3>The good:<\/h3>\n<ul>\n<li>The wall mapping and fast, accurate positional tracking is amazing. \u00a0This is a hard nut to crack and probably the most impressive thing about\u00a0the entire HoloLens project<\/li>\n<li>Totally self contained unit makes it easier to show people. \u00a0I mean, good luck bringing your Vive to <a href=\"https:\/\/www.facebook.com\/KyotoIndieMeetup\/\">Kyoto Indie Meetup<\/a><\/li>\n<li>It barely works, but it can sort of do smart occlusion around physical objects (if a real chair is in front of the hologram, it won&#8217;t render the hologram there) &#8211; its 3d scanning is too rough but .. it&#8217;s still tantalizing us\u00a0with what the future will hold<\/li>\n<\/ul>\n<h3>The bad:<\/h3>\n<ul>\n<li>Costly, it&#8217;s squarely in &#8220;developers only&#8221; territory right now. It&#8217;s no surprise it&#8217;s only sold <a href=\"http:\/\/www.theinquirer.net\/inquirer\/news\/3003380\/microsoft-hololens-firm-admits-sales-figures-are-in-the-thousands\">&#8220;thousands&#8221;<\/a><\/li>\n<li>The tiny video overlay area is very limiting<\/li>\n<li>Laggy-ass gesture controls are bad for most gaming<\/li>\n<li>Can&#8217;t walk up close enough to objects,\u00a0they disappear<\/li>\n<li>UE4 doesn&#8217;t support HoloLens as an export target, I don&#8217;t think there is a way to build it without fighting with Microsoft&#8217;s hacked up version of UE4 they did a while back, no thanks<\/li>\n<\/ul>\n<p>There are <a href=\"http:\/\/www.thurrott.com\/hardware\/90780\/microsoft-accelerates-hololens-v3-development-sidesteps-v2\">rumors<\/a> that Microsoft has canceled the 2nd generation HoloLens and are skipping straight to a 3rd gen version slated for release in 2019.\u00a0Interesting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At an extremely spendy price of $3,000 I picked up a HoloLens. \u00a0Why so much more than a Rift or Vive? Well, the biggest difference is instead of tethering to your computer, this thing IS a computer+kinect small enough to wear. Mobile VR is trash, HoloLens is different The\u00a0current mobile VR solutions (GearVR, Google Daydream, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,19],"tags":[],"class_list":["post-2018","post","type-post","status-publish","format-standard","hentry","category-development","category-reviews"],"_links":{"self":[{"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/posts\/2018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2018"}],"version-history":[{"count":10,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/posts\/2018\/revisions"}],"predecessor-version":[{"id":2034,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=\/wp\/v2\/posts\/2018\/revisions\/2034"}],"wp:attachment":[{"href":"https:\/\/www.codedojo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codedojo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}