<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Perficient Digital Labs - Medium]]></title>
        <description><![CDATA[We serve as digital craftsmen. We combine emerging technology, creativity, and exceptional usability to build beautiful products and unique experiences. https://perficientdigitallabs.com - Medium]]></description>
        <link>https://medium.com/truth-labs?source=rss----29f24217257---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Perficient Digital Labs - Medium</title>
            <link>https://medium.com/truth-labs?source=rss----29f24217257---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 23 Sep 2026 03:32:28 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/truth-labs" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[ChicagoAR: Old Times & New Tech]]></title>
            <link>https://medium.com/truth-labs/chicagoar-old-times-new-tech-a5c750eed29c?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/a5c750eed29c</guid>
            <category><![CDATA[emerging-technology]]></category>
            <category><![CDATA[chicago]]></category>
            <category><![CDATA[augmented-reality]]></category>
            <category><![CDATA[mixed-reality]]></category>
            <category><![CDATA[mobile]]></category>
            <dc:creator><![CDATA[Conner Hasbrouck]]></dc:creator>
            <pubDate>Wed, 05 Feb 2020 15:47:23 GMT</pubDate>
            <atom:updated>2020-02-05T15:47:23.329Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FjiLE9RG6qDw%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fwatch%3Fv%3DjiLE9RG6qDw&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.ytimg.com%2Fvi%2FjiLE9RG6qDw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2ab630579801407ba249f9a864c4c783/href">https://medium.com/media/2ab630579801407ba249f9a864c4c783/href</a></iframe><p>Time changes everything — fashion, music, trends, landscapes. Take Chicago for instance. Known for its blues, world-famous hot dogs and architecture, Chicago has evolved dramatically over the years.</p><p>Yet, almost any night of the week you can head to <a href="https://en.wikipedia.org/wiki/Kingston_Mines_%28blues_club%29">Kingston Mines</a> and experience those historic blues. Likewise, you can walk a few blocks and find yourself a <a href="https://en.wikipedia.org/wiki/Chicago-style_hot_dog">Chicago Dog</a> about anywhere in the city. On the contrary, it’s often difficult to visualize the changes in Chicago&#39;s architecture over time. Historic buildings are renovated, new towers alter the skyline and bricked roads are covered up in favor of pavement. That&#39;s precisely why we at <a href="http://perficientdigitallabs.com">Perficient Digital Labs</a> created ChicagoAR.</p><h3>Old Meets New</h3><p>ChicagoAR is an augmented reality app that allows anyone with a smartphone to view Chicago&#39;s past. Like opening up a wormhole, ChicagoAR utilizes augmented reality and data anchors (the white signs seen in the video above) to superimpose historical photography upon its modern landscape in life-size proportion.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2m3EzUpETCkDTGejBjXEoQ.jpeg" /><figcaption>Before &amp; After View of ChicagoAR at Union Station</figcaption></figure><p>Each AR experience is location specific and showcases a different era in Chicago&#39;s history. Once augmented reality is superimposed, the user can move freely, view the scenery from any angle, or even approach the life-sized augmented projection to inspect it up close (just be careful of cars).</p><h3>A Look Behind the Curtain</h3><p>For those interested in the technology behind ChicagoAR, check out our other articles where we breakdown our design/development approach and detail the tech stack.</p><p><a href="https://blog.truthlabs.com/image-recognition-with-apples-arkit-showcasing-it-s-capabilities-3ba460b5898f">ARKit Image Recognition: Testing Bounds and Capabilities</a></p><p><a href="https://blog.truthlabs.com/chicago-cta-augmented-reality-sign-detection-visualization-bus-data-application-design-7f8fe2f2f6b7">CTA-AR: Enhancing Chicago public transit with Augmented reality</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9MFAf_pl06htEdZlEElSaQ.png" /><figcaption>CTA-AR: An Augmented Reality Transit App</figcaption></figure><p><a href="https://medium.com/u/48e9a73243f1?source=post_page-----ead91ff9844c----------------------"><em>Conner Hasbrouck</em></a><em> is an Engineer &amp; Designer at </em><a href="https://perficientdigitallabs.com/"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs uses Emerging Technology</em></a><em> to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com/"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a5c750eed29c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/chicagoar-old-times-new-tech-a5c750eed29c">ChicagoAR: Old Times &amp; New Tech</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[It fits like a glove: The UX of hardware prototyping]]></title>
            <link>https://medium.com/truth-labs/it-fits-like-a-glove-the-ux-of-hardware-prototyping-1ffb6b1cc1f7?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/1ffb6b1cc1f7</guid>
            <category><![CDATA[process]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[electronic-engineering]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[prototyping]]></category>
            <dc:creator><![CDATA[Dan Thompson]]></dc:creator>
            <pubDate>Tue, 27 Aug 2019 19:43:58 GMT</pubDate>
            <atom:updated>2019-10-21T16:59:47.271Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*BpZ6Z-zWOo7UywwkuRvv7g.gif" /></figure><blockquote>Want to skip to the video? <a href="#7e41">It’s here</a>.</blockquote><p>It seemed simple at first. The idea was to make an Electroluminescent Light-based signaling system. Some switches, some lights, some wire and we’d be done, right?</p><p>As usual, we challenged ourselves to produce a <strong>practical</strong> wearable product. What can we produce that’s new, interesting, and useful? A common scenario: Short time spans and high demands.</p><p>Even for internal exercises we need to flesh out the concept. <a href="https://blog.truthlabs.com/asking-the-right-questions-65bc30fc61cb">We went through the process that we go through whenever we’re presented with a new challenge</a>: Who is it for? How will it be used? What is it supposed to do? What problem will it solve?</p><p><a href="https://blog.truthlabs.com/asking-the-right-questions-65bc30fc61cb">Asking the right questions: How UX Design Discovery Works</a></p><p>For software, there are many tools and techniques for user testing and experience validation. It’s trivial to collect data points on a user’s behavior, correlate that with other sources, and build a pretty report on the recommended course of action.</p><p>It’s not as simple for hardware. Each interaction from every user will be different than another to some degree. It’s the nature of the physical world. Additionally, in the prototyping stage, it’s difficult to iterate as quickly as you can with software. It’s much easier to swap out some lines of code than a knob or switch. The decisions have to be made, primarily, off of qualitative data.</p><p>Let’s walk through our process, from concept to prototype for this product…</p><h3>🧠 Round One: Concepts</h3><p>Our original idea was to make a signaling system for bicyclists. That meant the controller needed to be lightweight, easy to operate and unobtrusive. The indicators needed to be simple, clear, and useful to both the rider and the people they share the road with. The whole system needs to be portable and adaptable to any bike of any size.</p><blockquote><strong>An insight:</strong> As silly as it might look or feel, “<a href="https://pdfs.semanticscholar.org/b7d3/b21e7342ebd2009c431f6effe6fec52b2ceb.pdf">Bodystorming</a>” is a great way to prototype physical interactions. <a href="https://docs.microsoft.com/en-us/windows/mixed-reality/case-study-expanding-the-design-process-for-mixed-reality">Microsoft has some great insight on this process.</a> Obviously, it’s imperative that you <a href="https://medium.com/microsoft-design/prototyping-empathy-1bdb08e3260c">keep the user top-of-mind throughout the entire design process</a>.</blockquote><p>Our initial thoughts for the controller revolved around attaching something to the brake handles. But we had concerns about the portability and obtrusiveness of that installation. What about a hand mounted system? <strong>What if the controls were your fingers?</strong></p><figure><img alt="Trying out the EL lights glove controller" src="https://cdn-images-1.medium.com/max/1024/1*H_jWgZrV-rWHKelbfMlvKw.png" /></figure><p>Always a <a href="https://dribbble.com/shots/1993611-Truth-Labs-Site-Our-Team-1-of-2">fan of the Nintendo Power Glove</a>, it served as our original inspiration. As something more practical for a bicyclist, we chose a generic ‘<a href="https://amzn.to/327dT3X">cycling glove</a>’ off of Amazon and went with it.</p><p>For the indicators, we wanted to use <a href="https://amzn.to/2ZAh8iR">Electroluminescent Paint</a> to create something like what you see in ‘<a href="https://amzn.to/31XBy6S">festival masks</a>’. However, sourcing the ink in time and at a reasonable cost was difficult, so we went with the old standby <a href="https://amzn.to/324CI0f">EL tape</a>.</p><p>We settled on <a href="https://amzn.to/2Zpfznz">a backpack</a> as a mechanism to mount the tape to, and as a container for the various electronics needed to run the system. It seemed feasible to us, that were this productionized, it could be reduced to a size that could be placed in/on a real backpack.</p><p>To control the EL elements, we needed to use a <a href="https://amzn.to/2ZlorQ4">relay board</a>. This allows us to isolate the low-voltage DC that controlled the arduino from the High Voltage AC that powered the lights.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bvXjkfxR5TJETzDqQnZAmA.png" /><figcaption>A <a href="https://fritzing.org/home/">Fritzing</a> sketch for the final <a href="https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide?view=all">BLE-enabled</a> relay controller</figcaption></figure><h3>⚙️ Round Two: Prototyping the prototype</h3><p>The glove fit well and offered many different methods to attach complementary components to control the lights. We started with <a href="https://amzn.to/2ZkCdlZ">magnetic switches</a>, but they were too bulky. Alternative ideas revolved around ditching the glove and switching to some type of <a href="https://amzn.to/2KVDjMe">inertia tracking device</a> or <a href="https://amzn.to/2ZrmtwK">vibration sensors</a> connected to various places on the bicycle. However, nothing was as simple and direct as manual manipulation.</p><p>We settled on buttons under the fingers. There’s several <a href="https://amzn.to/2ZrT7ue">different</a> <a href="https://amzn.to/328iIds">types of switches</a> that we could have used, and even <a href="https://amzn.to/2ZsNvzV">more models</a> of each of the different types. But through testing we found small, simple <a href="https://amzn.to/325wTQc">momentary push-button</a> switches to be the easiest and most reliable option.</p><blockquote><strong>A discovery:</strong> Grab a pen in the same way you would grab a bike’s handlebar. You can feel that the majority of the pressure isn’t under your fingertips as you might assume at first. It’s actually under your finger&#39;s first and second set of joints. We needed to mount the buttons up towards the middle of the glove’s fingers to ensure maximum pressure and control on those buttons. Additionally, we mounted the buttons on the inside of the gloves to allow for a better feel of when the buttons were being pressed.</blockquote><p>Well, that’s it. Press some buttons, turn on some lights… cool, I guess? Not yet, we needed more…</p><h3>🔥 The Pivot: What’s hot in the streets?</h3><p>It was around this time that Chicago launched their <a href="https://www.chicago.gov/city/en/depts/cdot/supp_info/escooter-share-pilot-project.html">e-scooter pilot</a>. And with that came all the controversy and intrigue about the new two-wheeled menaces cluttering our sidewalks and bike paths. The scooters themselves are IoT devices. Tracked, controlled, and activated through various combinations of bluetooth and cellular communication.</p><blockquote><strong>A discovery:</strong> Bicyclists already have an established <a href="https://activetrans.org/blog/ride-safe-ride-smart">hand signal system</a> to indicate turning, stopping, etc… Scooters, on the other hand, must be controlled by two hands. The slightest accidental movement at speed will send you tumbling down into the asphalt. Our single-handed indicator system could solve two problems at once.</blockquote><p>For this to be timely, we pivoted to envisioning this as a scooter indicator system. Additionally, we needed to spice it up with some Bluetooth Low Energy communication.</p><h3>🥶 Feeling a little blue</h3><p>Wiring directly from the glove to the backpack <em>worked</em>, but it wasn’t very cool. Luckily, we had some spare BLE-enabled devices laying around and decided to put them to use…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Pva91di3-xu_uwW1KpRYVA.png" /><figcaption>A <a href="https://fritzing.org/home/">Fritzing</a> sketch for a <a href="https://redbear.cc/product/retired/blend-micro.html">BLE-enabled</a> glove peripheral</figcaption></figure><p>After laying out the prototype for the BLE interface, we quickly realized a key opportunity to enhance the physical UX for the rider. Instead of <em>pressing</em> the buttons to turn on the signals, what if the rider triggered the signals by<strong> lifting a finger?</strong> This would <em>automatically</em> turn on the brake light whenever pressure was released from the throttle.</p><p>To test this hypothesis, we included a switch on the protoboard which changed the switch values from NO (normally open) to NC (normally closed) and vice-versa.</p><blockquote><strong>A discovery:</strong> In code, you can implement an A/B test with a simple if statement. However, in hardware it’s a little more difficult. Consider ways to test implementations with spare input or output mechanisms that affect the behavior of the device. Obviously, you don’t want to introduce any variables that could affect the test.</blockquote><iframe src="https://www.instagram.com/p/BytIs0Tgclm/embed/?cr=1&amp;amp;rd=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.instagram.com" width="658" height="864" frameborder="0" scrolling="no"><a href="https://medium.com/media/89d817470d698f4c79ad8f56e2498bd8/href">https://medium.com/media/89d817470d698f4c79ad8f56e2498bd8/href</a></iframe><p>A second discovery was that if the rider is riding with the indicators on their back, it’s hard to validate if they’re working correctly. A new technique was introduced to our repertoire: <strong>Audio debugging. </strong>We placed a <a href="https://amzn.to/2NN9mjp">piezo buzzer</a> on the protoboard which would <a href="https://github.com/bhagman/Tone">change it’s sound</a> depending on which buttons were being pressed, if any.</p><h3>🛴💨 Let’s Roll!</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.youtube.com%2Fembed%2FXF2oOLW7Qtw&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttp%2Fwww.youtube.com%2Fwatch%3Fv%3DXF2oOLW7Qtw&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttp%2Fi.ytimg.com%2Fvi%2FXF2oOLW7Qtw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/03d3b48d84b4c150c6e4efab514cf58c/href">https://medium.com/media/03d3b48d84b4c150c6e4efab514cf58c/href</a></iframe><p><a href="https://medium.com/@_DANTHOMPSON"><em>Dan Thompson </em></a><em>is Director of Emerging Experiences at </em><a href="https://perficientdigitallabs.com/"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com/"><em>here</em></a><em>.</em></p><p>In an experiment, most links on this post are Amazon Associate links. As an Amazon Associate I earn from qualifying purchases from those paid links.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1ffb6b1cc1f7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/it-fits-like-a-glove-the-ux-of-hardware-prototyping-1ffb6b1cc1f7">It fits like a glove: The UX of hardware prototyping</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Breaking Augmented Reality out of the Screen]]></title>
            <link>https://medium.com/truth-labs/breaking-augmented-reality-out-of-the-screen-lightform-projection-mapping-ead91ff9844c?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/ead91ff9844c</guid>
            <category><![CDATA[computer-vision]]></category>
            <category><![CDATA[projection-mapping]]></category>
            <category><![CDATA[video-mapping]]></category>
            <category><![CDATA[augmented-reality]]></category>
            <category><![CDATA[lightform]]></category>
            <dc:creator><![CDATA[Conner Hasbrouck]]></dc:creator>
            <pubDate>Wed, 07 Aug 2019 15:04:04 GMT</pubDate>
            <atom:updated>2020-02-06T19:23:25.305Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F348892998%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F348892998&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttp%2Fi.vimeocdn.com%2Fvideo%2F799666036_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/64cf9ab61dec1b298f6c0895207e9f17/href">https://medium.com/media/64cf9ab61dec1b298f6c0895207e9f17/href</a></iframe><p>If you&#39;ve watched any tech conferences in the last few years, one thing is very clear: companies and their communities are excited about augmented/mixed reality.</p><p>Apple has dedicated time in each of its last three <a href="https://developer.apple.com/videos/play/wwdc2019/607/">WWDC conferences</a> to talk about its ARkit technology. Microsoft is leading the wearable charge and soon releasing the second iteration of its <a href="https://www.microsoft.com/en-us/hololens">Hololens headset</a>. Startups like <a href="https://www.magicleap.com/">Magic Leap </a>have penetrated the AR market and tech moguls like Facebook are following suit and releasing their own tools like <a href="https://sparkar.facebook.com/ar-studio/">Spark AR</a>.</p><p>Despite all this attention and talk of innovation, <em>something about AR technologies just hasn’t clicked yet.</em> Yes, we have Snapchat filters and apps like Pokemon Go and IKEA Place. But where is the futuristic society where AR technology is helping us navigate to our destination or shop at the grocery store? Why is AR not assisting us with our work and guiding us through the tasks of everyday life?</p><p>Simply put, the medium of traditional AR experiences are still lacking.</p><h3>The Problems</h3><p>The Hololens was a groundbreaking Mixed Reality headset. Unfortunately, it’s also a large and clunky piece of hardware. It has a limited viewing area and an expensive price tag. It’s not a mainstream device, and Microsoft is acknowledging that by positioning the Hololens 2 even further into the professional/corporate market.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*mpn29TmJOwnlxMGXUkRMqw.png" /><figcaption>Multiple Hololens 2 devices being used in a professional setting.</figcaption></figure><p>ARKit and ARcore have made significant capability jumps since their announcement, but they still limit your AR experiences to a phone/tablet. Accessible? Yes. But limited in input variance and computing power.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wAu0QFcB6i1vsqoaTiClTw.jpeg" /><figcaption>An Example ARKit App</figcaption></figure><p>The magic of the Hololens and Magic Leap is that you are surrounded by Mixed Reality. Mobile device screens limit the experience to small windows into the Augmented Reality world.</p><p>So where does that leave us? Well, we could just wait another ten years for the tech to advance. Or, we could create Augmented/Mixed Reality experiences in another way…</p><p><a href="https://blog.truthlabs.com/ar-vr-mr-a-brief-opinionated-overview-of-the-major-platforms-14f2c59aa3b2">AR, VR, &amp; MR: A brief, opinionated, overview of the major platforms</a></p><h3>A Different Take on Augmented Reality</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F348892998%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F348892998&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttp%2Fi.vimeocdn.com%2Fvideo%2F799666036_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/64cf9ab61dec1b298f6c0895207e9f17/href">https://medium.com/media/64cf9ab61dec1b298f6c0895207e9f17/href</a></iframe><p>This isn’t CGI or something on a screen. It’s a real shoe, changing color in real-time, at the press of a projected button. It’s augmented/mixed reality in an entirely different format.</p><p>Here’s what that shoe looks like under normal lighting conditions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*l85NBorGg_U6q2I-m1wV0g.jpeg" /></figure><p>Another installation we put together utilizes the geometry of an exercise ball to create a unique 3d data visualization:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F352496321%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F352496321&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F804397417_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/c4fc0029730bfedfe7aad805cfba8e0f/href">https://medium.com/media/c4fc0029730bfedfe7aad805cfba8e0f/href</a></iframe><p>So how is all of this possible? With projection mapping and computer vision.</p><h3>From Screen to Projection</h3><p>In this context, projection mapping is the process of turning a three-dimensional object into a display surface for video content. To accomplish this, you need some way to analyze the bounds and depth of an object. With this information, you can project video content solely to the desired surface while also accounting for depth variance. After all, we are working with 3D objects. Not a flat, 2D, forward-facing plane. If unaccounted for, any video projection would become skewed when projected at an object with variant depth.</p><p>Until recently this has not been an easy task. Its required advanced technical knowledge and some pretty expensive equipment. However, affordable tools are beginning to emerge in the market to simplify this process.</p><p>One such tool that we utilize is <a href="https://medium.com/u/9c2c05de78de">Lightform</a>. This piece of hardware streamlines the depth analyzation process and is a rather affordable solution. Another beautiful thing about this tool is that is integrated with most market projectors (with HDMI input) and ultimately removes the needs for specialized video mapping projection equipment. Here’s what our setup looked like:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KuEbjun7KR4gBY8qvNHF5A.jpeg" /><figcaption>BENQ projector strapped to a tripod tray. Lightform mounted on top of the projector.</figcaption></figure><h3>How is this Better?</h3><p>Compared to AR experiences on a headset or phone, projection mapping exists further along <a href="https://blog.truthlabs.com/ar-vr-mr-a-brief-opinionated-overview-of-the-major-platforms-14f2c59aa3b2#31a9">the spectrum of mixed reality</a>. The illusion it creates exists in the real world, rather than a screen. This opens up viewership to anyone present, rather than the sole user of a headset or phone. Now everyone can be included!</p><p>Perhaps even more important, this flow opens up a broader spectrum of input interactions that are inaccessible to traditional AR experiences. The shoe’s input menu is also projected, but ‘touching’ is recognized through computer vision (In this case <a href="https://opencv.org/">OpenCV</a>). We can actively track those projected buttons and watch for user interaction. Upon detection of a users touch, we can trigger color-changing events in our shoe configurator.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yC9cxc7mImlOdmz9WMmN_Q.png" /></figure><p>Using this flow, we can create “projected inputs” that exist on any surface, in any medium, shape or color. We could trigger them with touch, human movement, facial expression, whatever you want — All through the combined capabilities of projection mapping and computer vision.</p><h3>The Road Forward</h3><p>Projection mapping feels like an untapped gold mine, lying in wait for the creative community to take advantage of. While it does come with its own set of unique obstacles it pushes AR/MR experiences in a direction previously out of bounds. It’s not a complete solution, but it begins to answer some of the biggest questions preventing Augmented Reality from breaching the mainstream market.</p><p>Furthermore, in the evolution of the AR/MR medium, it’s important that we continue to experiment and think about mixed reality in creative and unique ways.</p><p><a href="https://medium.com/u/48e9a73243f1"><em>Conner Hasbrouck</em></a><em> is an Engineer at </em><a href="https://perficientdigitallabs.com/"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs uses Emerging Technology</em></a><em> to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com/"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ead91ff9844c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/breaking-augmented-reality-out-of-the-screen-lightform-projection-mapping-ead91ff9844c">Breaking Augmented Reality out of the Screen</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Beyond the Headset: How real-world interfaces can augment Virtual Reality experiences]]></title>
            <link>https://medium.com/truth-labs/contactvr-virtual-reality-plus-real-world-interfaces-mixed-reality-ae62e23cee49?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/ae62e23cee49</guid>
            <category><![CDATA[unity]]></category>
            <category><![CDATA[iot]]></category>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[mixed-reality]]></category>
            <category><![CDATA[virtual-reality]]></category>
            <dc:creator><![CDATA[Dan Thompson]]></dc:creator>
            <pubDate>Mon, 13 May 2019 14:29:21 GMT</pubDate>
            <atom:updated>2019-05-13T14:29:21.404Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qfAgkLcTczxBWypujvfTmA.gif" /></figure><p>Virtual Reality is inherently a solitary experience. You shut out the real-world once you put on your headset. Your vision is filled with an alternate reality, where wands and controllers approximate your real hands. You might interact with avatars of others in your virtual world, but they could be continents away.</p><p>As part of an internal design and development challenge, we set out to change that experience. Perficient Digital Labs’ designers and developers prototyped three different scenarios to explore ways that the real world could be brought into the virtual world. From these exercises, both groups gained knowledge of concepts that apply to VR: software development, interaction design, IoT concepts, and hardware prototyping. We call the results <strong>ContactVR</strong>.</p><blockquote>What if you could share a VR experience with someone without actually being in VR yourself?</blockquote><p>We started with a simple question, “What if you could share a VR experience with someone without actually being in VR yourself?”. How could we affect someone’s Virtual Reality from outside the headset? What real-world interactions can we harness to affect a virtual world?</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F333139010%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F333139010&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F779036296_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/9f6fcc688505c62b68bee46bd16f3d44/href">https://medium.com/media/9f6fcc688505c62b68bee46bd16f3d44/href</a></iframe><p>ContactVR fosters real-time connections between a VR user, custom controllers, and real world participants. It also allows for multi-person experiences. This allows for more social interaction outside of the headset.</p><h3>The Scenarios</h3><p>There are three scenarios that we explored:</p><ul><li>Multiple real-world users can interact with a Virtual user through their mobile devices. (Many-to-one)</li><li>A Teacher &amp; Classroom scenario where a teacher can control the student’s immersive experience. (One-to-many)</li><li>A training simulator where a user interacts with a custom controller to simulate control of a virtual machine. (Simulation)</li></ul><h4>Space Assault</h4><p>In this scenario, a user plays the virtual role of an astronaut surrounded by alien creatures. Each alien is actually a person in the real world who can blast the astronaut using a web-based mobile interface on their phone. The astronaut’s only line of defense is a shield that they have to block the alien’s beam.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*mgrUwJYBn19A28tuE3hLzA.gif" /></figure><p>This game utilizes web sockets to communicate between each real world user’s phone and the virtual user’s headset. The bi-directional communication is near instantaneous and shared among all of the users (real and virtual). Scores and status are updated in real time on all devices. In the virtual user’s headset, the Unity application utilizes spatial audio to alert the player of the real-world user’s blast.</p><h4>Solar system explorer</h4><p>This scenario supposes a teacher walking through a lesson with students. At the appropriate time, the students enter the virtual world and are given more in-depth instruction in virtual reality. As the teacher describes specific planets, they select the planet on their phone. This action causes all of the student’s views to focus on the teacher-specified planet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*BvV-peQwq7CwKnJ_u8WWlQ.gif" /></figure><p>This guided educational experience offers a new and engaging way for students to learn together, at the direction of the teacher. While they can still explore their virtual reality individually, the teacher ultimately controls their progress and focus throughout the lesson.</p><h4>ExcavatVR</h4><p>To explore ways that a user in virtual reality could interact with the real world on an individual basis, we decided to explore how a custom physical controller could influence an object in a virtual world. Driving and controlling an excavator from virtual reality easily won the most support.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*u3KIs6FvRh_zLbv5Ckgb2g.gif" /></figure><p>To accomplish this, we wired a series of buttons to an Arduino and connected that to a Raspberry Pi. With some custom software, we were able to send button presses through the cloud to the headset which then controls the excavator. While the controls don’t reflect an actual excavator’s controls, this concept could be tailored to training experiences, allowing a user to learn how to control a complex or dangerous piece of equipment in VR before venturing out into the real world.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JCyS6m2cTTXkJ5ordcNSHA.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vyqsTijvKER8Dy-O40Y8rQ.jpeg" /><figcaption>An example of a custom controller.</figcaption></figure><p>Entertainment, education, and industry are only a few areas in which this concept and technology can be applied. Bringing the real world into the virtual world opens a new way to think about Mixed Reality. The possibilities are endless for shared experiences.</p><p>If these concepts are interesting to you, and you’d like to learn more about what Perficient Digital Labs can do for you, <a href="https://perficientdigitallabs.com/contact">let us know</a>.</p><p><a href="https://medium.com/@_DANTHOMPSON"><em>Dan Thompson </em></a><em>is Director of Emerging Experiences at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ae62e23cee49" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/contactvr-virtual-reality-plus-real-world-interfaces-mixed-reality-ae62e23cee49">Beyond the Headset: How real-world interfaces can augment Virtual Reality experiences</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A new way to experience space]]></title>
            <link>https://medium.com/truth-labs/a-new-way-to-experience-space-ac01c9823a25?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/ac01c9823a25</guid>
            <category><![CDATA[iot]]></category>
            <category><![CDATA[mobile]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[beacons]]></category>
            <category><![CDATA[innovation]]></category>
            <dc:creator><![CDATA[Tyson Damman]]></dc:creator>
            <pubDate>Tue, 05 Mar 2019 23:21:06 GMT</pubDate>
            <atom:updated>2019-03-05T23:18:47.162Z</atom:updated>
            <content:encoded><![CDATA[<h4>Building an automated tour guide</h4><p>One of the most common topics we’ve heard clients ask about over the past few years is the concept of smart spaces — how we can incorporate devices, sensors, people and places into a system that helps us learn about our space and in turn, use our space better. Our most recent foray into this topic area explores what could be done to help folks learn about their space in a low-friction way. Introducing Odyssey — the automated tour guide.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F320330995%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F320330995&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F762729374_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/cc9594c6adb7b2b70f60305631c4ce95/href">https://medium.com/media/cc9594c6adb7b2b70f60305631c4ce95/href</a></iframe><p>As you move through a space, the Odyssey Progressive Web Application (PWA) provides location-aware content, powered by a connected Bluetooth beacon and receivers located throughout the space. From a user’s perspective, the experience is simple, the app does the heavy lifting. Picture walking through an art museum, and as you walk up to a sculpture, the app seamlessly transitions to show a description of the piece, an artist bio, and a slideshow of initial sketches for the piece. That’s Odyssey in a nutshell.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TIp0XJ2nrUSIcZwSYa4E_A.jpeg" /></figure><h3>The components</h3><p>Behind the scenes is a more complex story — a connected system made up of three parts: a Bluetooth proximity beacon, a Raspberry Pi receiver, and a progressive web app (PWA).</p><ul><li><strong>Bluetooth proximity beacon</strong> — The beacon is used to track the user’s location relative to the receivers in the space. For this project, we used a Gimbal Series 10 Beacon — a small device that could be dropped in a pocket or attached to a lanyard.</li><li><strong>Raspberry Pi receiver</strong> — The receiver recognizes the beacon’s location and communicates with the PWA to update. We selected a Raspberry Pi for this implementation, but our solution could easily be implemented on any IoT device with Bluetooth capability.</li><li><strong>Progressive web app (PWA)</strong> — The PWA houses the map and location content. A PWA is just like any other web application, but it offers features that are only available in native apps. We used the power of PWA to enhance Odyssey with features like bookmark creation and offline functionality. This is a low-friction option because there is no app to download, the user can just visit a website. Read more about progressive web apps <a href="https://blog.truthlabs.com/building-a-progressive-web-app-in-react-11c77a7fccb3">here.</a></li></ul><p>To tie all the systems together, we utilized <a href="https://azure.microsoft.com/en-us/services/iot-hub/">Microsoft Azure IoT Hub</a>. IoT Hub allows us to process real-time device telemetry, implement <a href="https://blog.truthlabs.com/dataspaces-ad0a2bb073bd">custom visualization</a>, manage devices, and collect vast amounts of data upon which we can perform analysis and actions upon.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/374/1*Wn7slqysk1xCs5nnzVynig.gif" /><figcaption>Transitioning between spaces</figcaption></figure><h3>How it works</h3><p>These three components come together to form the Odyssey system. To demonstrate how it works, we’ll use the office example seen in the video above.</p><ol><li>A new employee is provided a unique beacon.</li><li>The employee scans the QR code on the beacon to pair it with the PWA. On scan, a link to the PWA appears. This is a unique link that tells the the PWA to associate with this specific beacon.</li><li>The employee carries the beacon with them as they tour the space.<br>As the employee enters a new room in the space, the receiver in that room recognizes the beacon’s location and tells the PWA to transition to that room’s content screen.</li><li>The employee can look at photos and videos and read content relevant to the room they are currently occupying. This multimedia content is managed through a CMS like <a href="https://medium.com/@contentful">Contentful</a>.</li><li>When the employee exits the room, the PWA transitions back to the default office map.</li></ol><p>We also added additional features to the PWA: an onboarding tutorial that teaches the user how it works, and a freely explorable 3D map for users that want to take a more manual approach to learning about the space.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Bmeikl5H7NT-v-JMec1kzQ.jpeg" /></figure><h3>Where it works</h3><p>Though we designed and built the app with an office orientation in mind, we think Odyssey can be useful in many different scenarios. One key benefit is that it’s great for indoor tracking where GPS doesn’t work very well. That makes it ideal for use cases like:</p><ul><li>Residential building tours</li><li>Museum tours</li><li>Campus orientation</li><li>Hospital wayfinding</li><li>Trade show/convention wayfinding</li><li>Factory/warehouse training</li></ul><p>There are tons of possibilities with Odyssey, we’ve only scratched the surface.</p><p>Do you have ideas about how Odyssey could be used? Want to learn more or schedule a demo? We want to hear from you! Email us at <a href="mailto:hello@perficientdigitallabs.com">hello@perficientdigitallabs.com</a> and we’ll get the conversation started.</p><h4><strong>Further Reading</strong></h4><ul><li><a href="https://blog.truthlabs.com/chicago-cta-augmented-reality-sign-detection-visualization-bus-data-application-design-7f8fe2f2f6b7">Enhancing Chicago’s public transit with Augmented Reality: Sign Detection and Route Visualization</a></li><li><a href="https://blog.truthlabs.com/dataspaces-ad0a2bb073bd">Data Spaces</a></li><li><a href="https://blog.truthlabs.com/beacon-tracking-with-node-js-and-raspberry-pi-794afa880318">Beacon tracking with Node.js and Raspberry Pi</a></li></ul><p><a href="https://medium.com/@TysonDamman"><em>Tyson Damman</em></a><em> is Creative Director at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ac01c9823a25" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/a-new-way-to-experience-space-ac01c9823a25">A new way to experience space</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Asking the right questions: How UX Design Discovery Works]]></title>
            <link>https://medium.com/truth-labs/asking-the-right-questions-65bc30fc61cb?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/65bc30fc61cb</guid>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[design-thinking]]></category>
            <category><![CDATA[strategy]]></category>
            <dc:creator><![CDATA[Tyson Damman]]></dc:creator>
            <pubDate>Wed, 13 Feb 2019 22:16:37 GMT</pubDate>
            <atom:updated>2019-02-13T22:18:03.574Z</atom:updated>
            <content:encoded><![CDATA[<h3>Asking the right questions</h3><h4>How UX Design Discovery Works</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4WAzEMj6sGXxy7AE57WdwA.png" /></figure><p>“What dat?” asked my two year old niece twenty or so times as she pointed at almost every item in the room. I happily answered every inquiry to the best of my ability and watch the little gears turn in her head. Imagine starting from scratch, trying to understand the world one item at a time with a single question — the mixture of frustration and excitement is clearly visible on her face.</p><p>I often feel a bit like my niece as we begin a new project, trying to understand a world that I’m not yet familiar with. Luckily this isn’t my first rodeo, I come prepared with an arsenal of focused questions to get to the root of the problem we are setting out to solve. At Perficient Digital Labs, we employ a methodology designed to break down even the most complex of problems in the most complex of industries into simple, surmountable elements. Let’s talk about how to perform one of the most fundamental parts of the design process: <strong>how to ask questions</strong>.</p><h3>Discovery</h3><p>Before beginning a single sketch, choosing a typeface, or writing a single word of code, we launch every project with a phase called Discovery. Discovery can last from a day to a few weeks and can take many forms, but essentially, it is the method of understanding a client’s business, its customers and the specific problems at hand.</p><h4>Why do discovery?</h4><p>As consultants, we’ve worked in nearly every industry you can imagine from healthcare to finance to journalism. Even with an extensive catalog of experience, it’s impossible to know all the ins and outs of a client’s business off the bat. One of the great privileges of being a consultant is the chance to learn about how a particular business works. You don’t know what you don’t know, and the only way you can know is by speaking with the experts on the subject, client stakeholders.</p><p>Sometimes, the jargon and veils of industry complexity can be roadblocks to a successful project. While it’s important to understand the language of a client’s business, you can easily break through any roadblocks by resetting and viewing the project through the lens of the customer. User experience design is inherently user-focused, heck it’s right there in the name. Every activity in the design process must consider the user first and foremost. Discovery is your chance to meet your client’s customers and get to know as much as possible about them.</p><h4>How it works</h4><p>Discovery isn’t cookie-cutter—it could be anything from a multi-day workshop to a 1-hour phone call. Each project’s discovery phase should be tailored based on several factors:</p><ul><li><strong>client</strong> — is this a new client or someone you’ve worked with before?</li><li><strong>size of project</strong> — is this a multi-phase project or a short sprint?</li><li><strong>complexity</strong> — how complex is the problem? is it a brand new product or a redesign?</li></ul><p>Once a format has been established, the next step is gathering the right people. A team generally consists of 3-4 members. A director runs the sessions and guides conversation. A producer tracks project logistics like scope and timeline and captures detailed notes. A designer and/or engineer also takes detailed notes and aids in running the sessions. Client teams work best when project leaders and subject matter experts join forces to give a full picture of the task at hand. Project leaders answer big picture questions and subject matter experts answer the nitty-gritty detailed questions.</p><p>A discovery session can be made up of any number of these activities:</p><ul><li><strong>Q &amp; A</strong> — A round-table question and answer session aimed at gathering background and requirements.</li><li><strong>Demo </strong>— A client subject matter expert (SME) walks through the product to demonstrate key functionality and pain-points. During this walkthrough, the design team asks follow-up questions and captures requirements that arise.</li><li><strong>Observation</strong> — The design team shadows a SME, or more ideally, a customer as they go about their duties and interact with the product. Questions are asked to identify use cases, priorities, and pain-points.</li><li><strong>Concept sketching</strong> — Whether in a workshop setting with clients or back at the office, the design team guides a rapid sketching exercise that focuses on key requirements. The goal is to generate a ’silhouette’ of what the product could be before diving into detailed wireframing sprints.</li><li><strong>Prioritization</strong> — Clients participate in a requirement ranking exercise to focus in on the most pressing issues from a business and customer perspective.</li><li><strong>Technical discovery</strong> — Engineers meet with relevant technical SMEs to determine systems, data components, limitations etc. <em>Note: In this article, I will not dig into technical discovery, instead focusing primarily on user experience design.</em></li></ul><p>At the root of every activity is the basic methodology of asking the right questions. You cannot expect your clients or their customers to lay everything out on the table for you. Even the most organized clients cannot possibly present a 100% crystal-clear picture of what they need. It is our role as designers to facilitate and guide this process, focus where necessary, and avoid unproductive traps. This doesn’t happen magically, one must come prepared.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aU_7NTbeK8TDdCS0GahmpQ.png" /></figure><h3>How to ask the right questions</h3><p>Every industry and business is unique, but when it comes to user experience there are similarities all over the map. We don’t start from scratch every time we start a new project because there are core issues every project shares. With a common set of questions that aid in establishing goals, understanding users and defining product components, you can turn complex problems into elegant digital solutions.</p><h4>Setting Goals</h4><p>The most fundamental thing to understand is what you are building and why you are building it. You may have a pretty good grasp on the answers to these two questions before starting the project, but it’s important that all parties get on the same trajectory before embarking. For example, a project leader may understand the reason why a project is being undertaken from a business perspective (to gain users, to expand feature set, to cut revenue losses) but a technical SME may understand how the codebase needs to change in order to accommodate a shift in user experience. For this reason, ask these fundamental questions with all stakeholders in the room. It’s extremely important that all voices are heard and expectations are set early to avoid issues down the road.</p><p>Some of the common goal-oriented questions to ask are:</p><ul><li><strong>Why are we doing this project? </strong>Pretty basic right? But you will often get differing answers from different stakeholders and it’s crucial these answers are heard.</li><li><strong>What are the biggest obstacles we need to overcome? </strong>Often the reason you are being hired for a project is to solve issues that could not be solved internally. You need to locate these pitfalls and find ways to avoid or bridge them.</li><li><strong>What does success look like? </strong>This question does more to define project goals than any other in this list. Clients usually know what they want, they just need your help to get there.</li><li><strong>How could we fail? </strong>The counterpart to the success question, a question about failure helps understand where to focus attention to come away with a win.</li><li><strong>What is the story we want to tell about this project 3 months/6 months/1 year down the road? </strong>Ask clients to visualize a press release or an article after the project has launched — what is the headline? what are the key takeaways from the article? what will people be talking about long after your product is introduced to the world?</li></ul><p>These questions help establish goal statements that all parties can agree on. Every requirement, concept, or design component that arises should align with these statements. You should be able to point to these statements at the very end of a project and confirm that what was built has fulfilled the project goals.</p><h4>Understanding users</h4><p>All good design is empathetic. It is our charge, as user experience designers, to center everything we make on the people that use it day in and day out. The term “user” is a bit robotic, but for lack of a better option, I’ll be using it to represent these folks. A user-centered design process doesn’t always require creating detailed persona profiles, down to what variety of apples they like (though that might be very useful if you’re creating an app for apple critics). But it does require a detailed understanding of how they do their job, what frustrates and excites them, and how they might ultimately use the product you’re building. The first activity is to list every type of person that might use this product, no matter their level of involvement. In order to focus conversation, prioritize these user types. This has long-term importance as well, especially if you define your sprint schedules based on user types. For example, a team may focus more design cycles on the everyday user (90% of user base) than they would on the admin user (10% of user base). The next step is building a profile for each user type.</p><p>To learn about the users and their behavior, ask questions like:</p><ul><li><strong>What tasks does this tool help the user accomplish?</strong> <strong>How does the user accomplish these tasks today? </strong>This is how to determine areas of functionality to build for each user type. You should also understand current user behavior to inform new functionality. Maybe the user employs an excel sheet to track some data today. You will want to know this in order to assess whether it’s functionality that can be incorporated into the new product.</li><li><strong>How often will the user use this product? What actions does the user take on a minute/hourly/daily/weekly/monthly/yearly basis?</strong> Time-based questions help define priority as well as understand behavior. If a user is spending their entire workday in the product, there are ergonomic considerations that don’t exist for a user that checks the tool once a month. Frequency questions help determine priority within the product — things that are done more frequently generally require more attention.</li><li><strong>What does the user ask for help on most often?</strong> By identifying user pain points, you can further refine your focus on solutions that will have the biggest impact.</li><li><strong>Has the user created any work-arounds to remedy current user experience problems?</strong> Often, folks have created clever work-arounds when a product isn’t working for them. Sometimes these solutions are analog, sometimes digital. Identifying them helps determine desired functionality.</li><li><strong>What does this user need to be able to communicate to other users?</strong> Is this a solo or collaborative product? What functionalities will help users communicate?</li><li><strong>What are the most typical pathways this user might take through the product?</strong> This question acts as a segue between user questions and functionality questions. You will probably spend the most time discussing this question in your discovery sessions. It requires a bit of foresight in order to visualize potential user scenarios. Focus your functionality questions on the user flows outlined in the client’s answer.</li></ul><p>At this point, you should have a solid understanding of the key users, why they use the product, and how they might use it. Next, you’ll examine potential functionality for each user type.</p><h4>Features and Functionality</h4><p>As a result of the user-based questions, you have identified at least a few key functional components or features for each user type. The team then dives deep into each of these components. This is where sketching exercises may be incorporated to get some early functional ideas on paper, but at the root, you’re still asking questions. You are trying to understand the same things you need to understand about the overarching project, but on the feature level — What is the purpose? Who uses it? What is the flow?</p><p>Focusing on one key functional component at a time, ask questions like:</p><ul><li><strong>What is the purpose or goal of this feature?</strong> A seemingly basic question that can sometimes determine whether or not a feature is worth building. The purpose of any feature should also align with the goals of the product.</li><li><strong>Which user type(s) will use this feature? Is authorization required?</strong> Who uses a feature gives you an indication of how important it is and where it should live in the product. It also may determine how complex it can be, based on the user type’s skill level. If authorization is required, there may be unique states of the component to be designed as well as a method for assigning permissions.</li><li><strong>At what point in a user’s process would this feature be most useful?</strong> You can assess whether a component has permanence or is a temporary state.</li><li><strong>How does this feature change over time?</strong> Much like authorization, this question helps determine the states required and how the system changes based on each user’s process.</li><li><strong>What are the available options in this feature? How can it be customized?</strong> In addition to determining component states, this question may dictate whether you will need to design a method for customization.</li><li><strong>Demonstrate a simple and complex usage example of this feature.</strong> This may require some imagination, but it helps the team visualize the range of experience that must be accounted for.</li></ul><p>Data usually plays a key role in the products we design. To get a solid understanding of how data will flow in and out of the product, ask:</p><ul><li><strong>How will a user use this data?</strong> Are they scanning it quickly to find anomalies? Are they correcting fields? Are they inputing data in forms? There are many answers to this question and all of them change user experience significantly.</li><li><strong>What are the minimum / maximum / average number of items?</strong> A component containing 5 data points would be designed quite differently than a component with 1000 data points. This question also helps determine the variability of data.</li><li><strong>What are the options for filtering/sorting?</strong> Determine the most useful tools for slicing and dicing the data.</li><li><strong>What artifacts/output would be useful to a user?</strong> A user might need to share a PDF report with their boss. In this case, you’ll want to provide a method for easily sharing the data.</li></ul><p>It’s rare that every question for every feature is answered during the formal discover sessions, but the primary goal is to build a basic scaffolding that features can be built upon. The kick-off meeting of each design sprint is another great opportunity to dive further into functionality that was not defined during the discovery sessions.</p><h3>Moving forward</h3><p>I’m going to avoid the nitty gritty details of the post-discovery design process for this post, but it is crucial to understand that the answers gathered in discovery become the guideposts for all work that follows. Every overarching system you create, every component you design, and every button you detail is a result of asking the right questions. I feel strongly that this process is the only way to guarantee a tailored, innovative user experience, designed in an efficient, intelligent way. Sure, you could start a project based on an email containing some basic requirements, and it might look pretty good. But chances are, that resulting product will lack true understanding of a client’s business and customers and be nothing more than a pretty piece of wallpaper.</p><p>The user experience design process requires that clients are active and engaged in the work being done. The most successful projects we’ve experienced are truly collaborative starting with an energetic, mind-melding discovery phase and carrying that spirit through design and engineering sprints. Design consultants bring the experience of working with dozens of clients on hundreds of projects, each one informing the next. Clients bring their wealth of industry, customer, and process knowledge. All of this knowledge combined can create beautiful, innovative things — but it all starts with the right questions.</p><p>If you’d like to get to know our process a little better or have an idea you’d like to make a reality, please say hello at <a href="mailto:hello@perficientdigitallabs.com">hello@perficientdigitallabs.com</a></p><p><a href="https://medium.com/@TysonDamman"><em>Tyson Damman</em></a><em> is Creative Director at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=65bc30fc61cb" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/asking-the-right-questions-65bc30fc61cb">Asking the right questions: How UX Design Discovery Works</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adventures in 3D — Pitfalls and problems with USDZ and iOS Quicklook]]></title>
            <link>https://medium.com/truth-labs/adventures-in-3d-pitfalls-and-problems-with-usdz-and-ios-ar-quicklook-augmented-reality-4fcdf99c6849?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/4fcdf99c6849</guid>
            <category><![CDATA[augmented-reality]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[usdz]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Conner Hasbrouck]]></dc:creator>
            <pubDate>Wed, 30 Jan 2019 13:01:01 GMT</pubDate>
            <atom:updated>2019-01-30T13:01:01.103Z</atom:updated>
            <content:encoded><![CDATA[<h3>Adventures in 3D — Pitfalls and problems with USDZ and iOS Quicklook</h3><figure><a href="https://vimeo.com/311717041"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QVqLcJk_PuvvJeF90rNFiA.png" /></a></figure><p><a href="https://blog.truthlabs.com/adventures-in-3d-why-and-how-you-should-be-investing-in-ios-quicklook-and-usdz-4fe7e5859283">We’ve discussed the great aspects of USDZ and iOS Quicklook</a>, now I’ll review some real-world issues we’ve run into, and some concerns that we have with the format.</p><p>A single file containing a packaged 3D scene. Easy to share. Great looking visuals. Lightweight file-size. Built for augmented reality.</p><p>Sounds too good to be true, right? Well, there are a few issues preventing USDZ from taking over right now. Thankfully we think these are just temporary speed bumps and not critical flaws.</p><p>First, is the typical walled-garden of Apple approach of using an alternate file-format than other major platforms. Established formats such as Collada (.dae) could likely be used for the same utility. More glaringly, however, is the refusal to adopt <a href="https://github.com/KhronosGroup/glTF">glTF</a>, <a href="https://blog.truthlabs.com/adventures-in-3d-converting-assets-to-gltf-for-facebook-3d-posts-6abd030ff696">which is quickly becoming the new standard for sharable 3D assets</a>.</p><p>Next, is the tooling. <a href="https://blog.truthlabs.com/adventures-in-3d-streamlining-the-conversion-of-assets-for-ios-quicklook-and-usdz-240cf569b05f"><em>usdz_converter</em> works well</a>, but browsing the <a href="https://groups.google.com/forum/#!forum/usd-interest">usdz-interest google group</a> reveals that the format is still in its infancy and there are few tools and plugins that are fully baked. Certainly, new tools like <a href="https://www.adobe.com/products/projectaero.html">Adobe Aero</a>, and the recently acquired <a href="https://medium.com/u/381bfd5efa27">Allegorithmic</a> <a href="https://theblog.adobe.com/adobe-acquires-allegorithmic-substance-3D-gaming?scid=c9af8233-f136-4ebf-9620-2cb7f4809f64&amp;mv=social&amp;mv2=owned_social">Substance Painter</a> will continue to emerge with USDZ support, but <em>right now</em> it’s not a universal format for many platforms.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F311717041%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F311717041&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F752607281_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1280" height="720" frameborder="0" scrolling="no"><a href="https://medium.com/media/142d7c4fbaa2df8e5d0c23d1597b66de/href">https://medium.com/media/142d7c4fbaa2df8e5d0c23d1597b66de/href</a></iframe><h3>My Experience</h3><p>When using USDZ as a 3D file format in an iOS ARKit application, I experienced an apparent lack of control with those files. Many of the editable properties and instance methods available for alternative formats (SCN, OBJ) have no effect on USDZ files. Here are a few of the issue I ran into while using a USDZ in an iOS application:</p><ul><li>Controlling the replay/loop of animations. USDZ files loop by default with no apparent way to change/control that behavior. It’s all or nothing.</li><li>Stopping/Pausing the animation at specific animation timestamps. The callouts for animation start/end don&#39;t trigger.</li><li>Changing the scale of the USDZ file. Whatever size you import is what you have to work with. This appears to be based on the root node of the geometry.</li><li>USDZ / Quicklook is well suited for <em>previewing objects</em>. Attempting to create large, complicated scenes will not work well for you. There are better technologies and methods available for this functionality.</li><li>Starting the animation from the beginning. USDZ files appear to cache themselves. If you reinstate a USDZ model or restart the app, the animation will start from the frame you left it on, rather than its first frame.</li><li>On your desktop, the Xcode 3D tools do not allow you to edit properties of a USDZ file. Nearly every click asks you to convert it to a SceneKit (SCN) file.</li><li>Additionally, the Xcode 3D tools do not accurately preview the PBR textures of a USDZ file. <a href="https://blog.truthlabs.com/adventures-in-3d-streamlining-the-conversion-of-assets-for-ios-quicklook-and-usdz-240cf569b05f">The only accurate way to preview USDZ files is on your iPhone</a>.</li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F313188030%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F313188030&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F754436345_640.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="886" height="1920" frameborder="0" scrolling="no"><a href="https://medium.com/media/90b13b81a10801a14c058156cf527620/href">https://medium.com/media/90b13b81a10801a14c058156cf527620/href</a></iframe><h3>The Future</h3><p>Aside from of Quicklook, it’s apparent that support for USDZ is not fully baked yet. Right now the primary purpose of USDZ files is to be a lightweight, shareable model for preview.</p><p>At this stage, USDZ files don&#39;t feel supported enough for advanced/interactive ARKit applications. Yet, I assume that Apple has greater ambitions for USDZ that include full-fledged support in Xcode and ARKit. The creation flow will be simpler, the handoff is seamless, the models look fantastic and they are memory conservative. This is definitely a topic to to pay attention to.</p><p><a href="https://medium.com/@connerhasbrouck/"><em>Conner Hasbrouck</em></a><em> is an Engineer at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs uses Emerging Technology</em></a><em> to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com/"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4fcdf99c6849" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/adventures-in-3d-pitfalls-and-problems-with-usdz-and-ios-ar-quicklook-augmented-reality-4fcdf99c6849">Adventures in 3D — Pitfalls and problems with USDZ and iOS Quicklook</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adventures in 3D — Streamlining the conversion of assets for iOS Quicklook and USDZ]]></title>
            <link>https://medium.com/truth-labs/adventures-in-3d-streamlining-the-conversion-of-assets-for-ios-quicklook-and-usdz-icloud-bash-240cf569b05f?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/240cf569b05f</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[usdz]]></category>
            <category><![CDATA[bash]]></category>
            <category><![CDATA[augmented-reality]]></category>
            <dc:creator><![CDATA[Dan Thompson]]></dc:creator>
            <pubDate>Tue, 29 Jan 2019 16:50:18 GMT</pubDate>
            <atom:updated>2019-01-29T16:54:36.524Z</atom:updated>
            <content:encoded><![CDATA[<h3>Adventures in 3D — Streamlining the conversion of assets for iOS Quicklook and USDZ</h3><p>As a follow-up to <a href="https://blog.truthlabs.com/adventures-in-3d-a-cinema-4d-to-ios-ar-quicklook-usdz-workflow-conversion-animation-texturing-4dcfdbab8996">my last post</a>, I wanted to identify a couple processes and a tool that I utilized to hasten the preview and editing process of USDZ files. If you have any additional tips, or feedback, feel free to leave a comment at the end of the post.</p><h3>iCloud + symlink</h3><p>Currently, the only effective way to preview a USDZ file is to view it on your iOS device. That transfer process can become cumbersome and result in many iterative files if you’re using AirDrop or sending the files to yourself through a messaging app. Instead, <strong>use iCloud to sync a folder</strong> (such as ~/Desktop), and create a new folder that will contain your USDZ file.</p><p>Then, create a symbolic link in your working folder to that iCloud folder using this command:</p><pre>ln -s ~/Desktop/usdz usdz</pre><p>That will create a folder ./usdz that points to a synced folder on your Desktop, which is synced to iCloud by default. Every time you write out a new .usdz file to that folder, it will be synced to iCloud and will be automatically available for you to view in the Files app. I found this to be much faster than AirDrop.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/443/1*lRVBtdwOYwa85P1HOkK9KQ.gif" /></figure><h3>Embrace the filePath argument for usdz_converter</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qUAeXtCAJVzu4chwiMflyg.png" /></figure><p>Passing the nodes and their various textures to usdz_converter manually via the command line is frustratingly cumbersome and near impossible to get right every time. Luckily, usdz_converter now includes the -f parameter which accepts a text file to replicate those arguments. For example:</p><pre>xcrun usdz_converter ./abc/spinner.abc ./usdz/spinner.usdz -f usdzargs.txt</pre><p>As <a href="https://medium.com/u/c5f671b4792">Nelson Chang</a> covers in <a href="https://blog.truthlabs.com/usdz-converting-3d-models-and-other-start-up-tips-570403135bf7#ddf6">this post</a>, it helps to keep your text file open in an editor and modify as needed.</p><p>But even creating that file for the first time is a huge pain. If only there was an automated way to do it…</p><h3>Use the mkargs bash script</h3><p><a href="https://github.com/PRFTDigitalLabs/c4d-usdz-sample/blob/master/spinner/mkargs">PRFTDigitalLabs/c4d-usdz-sample</a></p><p>I’ve thrown together a quick bash script that will generate <a href="https://github.com/PRFTDigitalLabs/c4d-usdz-sample/blob/master/spinner/usdzargs.txt">a text file</a> that can be passed to the -f argument, then run usdz_converter using that file. The script looks through the <a href="https://github.com/PRFTDigitalLabs/c4d-usdz-sample/tree/master/spinner/baked">/baked</a> folder for any files matching the naming pattern that <a href="https://blog.truthlabs.com/adventures-in-3d-a-cinema-4d-to-ios-ar-quicklook-usdz-workflow-conversion-animation-texturing-4dcfdbab8996#1e30">Cinema 4d uses for baked textures</a> then generates the text file. Feel free to fork it and submit pull requests if you have ideas to improve it.</p><p><a href="https://medium.com/@_DANTHOMPSON"><em>Dan Thompson </em></a><em>is Director of Emerging Experiences at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=240cf569b05f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/adventures-in-3d-streamlining-the-conversion-of-assets-for-ios-quicklook-and-usdz-icloud-bash-240cf569b05f">Adventures in 3D — Streamlining the conversion of assets for iOS Quicklook and USDZ</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adventures in 3D — A Cinema 4d to iOS AR Quicklook / USDZ Workflow]]></title>
            <link>https://medium.com/truth-labs/adventures-in-3d-a-cinema-4d-to-ios-ar-quicklook-usdz-workflow-conversion-animation-texturing-4dcfdbab8996?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/4dcfdbab8996</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[augmented-reality]]></category>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[cinema-4d]]></category>
            <dc:creator><![CDATA[Dan Thompson]]></dc:creator>
            <pubDate>Fri, 25 Jan 2019 22:54:34 GMT</pubDate>
            <atom:updated>2019-04-11T14:59:53.312Z</atom:updated>
            <content:encoded><![CDATA[<h3>Adventures in 3D — A Cinema 4d to iOS AR Quicklook / USDZ Workflow</h3><p><a href="https://blog.truthlabs.com/search?q=usdz">We love USDZ</a> and the AR Quicklook functionality within iOS. We also love <a href="https://www.maxon.net/en-us/products/cinema-4d/overview/">Cinema 4d</a>. However, it’s not easy to create a USDZ file directly from Cinema 4d. What follows is a detailed, tech-heavy, walk through of my process creating a <a href="https://prftdigitallabs.github.io/c4d-usdz-sample/">Stern Pinball spinner USDZ</a>, starting with Cinema 4d.</p><h4>A quick note:</h4><p>USD is a technology <a href="https://graphics.pixar.com/usd/docs/index.html">created by Pixar</a>. Therefore, it should be no surprise that <a href="https://graphics.pixar.com/usd/docs/Maya-USD-Plugins.html">Maya supports USD</a> better than other tools. <a href="https://www.blender.org/">Blender</a>, too, has great support for things like <a href="https://github.com/KhronosGroup/glTF-Blender-IO">glTF</a> and <a href="https://docs.blender.org/manual/en/dev/render/cycles/nodes/introduction.html">PBR rendering</a>, and is probably an overall better tool for this technology than Cinema 4d. For Blender specific information, I recommend you follow <a href="https://medium.com/u/cc6422544349">Blender Sushi Guy</a>.</p><h4>The Plan</h4><p>I want to create a USDZ file for AR Quicklook on iOS using the 3D tool I am most familiar with: Cinema 4d. It’s most efficient for me to construct the geometry in C4d, do some texture mapping in Body Paint, and deal with the available outputs and conversion utilities to create the final package.</p><p>My goals are:</p><ul><li>To take advantage of <a href="https://blog.truthlabs.com/search?q=augmented%20reality">Augmented Reality</a> by constructing the object at real-world scale.</li><li>To make the object more engaging with animation.</li><li>To explore the process needed to generate and apply <a href="https://www.allegorithmic.com/pbr-guide">PBR materials</a> to the model.</li><li>Avoid using online conversion tools like <a href="https://www.vectary.com/">Vectary</a> or <a href="https://sketchfab.com">Sketchfab</a>.</li></ul><figure><a href="https://www.pinballlife.com/complete-spinner-assembly-with-switch.html"><img alt="" src="https://cdn-images-1.medium.com/max/400/1*pB5HQD6FTHprE9DBknNSyg.jpeg" /></a><figcaption>Complete Spinner Assembly With Switch (Left Side) (from: PinballLife)</figcaption></figure><h4>The object</h4><p>I want to create something that has fairly simple, repetitive, mechanical movement. It should have a few different parts and textures. <a href="https://www.ifpapinball.com/player.php?p=26404#stats">I</a> <a href="https://twitter.com/_DANTHOMPSON/status/1025457243418976256">love</a> <a href="https://blog.truthlabs.com/making-pinball-fun-to-watch-and-play-47943467d7f5">pinball</a>, so a pinball part was an obvious choice.</p><p>I chose a <a href="https://en.wikipedia.org/wiki/Pinball#Spinners_and_rollovers">spinner</a> from a modern <a href="https://sternpinball.com/">Stern Pinball</a> machine.</p><p>In doing some quick googling, I found <a href="https://pinballmakers.com/wiki/index.php?title=File:Stern-spinner-511-5113-00.jpg">these solidworks files</a> by Joe of <a href="http://homebrewpinball.blogspot.com/">http://homebrewpinball.blogspot.com/</a>. Using these will save some time, and will prove that we can adapt a cad-like file format to USDZ through conversion.</p><p>Cinema 4d Studio can import solidworks files natively. Alternatively, you can export the .SLDPRT files to .stl files through <a href="https://www.autodesk.com/products/fusion-360/overview">Fusion 360</a>. Sketchfab outlines that process <a href="https://help.sketchfab.com/hc/en-us/articles/206474665-Fusion-360">here</a>.</p><p>Cinema 4d can import .stl files. At that point it’s just a matter of re-arranging the objects and ensuring they are set to the correct scale. In Blue below, I’ve ensured that the project is set to 1mm, and in Green the overall Y-dimension is approximately 60mm.</p><p>We’ll address the magenta section in the <a href="#animation">Animation portion of this post</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h1B_wDfP6aH3FbBykPpi1w.png" /></figure><h4>Tips for success</h4><ul><li>You must nest your objects under a single root node for scale and animations to work correctly. In this case, highlighted in Red, stern_spinner is a null object with the other geometry nested below it.</li><li>That root node determines the position of the object in AR. You want it to be positioned at 0,0,0 with your geometry emanating from it. More than likely, you will need to fiddle with the axis to get it to look right.</li><li>While the screenshot does not show it, I would recommend only a single level of child nodes. At some point in the conversion process (possibly to glTF?), I ran into trouble with animations when there were several levels of objects.</li><li>Your nodes should also be named to be easily converted (and recognized): no dots, spaces, special characters, etc…</li><li>Maybe this is obvious, but you should make all your objects editable. It could help to have a ‘dynamic’ version of a file then save it as a flattened version of the file where conversions are made if you are making edits to the geometry during the conversion process.</li></ul><h4>Conversion</h4><p>Now that our polygons are in place, we want to see it on a device.</p><p>Looking through <a href="https://developer.apple.com/videos/play/wwdc2018/603/?time=2297">Apple’s USDZ video</a> (the only formal ‘documentation’ on the technology at this time), the only tool they mention is usdz_converter, and that it supports .obj or <a href="https://github.com/alembic/alembic">Alembic (</a><a href="https://github.com/alembic/alembic">.abc)</a> as input.</p><figure><a href="https://developer.apple.com/videos/play/wwdc2018/603/?time=2297"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zIPlS7FfFHpQfXrEEkRg7Q.jpeg" /></a></figure><p>.obj files do not support animation, so that’s out. Luckily, Cinema 4d has a <a href="https://www.maxon.net/en/products/workflow-integration/file-exchange/">built-in Alembic (</a><a href="https://www.maxon.net/en/products/workflow-integration/file-exchange/">.abc) exporter</a>. That should work.</p><p>The conversion roadmap will look like this:</p><p><strong>.SLDPRT →</strong><strong>.stl→</strong><strong>.c4d→</strong><strong>.abc→</strong><strong>.usdz</strong></p><p>The .abc export options I use are captured here:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aEsZe-Tm7kZcXMkBTiNQJg.png" /></figure><p>The important choices are <strong>File Format</strong> and <strong>Scale</strong>. Changing the other options didn’t seem to have much impact in my use case. The animation options <strong>are important</strong>, but we’ll deal with those <a href="#animation">further down</a>.</p><p>Now that the .abc has been created, I just needed to run Apple’s conversion tool. <a href="https://medium.com/u/c5f671b4792">Nelson Chang</a> does a great job describing how to use usdz_converter in this post:</p><p><a href="https://blog.truthlabs.com/usdz-converting-3d-models-and-other-start-up-tips-570403135bf7">USDZ: Converting 3D models and other start-up tips</a></p><h4>Verify the conversion</h4><p>Once the .usdz has been created, OSX tempts you with an opportunity to view and edit properties of the .usdz file in the Xcode SceneKit editor.</p><p><strong>Don’t Fall For It!</strong></p><p>The textures don’t appear correctly in Xcode. Additionally, you can’t edit the properties for a model in the editor. You can validate the node hierarchy, and potentially material properties, but you can’t effectively edit anything (at this time).</p><figure><a href="https://developer.apple.com/scenekit/"><img alt="" src="https://cdn-images-1.medium.com/max/450/1*tDxWQd8NPr_mZxSS6wurdg.png" /></a><figcaption>Convert this document to SCN format? No.</figcaption></figure><p>The only sure-fire way to validate the USDZ is by sending it to your phone. This can easily be done with iCloud or AirDrop.</p><p>Sadly, you will likely need to do this multiple times as you tweak things (especially materials). I will address a way to optimize this process in my next post.</p><h4>Animation</h4><p>For the animation, the goal is to create an infinitely looping spin. This is accomplished through <a href="https://www.youtube.com/watch?v=C7Qulyx6qCs">linear interpolation</a> and ensuring that the last frame(+1) is exactly the same as the first frame.</p><p>Additionally, the trigger on the switch should appear to be depressed by the spinner arm (this is how points are scored). Each object will have it’s rotation transform adjusted, the bar has it’s position more finely controlled, while the target has a 360° rotation applied over the span of the animation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2MVzchPgx7dhE9RI7_5uaA.png" /></figure><p>Unfortunately, when exporting this animation as .abc, the timing and keyframes don’t always match the source file.</p><p><strong>Here is how I resolved this issue:</strong></p><p>I created my animation as I wanted them to appear in Cinema 4d. On export to .abc, I set start frame to 0, end frame to 25 (even though the animation is only 24 frames), and ensured the frame step and subframes are set to 1.</p><p>Then, I ran through the same usdz_converter process as before, but used the following command line options:</p><p>xcrun usdz_converter spinner.abc spinner.usdz <strong>-a -l</strong></p><pre>-a Generate a .usda intermediate file.  Default is .usdc.</pre><pre>-l Leave the intermediate .usd file in the source folder.</pre><p>This utilizes the options to create an <a href="https://graphics.pixar.com/usd/docs/Converting-Between-Layer-Formats.html">intermediary, ascii </a><a href="https://graphics.pixar.com/usd/docs/Converting-Between-Layer-Formats.html">.usda file</a>, and <strong>does not delete it</strong>.</p><p>At that point, I opened the .usda file with a text editor and edited the properties that made sense, such as:</p><pre>endTimeCode = 23<br>framesPerSecond = 90<br>startTimeCode = 0<br>timeCodesPerSecond = 90</pre><p>Most importantly, however, is the endTimeCode. I essentially ‘trimmed’ the animation so that it looped correctly by setting the value to the final frame that I wanted, then sped it up by changing the framesPerSecond and timeCodesPerSecond values.</p><p>I suspect that it is sub-optimal to have the ‘trimmed’ frames/timeSamples remain in the .usda file, so this should be investigated further.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/983b50ea1f4032472fc722f88920353a/href">https://medium.com/media/983b50ea1f4032472fc722f88920353a/href</a></iframe><p>once edited, the .usda file can be converted to the .usdz file thusly:</p><p>xcrun usdz_converter spinner.usda spinner.usdz</p><p>So, really, the conversion roadmap ends up being:</p><p><strong>.SLDPRT →</strong><strong>.stl→</strong><strong>.c4d→</strong><strong>.abc→</strong><strong>.usda→</strong><strong>.usdz</strong></p><p><em>phew.</em></p><figure><a href="https://developer.apple.com/arkit/gallery/models/retrotv/retrotv.usdz"><img alt="" src="https://cdn-images-1.medium.com/max/480/1*NBheOg4WD751eww4dd-2kQ.gif" /></a><figcaption>Apple’s Retro TV sample USDZ</figcaption></figure><h4>Applying Materials / Texturing</h4><p>I’m not going to describe the whole process of texturing objects in Cinema 4d. If you need help getting started, <a href="https://greyscalegorilla.com/">Greyscalegorilla</a> <a href="https://greyscalegorilla.com/tutorials/intro-to-uvs-in-bodypaint/">will have</a> what <a href="https://greyscalegorilla.com/tutorials/texturing-objects-and-lights-in-cinema-4d/">you need</a>.</p><blockquote>If you have any tips for approximating PBR in C4d to match AR Quicklook, I would love to hear your feedback.</blockquote><p>If you’re importing 3rd party materials, or you are applying your own baked materials, I found <a href="https://c4dcenter.com/map-placement-cinema-4d-material-editor/">this post</a> extremely helpful. It does a great job explaining PBR, and where each texture should be applied.</p><p>In my brief experience, I wasn’t able to get C4d to 100% accurately render the materials the same way as AR Quicklook, even with the Physical Renderer in Cinema 4d Studio. However, I was able to approximate things to a point that I was able to implement a process that worked well for me for <em>exporting materials</em> from C4d:</p><figure><a href="https://developer.apple.com/videos/play/wwdc2018/603/?time=1755"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7dEysWqYcRMU_7QmKC_zgg.png" /></a></figure><h4>Exporting Texture Channels</h4><p>I used UV mapping for all of my materials. Often times I had to manually manipulate those UVs, particularly for the brushed metal effect on the bracket.</p><p><strong>To keep your textures and </strong><strong>.usdz in sync, remember to re-export your .abc file after you make changes to your UVs in Cinema 4d.</strong></p><p>The most efficient process for me was to bake objects with the relevant channels selected:</p><h4>Baking</h4><p>By selecting your object, then selecting Objects&gt;Bake Object, you will be presented with this screen:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/471/1*2lNywfQj1slX42frjZO7Mg.png" /></figure><p>By baking all of the objects, with the relevant channels selected, then deleting any extraneous textures, you will have a <a href="https://github.com/PRFTDigitalLabs/c4d-usdz-sample/tree/master/spinner/baked">uniformly named set of textures</a>, prefixed by their node:</p><pre>barAmbient_Occlusion.png<br>barMetallic.png<br>barNormal.png<br>barRoughness.png<br>barSurface_Color.png<br>bracketMetallic.png<br>bracketRoughness.png<br>bracketSurface_Color.png<br>switchAmbient_Occlusion.png<br>switchMetallic.png<br>switchNormal.png<br>switchRoughness.png<br>switchSurface_Color.png<br>targetMetallic.png<br>targetRoughness.png<br>targetSurface_Color.png</pre><p>Alternatively, you can use the Bake Texture tag on an object for more granular control of the channels that you are exporting. It’s output can be configured to match the naming pattern above.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/449/1*RjuFqayPeqfk1mSrxFZ-og.png" /></figure><p>Finally, once you have all of your textures prepared, you are able to pass those nodes and file names into usdz_converter as <a href="https://medium.com/u/c5f671b4792">Nelson Chang</a> <a href="https://blog.truthlabs.com/usdz-converting-3d-models-and-other-start-up-tips-570403135bf7#ddf6">describes here</a>.</p><p>Wow, what a ride. This is a lot of work, especially if you need to validate very minor changes to your model or textures. Luckily, my next post offers some tips, tricks, and a tool on how to automate this process.</p><p><a href="https://medium.com/@_DANTHOMPSON"><em>Dan Thompson </em></a><em>is Director of Emerging Experiences at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4dcfdbab8996" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/adventures-in-3d-a-cinema-4d-to-ios-ar-quicklook-usdz-workflow-conversion-animation-texturing-4dcfdbab8996">Adventures in 3D — A Cinema 4d to iOS AR Quicklook / USDZ Workflow</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adventures in 3D — Why and How you should be investing in iOS Quicklook and USDZ]]></title>
            <link>https://medium.com/truth-labs/adventures-in-3d-why-and-how-you-should-be-investing-in-ios-quicklook-and-usdz-4fe7e5859283?source=rss----29f24217257---4</link>
            <guid isPermaLink="false">https://medium.com/p/4fe7e5859283</guid>
            <category><![CDATA[innovation]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[augmented-reality]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Dan Thompson]]></dc:creator>
            <pubDate>Thu, 24 Jan 2019 18:19:39 GMT</pubDate>
            <atom:updated>2019-01-24T18:19:39.454Z</atom:updated>
            <content:encoded><![CDATA[<h3>Adventures in 3D — Why and How you should be investing in iOS Quicklook and USDZ</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F313210396%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F313210396%2F9f10412338&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F754464198_1280.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="886" frameborder="0" scrolling="no"><a href="https://medium.com/media/6c250f57ae882819853851a47c64457c/href">https://medium.com/media/6c250f57ae882819853851a47c64457c/href</a></iframe><h3>The promise — Why use USDZ?</h3><p>What do USDZ files provide that make them different? Why would you use them? How big is that impact?</p><p>Without an experienced group like <a href="https://perficientdigitallabs.com">Perficient Digital Labs</a>, deploying an <a href="https://blog.truthlabs.com/tagged/augmented-reality">Augmented Reality</a> experience can be very technical. You may need knowledge of multiple frameworks, limitations of platforms, and the compatibility issues between those technologies. Similarly, development for AR requires a high level of design finesse. Poor user experience or obtrusiveness can ruin even the best idea. Primarily, <strong>the experience has to provide value</strong>, even if it’s just entertainment. It’s become vitally important that the technologies we use account for these values and support creators in a helpful way.</p><p>When making an AR app, you would normally start with a designer making 3D assets. Those assets are eventually handed over to a developer. To use them, that dev needs to import everything, potentially manipulate and map textures, then ensure the animations for those assets are working correctly. <strong>This handoff is taxing and time-consuming.</strong> A lot can go wrong and many developers aren’t well-versed in the intricacies of 3D asset production.</p><p>iOS Quicklook by way of the USDZ file format feels like a solution that resolves these issues. It promotes <strong>a plug and play format</strong> that makes life easier for both developers, designers, and consumers (as long as they’re using iPhones).</p><p>A USDZ file is a single file containing all of the needed assets. Essentially it’s a .zip file that has the geometry, animation, and textures all in one convenient bundle. Once it’s prepared by a designer, a developer can just run with it. It’s a crisp, lightweight, animated model that’s ready to go right away. It’s the type of workflow that saves devs sleep and designers headaches.</p><figure><a href="https://prftdigitallabs.github.io/c4d-usdz-sample/"><img alt="" src="https://cdn-images-1.medium.com/max/400/1*GLIQt0NNj-EHU7OQEHjaXw.gif" /></a><figcaption>An example of a part that could be previewed in Quicklook</figcaption></figure><h4>About iOS…</h4><p>Unfortunately, right now, iOS is the only consumer device platform that natively supports USDZ. All the considerations that go into developing an application for iOS, Android, Web, or a mixture of the three apply to USDZ as well. It’s very unfortunate that Apple didn’t choose to utilize the <a href="https://github.com/KhronosGroup/glTF">glTF file format</a>, as it’s already more established and supported on many more platforms.</p><p>But the UX on iOS is top notch. When viewed on an iPhone, Quicklook provides a great experience. It allows a user to quickly view the model in 3D or in AR. The quality of the assets are spectacular. Take a photo or video to share, or <a href="https://vimeo.com/313188030">share the asset itself via iMessage</a> or email. <strong>It’s perfect for viewing an inventory of parts or products.</strong> <a href="https://prftdigitallabs.github.io/c4d-usdz-sample/">USDZ files can be linked to from the web</a>, allowing users to view objects in 3D / AR just by clicking a link on their iPhone. This is how it should be, but time will tell to see if companies take the time to implement USDZ on their web sites or applications.</p><h4>How to get started</h4><p>The golden use case for iOS Quicklook with USDZ is to add 3D / AR previews to a set of objects. <strong>It could be an online store, a gallery, a manufacturer of parts</strong>, etc… Were the user to benefit from viewing the objects in true-to-life scale in augmented reality, ARKit provides great space detection and lighting estimation to allow a user to visualize the object in real space, then share that view with others.</p><p>For an example, check out Apple’s sample <a href="https://developer.apple.com/arkit/gallery/">AR Quicklook Gallery</a>.</p><p>Adding AR Quicklook functionality to a new or existing online gallery is quite easy. In most cases it’s simply a matter of adding one or two attributes to existing links within that platform.</p><p>If this use case makes sense, you need to go about creating (or converting existing) assets. Converting existing assets to USDZ takes some experience, but can be done. The example above was easily converted from a solidworks file.</p><p>Creating new assets can be done through a 3D scanning or Photogrammetry process of real-life inventory. Another option would be to create virtual replicas with 3D modeling and texturing tools. In any case, you’ll want to <a href="https://perficientdigitallabs.com/contact">consult with someone familiar with the tools and techniques required to create great looking assets</a>.</p><figure><a href="https://prftdigitallabs.github.io/c4d-usdz-sample/"><img alt="" src="https://cdn-images-1.medium.com/max/300/1*1NNsRfj-sB3pSi0lC99NPA.png" /></a></figure><h4>The power of QR codes</h4><p>Finally, a concept that hasn’t been talked about much is the ability to quickly <a href="https://prftdigitallabs.github.io/c4d-usdz-sample/img/qr-page.png">link to a USDZ asset via a QR code</a>.</p><p>This is magical for two reasons:</p><ol><li>USDZ files can be hosted on the web, just like any other multimedia file.</li><li>iOS users can scan QR codes from the Camera app. When a user follows that link, it automatically opens in Safari (which is the only browser that can handle USDZ files. This is a pretty direct flow for an iPhone user wanting to view an object in Augmented Reality.</li></ol><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fplayer.vimeo.com%2Fvideo%2F313219256%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fvimeo.com%2F313219256%2Fcbac06701c&amp;image=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fi.vimeocdn.com%2Fvideo%2F754475485_640.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="886" height="1920" frameborder="0" scrolling="no"><a href="https://medium.com/media/18b352c60d5e7dd31fa9956a3760c8f1/href">https://medium.com/media/18b352c60d5e7dd31fa9956a3760c8f1/href</a></iframe><p><a href="https://medium.com/@_DANTHOMPSON"><em>Dan Thompson </em></a><em>is Director of Emerging Experiences at </em><a href="https://perficientdigitallabs.com"><em>Perficient Digital Labs</em></a><em>. </em><a href="https://blog.truthlabs.com/"><em>Read more about how Perficient Digital Labs</em></a><em> uses Emerging Technology to create </em><a href="https://perficientdigitallabs.com/work"><em>innovative experiences</em></a><em> that transform the way our clients do business </em><a href="https://perficientdigitallabs.com"><em>here</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4fe7e5859283" width="1" height="1" alt=""><hr><p><a href="https://medium.com/truth-labs/adventures-in-3d-why-and-how-you-should-be-investing-in-ios-quicklook-and-usdz-4fe7e5859283">Adventures in 3D — Why and How you should be investing in iOS Quicklook and USDZ</a> was originally published in <a href="https://medium.com/truth-labs">Perficient Digital Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>