 Hi, I'm Yasha Jain and I'm an augmented reality and virtual reality developer right now and this is a talk about how to get started into this. And I changed the topic from building your app to gimmicking into AR because in like the one hour, I think we can kind of sort of make something that's more gimmicky than actual augmented reality. Just a show of hands, how many of you have Unity downloaded? Okay, cool. So you guys can follow, it's downloading. Okay, cool. This time for Unity to come into play, so you can catch up. Just a basic overview of what augmented reality is, is currently you can say that it's something where you're overlaying digital information on top of your current world. But there are other augmented realities where you're removing information also from your real world. So you can kind of block things you don't want to see. That also falls under the same category. On the left of this, you can see two examples where one of them, the lower one about with the car is a really neat application of AR where while you're driving, you can see the lane. The cars can kind of project a zebra crossing on the road to detect that, you know, pedestrians can cross or not cross at what time. So those are some really beautiful examples of AR. The Pokemon Go, which did kind of get a lot of momentum about AR, but I don't consider it as much, is because it doesn't really have environmental understanding about where a tree is or where is the ground plane or where should the Pokemon come up. It was just based on where in the world you are. So I mean, it absolutely lagged the basics of augmented reality that is understanding your environment, where you are. Are you on a table? Are you on a chair? Are you in the air? So these concepts were missing on the Pokemon Go app. So these are the basic three types of augmentation that are in the world right now. The first one is a marker-based AR. That's something we'll be doing today. The second is a marker list where you can place objects anywhere in the world. You don't need like a basic space to put it. So you can hang objects in the middle of the air or anywhere you want. The third is something that Google came up with, I think last week or so, yesterday at the Google I.O., I think, where Google Maps will now have AR-overlaid information. So as you move around the world, you can see markers asking you to go left or right, displayed on your phone screen. Cool. So I'm sure you guys probably have heard of Apple's ARKit, Google's ARcore, and the third one is euphoria. So between the three of them are basically most of the apps that are developed around right now on your phones are using these three softwares. I personally prefer euphoria because so ARKit is specifically just for Apple ARcore, is specifically just for Google and Android phones. And both of them require very heavy specifications like ARKit requires, iOS 11, ARcore requires, Android North, that's seven point something. But euphoria's augmentation can work on Android 4.0 or something like really old. So if you're looking to develop, I would suggest going with euphoria for now. Cool. So basically how augmentation works right now is that you have an image. You ask a software to make a target out of it. Like, oh, my phone can now detect this image and overlay some information on top of it. So the first part of creating an augmented reality interaction is to first find good images that have a lot of information on it. So source a lot of images. Oh, I want to create an AR app that shows, suppose, a dragon on this cat. So take images of this cat and see what kind of images work. I'll show you how to detect which images are good or not. And then convert them into target. Send them into Unity. Unity is the game-developing engine that will be used to create these experiences. And then in Unity, once you have the environment set up for augmented reality, you can really start playing with it. So the first three steps are something of a workflow that you always have to do, but it's super basic. So onboarding is really easy. Just in case people who have not used Unity here, it's a very basic platform. And it has two components to it. One is whatever you put into Unity will be, generally, it has an object. So it will be like a shape or a cube or, suppose, a character. And you can give whatever behavior you want via a script. Cool. So I think let's get started with the actual development. So how many people are going to follow hands-on? I would really recommend doing it hands-on, because it's the most fun thing ever. Cool. So go to this website, viewforia.com, and then go under Develop. Do you guys have a Viewforia account made already? No? OK, cool. I'll give you some time to go into this website, go here, and create an account for yourself. For those guys who are not doing it hands-on, please feel free to ask questions of what's going on, because it's like a workshop more than a talk, so it's fine. Cool. So if you guys are here already, then there are two basic things in Viewforia. One is that you get a developer account for everybody who's developing. And the second is you upload your images here. So just tell me once you guys have an account developed and created here. Is there anybody there on Viewforia? OK, cool. So just log in, go to Develop. That's your developer's account. And go to Get a Development Key. Give it whatever app name you want to suppose, my first AR app, and then hit Confirm. So what this does is it gives you a license to create as many apps as you want. This is something that you have to do every time. And then scroll down under your License Manager to find your AR app. This is giving you a key that will be used inside of Unity. So Unity keeps continuously talking to Viewforia that, oh, this is the person who has a software downloaded. That's the license key. And you'll need that eventually. Cool. So I'll suggest go online, find any one image that you want to make a marker out of, or overlay information on top of it. For example, I'll show you how to do that. Next to License Manager, there's a tab for Target Manager that's basically all the targets or the image targets that you can use. Go to Target Manager and hit Add Database. So this database will be for all the targets that you want to make into images that you want to make into targets. So Unity, give it any name that you want. And it should be here somewhere. I can show you some examples of other targets that were used. I've used earlier. I was trying to use my t-shirt as a target today. And every time you upload an image, it will show you that this is a single image and its status is active. So every time you see status as active, it means that this image can be used in other platforms as a marker. And this part is really important. The five stars that are given are basically telling you how good a target of an image is. So if you're anywhere below four stars, it means that your image is not really good to be used as a target. You can hit on Show Features down here to see what kind of features Veforia is recognizing. Cool, Fano. Go into Target Manager and put in an image there. Just choose file, whatever image you want to test with. Suppose I choose a geometric image that I want to overlay information with. Look for any image online. Just test it out. Sorry. Suppose I'm going to use this. So you can use a bunch of images that you think are good, though. Cool. Is anybody here with uploaded an image here? That can be any random number. It doesn't really matter here. Cool. Are we here? Guys, everybody is here with an image. What are the kind of star ratings that you're getting? Five, yeah. Five, four also is good enough. Five, great. All right. So select this, whatever image you have, and download the database. When you download it, it'll give you an option for Android Studio, Xcode, select Unity Editor. So Veforia can be used across multiple platforms. But for now, we'll develop in Unity and hit Download. So what Veforia has done right now is it's taken this image and told Unity, oh, if you see this image, use it to overlay information on. You'll see it has downloaded a Unity package with its name on it. It'll say the name of your marker and dot Unity package. So these are things you can now take into Unity. Everybody here? Or are you getting the idea? Take your time. Please ask if you're stuck anywhere. We're good. It's like those people who've already got a marker downloaded. Try a few different images just to see which work and which don't. If you want to see what kind of features Veforia is detecting, so it basically will give a higher star rating to things which have more randomness in it, rather than things which have more patterns in it. So if you have, suppose, circles laid in a continuous pattern, it won't be a really good marker because the software can't really make a distinction between what is one coordinate of the image and the other coordinate. So it needs to have a lot of information on the image, like this example. You can hit here to see what are the feature points of every image. OK, show of hands. Who has this downloaded or not downloaded? Cool, cool. OK. Should we go ahead? And Unity, everybody has Unity now? No? Yeah, OK. So people who have Unity, just go to the Downloads tab and download the Unity extension from here. Who has this sorted out? One more group to go. And do you have this extension also downloaded? Just download this extension. OK, cool. Now we can get into the fun part of things. So this is the setup that you have to do for every time you make an AR app. So take an image, make a marker out of it, and now we can go into Unity and start having some fun. OK, should I wait for you guys? Are you close to downloading Unity? No? OK, cool. Yeah, it's a huge package. It's a huge download. Cool. So you guys have this downloaded? The Unity extension also? Awesome. OK, let's go to Unity and make a new project. Give it whatever name you want, AR app, ZKM. And then just hit on Create Project. So you should be greeted with this scene here. That's the go-to scene for Unity. It's like a really ugly gray UI, and they don't let you change it. I don't know why. Everybody here? Everyone, guys? Yeah? OK, cool. So the first thing you need to do is import a bunch of things that you have downloaded from the Vuforia website. You need to import two things now. The download package from Vuforia that you got from here, this package, and your AR image target marker that you downloaded. So to import it, just click on it and drag it into Unity. And it will import by itself. And then hit Import. Are we all here? Yeah? One yes, two yes, three yes. Cool. Have you imported both the packages, the Vuforia image, and the Vuforia package itself? All right. OK, now go into the main camera and delete it, because this is just a default camera that Unity provides you with. You need extra special things that the Vuforia camera will provide you. So in case you, if you go into your Asset folder, if it asks you to update an API, just say yes and go ahead. Cool. Do you guys, everybody has both of it imported? Cool. So if you go into Vuforia, Prefabs, you can find an AR camera under it. Go into the Assets folder, Vuforia, and then Prefabs. Once you've deleted the main camera, you need to give it another camera that has all the image recognition capabilities and all those scripts on it that Vuforia pre-compiles and gives it to you. So just there's a Prefab there called AR Camera. Use it and drag it into the left scene that is under the hierarchy here. Do you guys have it? Is everybody on with the AR camera? So I have a different version of Unity, and so my Vuforia is pre-integrated. I don't need to drag-drop things. Who has the AR camera in their scene now? One. Guys, can I help with something? Where are you guys stuck at? Oh, OK. Did you go to Vuforia under your Assets folder? In your Unity scene, you'll have an Assets folder. No Vuforia. Cool. So did you download this package here? Can you locate it on your hard disk or your laptop? Can you drag-drop that into Unity? Yeah. Yeah? OK, yeah. Cool, cool. All right. So you need to get into things now. One is your camera, and the other is the image that you want to augment over. So go to Vuforia, Prefabs. It should have an image target under your Prefabs folder. Mine lies here somewhere. Did you go to this path? These are basically the only two things you need to import into Unity. Who has this sorted out? Go, guys. Is it important for you? So I'll just talk over the Unity UI till then till it imports for all of you guys. This is the part where you can put in all the objects that you want to put in there. So your characters, your game, your terrain, all of it comes on this side of the scene. And under Inspector, you can find all properties for the object. So my camera has a transform. That's the position. It has properties of a camera. It has properties of Vuforia. And in all your design, you keep shifting between this tab and what properties you want to add to the objects. Is anybody else? Did it import for anyone else yet? No? Did it import for you? Not yet. The image target? OK. You go to develop. Yeah? Yeah. Did you drag drop both the packages? Yeah, cool. So you're good. All right. So now that we've one final thing to do is go into Unity, File, Build Settings here. Now we have to tell Unity to be compatible with Vuforia right now. Go into Build Settings and Play Settings. There's like a little line here that says Vuforia supported and say yes. That's it. OK, who's here? Anyone finish the step? Cool. I'll just come walk around to help you guys. Yeah, yeah, yeah. Did you import one sec? Which one is yes? Say yes. Can you reopen Unity? I think it needs to quit and open again. Save, yeah. Are you guys good? Click on this one. It'll download a package. This itself. Yeah. Just open it. And we need to install. Just hit. Yeah, no, I think there's some version control that they're doing. That's fine, just go ahead. I think double clicking or something should install it there. Maybe extract this. No, it's already imported. Just cancel this. I'm not sure why it should automatically install for it. But then we can get back to this. You can do the rest of the steps without doing over this. Are you good? Oh, you need to go here. It'll install automatically downloaded somewhere, I guess. All right, OK, OK, OK. Cool, and just go ahead with it then. OK, I'm not sure what the problem with Linux is, but I'll just quickly walk through the rest of. There's just two more steps left. You go to your camera and open the configuration here. You need to put your license key that you got as a developer. So remember you made this long license key here. Yeah, take this, paste it in here. And then since you've imported your image target, it says, under Database, load my first database. So load it, activate it, and you're done. I can go back to my image, give it this app, and it sees that this was my image target. So if I give it, so once my image target is set up and my camera is set up, I can overlay whatever I want to over this image. So if I ask, create a cube that's an inbuilt structure within Unity, so I go and make a cube here. Drag it over the image target. Just increase the size a little bit. And if I quickly, is anyone else following? Yeah, my Unity crashed. There it is. Basically, those are the final steps. You add a camera, give it your license here, and add an image target. There are some predefined images here, but my data set was called my first AR app. And then if I hit play and it doesn't crash again, it crashed. I mean, I think it's because of the projector that the camera is not being detected. But yeah, those are the basic steps of getting your app working. If you can figure out Unity, it's always like a challenge to get the environment set up, as it is with every software. But once your first environment is set up, it's a very straightforward workflow. Cool.