Subtitles section Play video Print subtitles CHRISTIAN PLAGEMANN: Good morning, everyone, to this morning session on Cardboard, virtual reality for Android. I've got with me here David Coz. He's a software engineer at Google's Cultural Institute in Paris. My name is Christian Plagemann. I'm a research scientist and team lead for physical interaction research here in Mountain View. And we have Boris Smus, who's a prototyper software engineer and researcher also in our group in Mountain View. So this talk is about a piece of cardboard. Or let's say what it actually is about, is about some surprising things that your phone can do when you just add a little bit of extra equipment. And for those of you who've been here yesterday, after the keynote and in the afternoon, they know of course exactly what I'm talking about. For those who are watching from remote, let me just a replay a few moments of yesterday. [VIDEO PLAYBACK] -We're going to hand each and every one of you a cardboard. -Here you go. -There's a piece of adhesive tape. [CHATTER] -Wow, that's great. -Oh, dang. -Oh, wow. -Wow. -Oh, fancy. -I think I love this. -Wow, that's crazy. -Oh my god! -Oh, this is incredible. -Oh, that's insane. -Oh, cool. [GASP] -Wow. That's awesome. -Cool. That's fantastic. --[GASP] It says "Fly to Space," when you look up into the sky. [LAUGHTER] -This is so [BLEEP] clever. [LAUGHTER] [END VIDEOPLAYBACK] [APPLAUSE] CHRISTIAN PLAGEMANN: OK. Here goes my clicker. So what you got yesterday, all of you, were these simple cardboard boxes. And what that basically does is you insert your phone into it, and it kind of turns your phone into a very basic virtual reality headset. And what you can do with that is you can look around and experience content in another place, whether it's real or artificial, in a totally different way. Like not on a small postcard size, but actually all around you. And we are making the hardware design and an open-source software toolkit openly available to everyone, because we want people to get started. There's a lot of development in this area already, and we want to really kickstart a lot more of that. And that's why we want to get it into people's hands. And to just to add a few other surprising things that happened yesterday, so just two hours or three hours after we posted our designs on the website, somebody actually came up already with their own construction of it. It's a little bit rough around the edges. [LAUGHTER] But wait another two hours, and on the first online store, there was actually, you could order Google's Cardboard VR Tookit. [LAUGHTER AND APPLAUSE] And we actually express ordered one yesterday. So we kind of ran out, so maybe we can get some more to give out at the conference, but they haven't arrived yet. We got the lenses people can order on the store through our friends Durovis Dive, and those actually all sold out in 20 minutes. So this is really what we had hoped for, just 100 times faster than we kind of anticipated. And the goal of this talk today, which is obviously brief for a big topic like this, is we want to give you a rough overview of how virtual reality on a mobile phone works in principle. We want to explain to you how this project came about and why we started it. It was really like a side project. And most importantly for you as developers, we want to walk you through our open source software toolkit and a sample app, so that you can start hacking right away. And with this, I hand over to David Coz. He actually started this as a side project six months ago in Paris. This is David. DAVID COZ: Thank you, Christian. [APPLAUSE] Hi, everybody. So the first thing to know is that I'm a big VR fan. I just love, you know, the sense of immersion it gives, the fact that you can just look around you in a very natural way at all this content, be it created content or virtual reality, pure content. And there's been so much progress in the space in the past few years. We have, obviously, Oculus Rift doing a great job at putting VR back into the media attention with an awesome device. And also, a trend of mobile phone-based viewers, like the Dorovis Dive or other do-it-yourself projects. And with my friend Damien in Paris, about six months ago, we were really enthusiastic about this progress, and we're thinking, how can we accelerate this even more, so that not just tech addicts can experience VR, but you know, anybody with a smartphone? So our idea was really to build the simplest and cheapest way of turning your smartphone into A VR viewer. And that's how we-- we started to collaborate about six months ago in the Cultural Institute Lab at our office in Paris, which is, you know, a lab space where engineers and artists, thinkers, can collaborate on projects. And we started to really naturally try it with cardboard, because it's so easy. And we know we cut some cardboard into a box, and quickly came up with is really rough design. Looks a bit like the one you saw earlier, with Christian. That really worked well already, and I decided to work on this as 20% project, which is a side project you can do at Google. And we used the laser cutter to build the first batch of almost identical goggles that we showed around at the office. People got really excited, so I decided to take this with me to our main office here in Mountain View. And that's how I met Christian and his team. And they got really excited and enthusiastic about this product, and together we decided to take it a few steps further, in terms of hardware design-- also, the software toolkit and the experiences. And now actually to run some demos, I'm going to ask Boris to build a headset for us. So Boris, everyone is watching you. You have 30 seconds. No pressure. So while Boris is assembling the viewer, let me emphasize why we actually chose cardboard and we actually stick to it. The first reason is we wanted the viewer to feel and look really simple. Everybody's familiar with cardboard. And the idea there is that your phone is really the piece that does the magic here. Your phones are so powerful, it was just great to add this simple viewer on top of it. The second reason is we want you guys to just take scissors, staplers, and just go crazy at it and modify it. And it's just so natural and easy with cardboard. We put the plans online, if you go to our main website. And it's open for grabs. Just go crazy at it and send us your modifications. We'll be really happy to see them. So Boris, a bit slower than the rehearsal. Yeah. OK, great job, Boris. [APPLAUSE] So now that we have these viewer, the question is, what can we do with this? And the first thing that we got really excited about is the possibility to just go anywhere on Earth, leveraging, of course, the geodata we have at Google. So we built this experience with Google Earth, using geodata that we have. And Boris is going to take you on a tour through this. So you can see here the kind of traditional VR screen settings, with two screens, one for each eye. And you can see how the display adapts to the head movements in a really reactive way. Look at how Boris is moving, and this is adapting quite fast. So your phones are doing quite a good job at this, actually. And then using the magnet clicker on the side that we added, Boris can start to fly around the mountains. And it's one thing-- I guess if you guys will try it. It's one thing to see it like this. It's totally another thing to try it, because you have this nice 3D effect. And of course, here the cables adjust for screen mirroring. Otherwise, you can just walk everywhere. And Boris can also start to look up and fly to space. And from there, you can access a selection of nice places that we selected for you guys-- and precached, actually, so that we don't have Wi-Fi problems at the I/O. And now he just teleports himself too Chicago and can look around. So we really like this idea of virtually visiting any place. And not only can you visit a place, but you can also use VR to learn more about them. And that was really important for us, for my team in the Cultural Institute in Paris. We wanted to build this tour where you can, like, take people, take even kids, to learn more about these places. So we used the Street View data that we acquired for this really iconic place. This is the Palace of Versailles in France. And you have a charming local guide that tells you stories about this place, and you can just really look around. It's a very nice way of discovering content. Another kind of interesting thing we tried is this YouTube integration, where basically, it's a massive-- yes, it's flickering a bit. Yeah. It's a massive, giant home theater room where you have this big screen in front of your eyes so you can play videos. And imagine it's like having a giant screen just, like, two feet from your face. And we also kind of made use of, you know, all this space that you have around you. So it's a really interesting use of VR, where we put video thumbnails, and by looking at them-- whoops, something went down, I think. So by looking at them and using the magnet clicker, you can very naturally select a video and play it. It's a bit shaky. So we're really excited about this kind of integration. We think we can-- we have lots of product at Google, lots of products. We can use VR to kind of enhance existing products. And one similar such integration we're really proud about is Google Maps integration. There's actually, right now, as of today, integrations-- we have a Street View VR mode for Street View. There's something wrong with the cables. So you can basically go anywhere where we have Street View, pull up the Street View data, and then you double tap. You double-tap on the arrow icon, and you have a side-by-side screen rendering of Street View. So you can put this on your Cardboard device and get a really good feel for the place. And this actually works on any other phone-based VR viewer. So Durovis Dive, Altergaze, any view. So we're really happy about this. It's not just a demo anymore. It's actually in a live product. Another thing, as I guess you noticed, these were all Android-based applications. But you can also very simply, very easily build similar applications with a browser. And we have this set of Chrome Experiments that you can find out on our website. And this is just using JavaScript and HTML5. It's very easy with libraries like Three.js. So I encourage you to go on our website and check out. The source is absolutely small and nice. And it has nice music. Here we don't have sound, but you have nice, catchy music, so try it. So we have a couple of more demos. We don't have really all the time in the world to present them. I wanted to emphasize two things. The first thing is the Photo Sphere demo is really cool. You take your Photo Sphere and you can really naturally look around at a place you visited before. I think it totally makes sense with Photo Sphere. The second thing is Windy Day. They actually have a booth right there at I/O. I encourage you to check it out. They produced this really nice storytelling movie in a 3D space, and you can just look around, and depending on where you're looking at, the story progresses. So yeah, again, we really want to get you inspired by all these experiences and demos. You can go on g.co/cardboard and learn more about them, get the plans for this viewer. And more importantly, we really want you to build on top of what we provide, in terms of the viewer, the toolkit, and the demos. And Christian is going to tell you more about how you do this. [APPLAUSE] CHRISTIAN PLAGEMANN: So there's really one important thing we want to emphasize, which is this is just a placeholder. Like, this is a piece of cardboard. I think TechCrunch wrote this very nicely yesterday. Is that an Oculus? Of course not. It's cardboard. But we think it can get you started, like, fairly quickly. So that's the point of it. And kind of the principles behind VR are pretty uniformly the same. And I just want to spend a few minutes on describing those to you, before Boris goes into the coding part. So what do you need to actually do to turn a phone into a VR headset? I want to describe three aspects that we put into this viewer. The one, obviously, is the optics. That's kind of one of the crucial components. The other one is you want to interact with the experience, so we built this little clicker. And the NFC tag, which is a neat little idea that lets a phone go automatically from a phone experience into a VR experience and back, like, seamlessly. So how does it work? So imagine you rip off the top, which you can easily do-- you just need to build another one then-- to basically realize there are two holes, and then at a certain distance, there's the screen. So what happens if the user brings the device really close to the eyes, your eyes look through these holes and you have a fairly wide field of view through these holes. And then what happens next is when you put lenses into these holes, that basically concentrates your wide field of view onto a small image area on the screen, like for the left eye and for the right eye. And "all," in quotation marks, that you have to do as developers is render images on these small areas, left and right, that make your brain believe you're in a different place. So that has to be very fast, accurate, as high-resolution as possible. It has to be synchronized well with your head motion. So let's look a little bit closer into this rendering pipeline. So imagine you want to put the user into a virtual space. One of the critical things you need to know, of course, is head where is the user looking at? And what we can do is, the mobile phones, the recent ones of the recent years, they give you very nice, actually, orientation tracking. They have [INAUDIBLE]. And Android provides you-- and all kind of other mobile operating systems, too, or you write your own libraries-- provide you a way of integrating all of these readings over time and give you a relatively fast stream of 3D orientation estimates, like the [INAUDIBLE] of where the device is headed. So if you have those, you can pick your favorite kind of 3D environment, like library, like OpenGL, for example, and you can define the center of this virtual universe as the head of the user. And then you basically put two cameras, for the left eye and the right eye, at eye distance on a virtual rig, and you orient these cameras based on these orientation estimates from the phone. And then you do just the regular rendering that you do anyways for any kind of 3D application. You render one for the left, one for the right eye, and you get these streams of images out. And obviously, you want to adjust the field of view of the camera and kind of the general set-up to match the geometry of your viewer. One last thing that you need to do before you put that actually onto the screen is you have to adjust for lens distortion. So because this lens kind of widens your field of view, you get this distortion effect, which is called the pincushion distortion. Which basically means that outer-image areas are enlarged more than central ones. Luckily, what you can do is you can come up with a model for this. You can kind of fit a function either analytically, because you know how this device is set up and what the lenses are, or you just measure that. Using a camera and a calibration pattern, you can fit a function to this, and then you can invert this function. So this means if you write a shader that basically takes a regularly-rendered image and distorts with this, what is called barrel distortion, this has the effect that if you put that through a lens, the undistorted image arrives in your eyes. And that's how you basically render this entire thing. The next aspect I want to talk about is you have these images on your eye, and they kind of track your head motion, but how do interact with them? You kind of hid the touchscreen in this viewer, and you don't necessarily want to stick your fingers in and kind of obstruct your view. So we kind of had this neat little idea of putting magnets inside. There's a fixed magnet on the inside, and there's this movable magnetic ring on the outside, which if you move this magnet, you can basically detect the change of magnetic field with a magnetometer. So kind of what drives the compass. And I want to show you real quick how beautiful these signals are. We were kind of surprised how clean they are. So what you see here is somebody-- you see three lines, which is the X, Y, and Z direction, like three coordinates of the magnetometer, which kind of tells you how the magnetic field is oriented. And you see when I move this magnet, what kind of beautiful signals we get. And so you can write a very simple classifier that picks up the up and down and translates that into an input event. The downside of this, of course, is you're losing the compass. So inside this experience, we don't know, anymore, where kind of north is. Because we always think, oh, north is where the magnet is. But we figured universal environments, it's much more important you have some way of interacting. Like flying, not flying, starting/stopping a video, opening up a box, or whatever you want to do. So that's a trade-off, and you're completely free to come up with other awesome ideas to interact. The last thing I want to mention is the NFC tag. So we have just a regular NFC tag-- we used a fairly big one so that it fits different phones-- where we put a special URL on it that our framework handles, that basically tells the phone, hey, I'm now in the 3D viewer. Your app wants to maybe switch into an immersive mode. So the long-term vision for this is, for example, you have a YouTube app and you're watching some kind of talk or a sports game. It's nice, but when you put it into the viewer, you have the exact same sports game, but you can look around. And you can hop from, like, player to player, or all these kind of things. So you can think about all kinds of applications that can go seamlessly back and forth and in and out. That's where kind of also this mobile concept is a bit different from these really head-mounted concepts. But with a stapler, you can, of course, transform this into head-mounted. And this is all nice. It's not that super difficult to do this kind of rendering in type end. But we wanted to make it as easy as possible, so we packaged, basically, the hard pieces up into one open-source library, which you can find on our website. And Boris will walk you through kind of the APIs and how you can start coding. [APPLAUSE] BORIS SMUS: Thanks, Christian. Check, check, check, check, check. All right. So as you saw, we demoed a bunch of things at the beginning of the talk. Some of them were written in Android, but the coin collector example was actually written in Chrome using Three.js, which is a lightweight wrapper around WebGL to make developing 3D applications for the web super easy. And we used, also, JavaScript events to track the position of the user's head. So it's an easy way to get started. But of course, with Android, we can get a little bit closer to the metal. So the toolkit that we are open-sourcing today is an Android-based VR toolkit, as Christian introduced, designed to make developing VR applications as easy as possible. So today, if you go to g.co/cardboard, what you get is the soon-to-be open-sourced-- we're working on a couple of tweaks-- VR toolkit, so this is just a JAR file, and a sample that we'll be talking about more throughout this session. So what is the sample we're going to be building? It is a treasure hunt application. So the idea here is there's an object hidden somewhere inside your field of view around you, and your goal is to find it and collect it. The way you collect it is, of course, through the magnet, and the more objects you get, the more points you get. Very simple. So we'll start with our favorite IDE. Get the JAR from the website. Put it in as a regular dependency. And the first thing we do is create our own custom activity. But instead of extending from the default Android activity, we'll extend from the Cardboard activity, which the toolkit provides. This does a few things. Firstly, the screen is forced to stay on. The screen is placed in landscape mode, and we hide all of the UI on the top and on the bottom of the phone screen, typically the navigation bar and the notification bar. We also disable the volume keys, because often you might accidentally trigger them. These are, of course, just defaults and can be overridden, but it's a good starting point. still, we have nothing on the screen for now. So what we'll do is we'll create an instance of the CardboardView, which is a view that extends from GLSurfaceView, which is the standard way that you render 3D content for Android. The way we'll do this is in our activity, we override the onCreate method with a series of simple steps. Here we find the view in our layout hierarchy. Next, we tell the Cardboard activity that we should be using this particular view, set the renderer, and we're good to go. So before I go too deep into the renderer itself, let me quickly recap what Christian just told you about the rendering pipeline. So there's four basic steps. First, we need to estimate eye positions, to figure out where to place the two virtual cameras in our scene. Next, we render the scene. So we take the world space and project it into eye space for both eyes. Then each eye needs to have its lens distortion corrected. And finally, we place the two displays side by side in landscape stereo mode. As far as what the toolkit provides for you, it's actually quite a lot. So the first thing, we have a head tracker that we're releasing. This also includes an eye model. So we have a basic distance estimation between two average human eyes, so we know where to place the cameras. Once the scene is rendered, we correct for lens distortion based on the optical properties of the Cardboard device. And finally, we place the images side by side, leaving you only the rendering. The second step is the only thing you need to worry about. So to do that, we make a custom renderer, the TreasureHuntRenderer here, and you can see it implements an interface that our framework provides. And there's two methods you need to care about here. The first one is onNewFrame. This gets called every time a frame is rendered, and it takes in the HeadTransform, which is roughly the heading of where the user is looking. So here we'll save it for later, because we're going to need to know if the user's looking at the treasure or not. The other thing we can do in onNewFrame is update the model. So typically there's an update/draw cycle in many graphics applications. So we'll just increment a time count here. So that's the first method. The next is we need to implement onDrawEye. And this gets called twice for each frame, once for the left eye and once for the right. And, of course, we pass in the position of each eye, or of the eye order rendering, which includes a bunch of parameters that you need to draw a scene. So as you expect in a GL application, first we set up our matrices. So we go from View and from Perspective to Model-View-Projection matrix, and then we draw the scene. Now it's important that we do this operation as quickly as possible, because introducing any latency into the system can have undesirable effects, let's say. I'll go more into this later. So at this point, we've rendered our scene. Here you can see our treasure, which is a cube. And it's, you know, it's there. But of course, once we pass on to the framework, we take the scene, transform it by the head orientation, by each eye-- so each eye has a separate camera-- and we apply the lens distortion and place the results side by side. So we have our treasure, teasing us, but so far, we haven't figured out how to collect it. It's very simple. So as Christian mentioned, we have these magnetometer traces. And we've provided a way to detect this pull-and-release gesture very easily. All you need to do is, in the activity, implement onCardboardTrigger. And for our application here, we can see the code is straightforward. If the user's looking at the treasure, then we pick it up. Otherwise, we tell them some instructions. But lastly, we want to somehow emphasize-- or I want to emphasize-- that we want to provide user feedback here, since we want to know if the magnet pull was actually detected by the framework. And a good way to provide this feedback is through a vibration-- but make sure it's a short one, because long vibrations with the phone so close to your face can be a little bit jarring-- or a quick AlphaBlend, just a transparency blend. OK, the last piece of input is the NFC tag. And as we mentioned earlier, it's an easy way to make these amphibious applications that can adjust to being inserted or removed from the VR enclosure. So in our example, for the purpose of this illustration, we may want to make our treasure hunt app also work when you take it out of Cardboard. In that case, we want to present not a stereo view, but a single view. So the toolkit provides this very easy flag that you can toggle, which is VRModeEnabled. And all you do is you flip that flag and go between the stereo and regular modes. Of course, the NFC tag has something encoded in it. So you don't need to use our framework to detect it. You can just use a regular intent filter, as you would in an Android application, to know if the tag has been scanned or not. Now another benefit of having this tag in the device is that if you want to make hardware modifications-- which we hope you do-- then you can encode these changes inside the NFC. So for example, you want to increase the field of view of the lenses. You can change the parameters of the distortion that you need to apply. Or you want to increase the interpupillary distance, which is the technical term for the distance between your eyes. You can also encode that in the NFC tag. And this way the toolkit can provide the best possible rendering even for your modified device. OK, so we've talked a bit about using the framework. And we've used this framework extensively over the course of the last couple months. So what we've learned, though, is that quite obviously, building an Android application is very different from building a VR application. So I want to leave you with three principles which we've found from this development process. The first one is very well-known in the VR community, and it is to keep physical motion and visual motion closely coupled. The idea is that the brain has two systems, roughly speaking, to detect motion. One is the vestibular, which is sort of your sense of balance, and the other is your visual, which is, obviously, your eyesight. And if the systems are not in sync, then your illusion of reality in a VR environment can go away, and you can even get motion sick. So we've found that it helps, for example, to relieve this problem, to place the viewer in a fixed position. Let them look around. Or if you want to create motion, then make them move forward at a constant velocity in the direction of view. There are probably other ways of doing this, but these two things, we've found, make it a pretty good experience that's not very sickening. So the other thing is you need to keep latency down, as I mentioned in the onDrawEye discussion, because having high latency really takes away from this illusion. The second idea is to keep the user's head free. So the YouTube VR adaptation that you saw showed the user positioned inside a movie theater, as opposed to placing the movies strictly in front of their eyes and sticking to them when they move. So the idea here is that we want to create an immersive environment, and this, in practice, seems to work a lot better than just putting things in screenspace. Lastly, really take advantage of the giant field of view that Cardboard gives you. And essentially what we're giving you is a 80-degree FOV right off the bat, which is like being a foot or two away from a 50-inch TV screen. Not only that, you can look around in any direction. So you have this infinite virtual screen around you. And it really helps to take advantage of this. So I want to emphasize that it's still very early days for virtual reality. And our toolkit is just the beginning. It's just the tip of the iceberg, and there's a lot more to explore. Obviously smartphones have tons of additional sensors that we haven't tapped into. There's a microphone present. There's an accelerometer. I've Seen demos where you can detect jumps. You can, of course, interface with accessories like game pads and steering wheels, et cetera. And also, I'm particularly excited about combining this 3D immersive video experience with a sound experience, as well. So imagine wearing a pair of stereo headphones, in addition. So of course, also, we have a camera in the device. So I want to call David up to show us a demo of something that uses the camera, as well. So David is going to fire up a demonstration in which he can manipulate a virtual object in front of him using the camera inside of the phone. So this is using the Qualcomm Vieuphoria library, which is a pretty advanced object-- DAVID COZ: Whoops. BORIS SMUS: A pretty advanced configuration library. And we've augmented our demo. DAVID COZ: Sorry for that. BORIS SMUS: No problem. So anyway, the idea here is David will have-- actually, your Cardboard comes with a QR code, which this demo will be showing you. So essentially, when you look at the QR code, you can manipulate this piece of cardboard in front of you. So give us a second here as we try to get it going. So as you can see, it's just a slightly modified version of the app. So you can see, as I move this piece of cardboard, the Vieuphoria library is actually tracking the marker. DAVID COZ: And I can still look around in a very natural way. BORIS SMUS: So we can combine-- by just having a simple marker and a camera, we can get this really cool effect. So imagine if you were to combine our technology with a Tango device, which gives you six degrees of tracking in almost any environment. Great. Thanks, David. So with that, definitely check out our website, where you can download the toolkit itself. It'll be open source soon. We have docs. We have a tutorial for you to get started that goes through this sample. Also, tons of samples, including Chrome ones, on chromeexperiments.com, and Android ones, the ones that we showed you today, which is available in the Play Store. And if you want to hack on the physical model, then we have all the plans there for you. So we can't wait to see what you come up with. Thank you all for listening, and we'll take about five minutes of questions. [APPLAUSE] CHRISTIAN PLAGEMANN: So for the questions, if you could walk up to the microphones, that'd probably be easiest. BORIS SMUS: Yes, go ahead. AUDIENCE: Hi. Oh, this is so cool. I really love it. I just had a quick question for you. I hope you can hear me. The trigger that you had, you seem to have kind of like tied it to the magnetic thing. So I was wondering, is it possible to do it through double-clicks and things just by using the one waveform you have? Or does that need the framework to actually support those methods? BORIS SMUS: Right, so thank you for the question. The question was about supporting double-clicks using the magnet clicker. And the answer is we can do a lot. The problem is right now we're using a calibrated magnetometer, which is the thing that's used mostly for the compass. And the thing with the calibrated magnetometer is it calibrates every so often, which is this event, and it drastically messes up the signals. So a lot of modern phones-- I think the Nexus 4 and 5-- have an uncalibrated magnetometer, which you can use and it does not have this calibration event. So with that out of the equation, we can do a lot more. We've even thought about, like, having a full joypad on the side of the cardboard device, with the magnet able to move in any direction. So this is something we can do once we've switched to-- once enough phones, I guess, have uncalibrated magnetometers. AUDIENCE: Can you elaborate-- is there any way for users to readily generate pictorial content? For instance, if you're taking a vacation and you want to capture, what do you do? CHRISTIAN PLAGEMANN: Yeah. So one thing we haven't demoed right here, but you should come up to the Sandbox and really try it out, is the Photo Sphere viewer. So there's actually an app that someone in our team wrote that can actually show you photo spheres in this viewer. So you can actually take those with your device, and it actually takes the local files from your device, and that works well. And of course, you could come up with a picture view just for regular pictures that-- just very large. And there's actually, the app has an intent filter already, so you can just click on any photo sphere in the web, for example, and it would launch that particular viewer, or give you the option. BORIS SMUS: Yes? Go ahead. AUDIENCE: Yeah, two questions real quick. One is I know there's a lot of 3D content on YouTube. Might this just become a good way to view that stereoscopic content? Right now, it looked like it was 2D content in the examples you had. Is that right? DAVID COZ: Yep. Yeah, so those were 2D videos, just regular videos. But it's true that you have a lot of side-by-side videos on YouTube. That's actually how we kind of proved that this concept was working, was putting a YouTube side-by-side video and have the depth effect. So I yeah, the YouTube team might want to do this in the future, but we cannot really comment on this, I guess, now. It's a bit too early. AUDIENCE: OK. CHRISTIAN PLAGEMANN: It's a natural thing. Like it's very clearly possible, and there are actually apps on the store that do this. AUDIENCE: And the other question is it seems like a compass would be really great to have in these kinds of situation, especially for navigation-type tools. Might we see a future version of this that just uses voice commands to navigate instead of the magnet to click? BORIS SMUS: So the question was, can we replace the magnet with voice commands in order to free up the compass? AUDIENCE: Right. BORIS SMUS: I think-- so voice commands can be a bit unwieldy for a quick action. I mean, it's certainly something to explore. I mean, there's certainly a microphone in the device. So you can do so much more. Like one of the things that we thought about was combining a tap on the side, the accelerometer impulse, with the microphone signature of a tap. So you can imagine doing all sorts of different input modes that would free up the magnet, or free up the magnetometer, for the compass. AUDIENCE: Cool, thanks. BORIS SMUS: Yeah, there are many ways. One particular reason why we didn't look at speech was we give it out to 6,000 I/O attendees, and everyone tries to speech-control it, then it gets a bit loud. AUDIENCE: Could you manipulate objects with your hands? Have you tried that? CHRISTIAN PLAGEMANN: Yeah, of definitely. AUDIENCE: I know you did the QR Code, but-- CHRISTIAN PLAGEMANN: I mean, take a gesture-recognition library, like you can recognize the finger, you could do these kind of things. AUDIENCE: But it is possible with the kit that you put out today? CHRISTIAN PLAGEMANN: No, it's not in the kit already, but there are many ways to do this. It's again-- I mean, it's computer vision, right? So you need to detect hands, need to detect gestures, and it's a regular computer vision problem. But actually, the cameras in these are really good. BORIS SMUS: There's also some interesting prototypes with the Oculus, for example, and a Leap attached to it, where you get a full hand-tracker in front of you. So you could look into that, as well. AUDIENCE: So there's no [INAUDIBLE] reference. How do you guys compensate? Do you guys have any compensation for the drift? Because over time, like when you're rotating sometimes, and when you come back, it's not in the same location. Does the experience-- DAVID COZ: So the question is about heading reference? Like, yeah-- AUDIENCE: Yeah, because over time, your [INAUDIBLE] has-- DAVID COZ: Yeah, so it's true that right now, we don't have any reference, because the compass is kind of modified by the magnet. So you can have this problem. It depends a lot on the phones, actually, on the kind of calibration that you have in your sensors. It seems that on, for example, recent phones, like Nexus 5K, it doesn't drift so much. But on all the phones we tried, there was kind of a significant drift. So it's something that we want to work on in the future. BORIS SMUS: Are you guys planning on working also position tracking using just a 2D camera? That would be a great Tango integration, right? So Tango does 6D tracking, just with the reference of the scene around you. DAVID COZ: We actually built a Tango-compatible Cardboard device. It's very easy. Like you just need to increase the width of the Cardboard. CHRISTIAN PLAGEMANN: And actually, the 2D camera itself can provide a pretty good, actually, drift compensation. So you can actually-- I mean, you track features over time. And then usually, these drifts are very, very slow, so usually they accumulate over time. Like these are usually not big drifts that are kind of showing-- AUDIENCE: Yeah, it's just, like, depending how fast the camera can detect the features, then? CHRISTIAN PLAGEMANN: Uh, sure. Yes. AUDIENCE: Thank you. AUDIENCE: Windy Day is fantastic on the Cardboard. I was wondering if you expect to get the rights to the other Spotlight Stories? CHRISTIAN PLAGEMANN: Oh, we were absolutely, absolutely amazed by what the-- like we talked directly to the Spotlights team, and it was actually the Spotlights team, like the [INAUDIBLE] team in the previous presentation, that integrated all this tech into the Cardboard, and it works so well. And I'm pretty sure they would be more than happy to integrate their others, as well. DAVID COZ: The limitation here was just the size, because we embed all the assets in the application. So it was just a question of size. AUDIENCE: Thank you. BORIS SMUS: Go ahead. AUDIENCE: One of the things that came to mind as an alternative to your magnetic button-- which I think is very clever, but I'd really like the magnetometer. One of the things I saw at AWE was, what you can buy online for $20, is a little pocket Bluetooth game controller. So I think that would be a good thing. And then I'd like to know when you think you'll have here your Cardboard Eyetracker ready. Because I think that's a good thing. [LAUGHTER] CHRISTIAN PLAGEMANN: Yeah, that'd be nice, too. It's tricky. We thought about it. Like using the inward-facing cameras. Like one of the major design problems with this is there's so many different phones out there. Like to basically, just to find a hole that kind of fits all the outward-facing cameras, and to kind of find the right form factor that fits most, that was already challenging. And now if we want to come up with the optics that project the inward-facing into your eyes, it's a bit more work. Oh, but totally agree. Would be an amazing input. BORIS SMUS: OK. That's it. Thank you very much, guys. CHRISTIAN PLAGEMANN: Thank you. [APPLAUSE]
B1 boris cardboard vr christian view viewer Google I/O 2014 - Cardboard: VR for Android 47 9 colin posted on 2017/04/26 More Share Save Report Video vocabulary