[MUSIC PLAYING]
EITAN MARDER-EPPSTEIN: How's everyone doing today?
Yeah?
Good.
All right.
Well, welcome to Google I/O. My name is Eitan Marder-Eppstein.
And I am an engineering manager here at Google.
And I work on augmented reality.
And I'm going to take a few polls throughout this talk.
And the first one is how many of you
are familiar with augmented reality in general?
OK.
Every time I give a talk like this, more hands go up,
which is a really, really great thing.
And today, what I'm going to do is
give a quick refresher about augmented reality for those
of you who maybe aren't quite as familiar with it,
and especially how augmented reality relates to smartphones,
which is something that we're really, really
excited about here at Google.
And then I'm going to talk about some of the things
that we're doing at Google to improve
our platform for augmented reality and the capabilities
that we give to some of these devices.
All right.
So I need my clicker.
So I'm actually going to go over here to get
the presentation started.
But off we go.
So smartphone AR stems from this observation
that over the last decade, our phones
have gotten immensely more powerful,
CPUs and GPUs have improved a lot.
But the ability of phones to see and understand
their environments, and really make sense of the world
around them, until very recently was
largely unchanged and limited.
So if you pointed your phone at this table,
it would allow you to take a picture of the table
or even a video of your friend climbing over the table.
But your phone wouldn't really have an understanding
of the geometry of the table, of its position
relative to the table as it moves through space.
And so what augmented reality seeks to do on smartphones
is to take all of this amazing advancement in computing power
and leverage it to bring new capabilities to your phone,
and to take your phone from beyond just the screen,
beyond its own little box, to expand it to understanding
the world around it.
So now, when my phone looks at this table,
it can see that there's a surface there,
that there are chairs next to it.
And as I move through the environment,
my phone can actually track its position as it moves.
And we think at Google that augmented reality
is really exciting.
And we've been excited to see some of the stuff
that you've built. And we've categorized it
into two main buckets where we think
augmented reality can be really, really great for applications.
So the first bucket is we think that augmented reality can
be useful on smartphones.
So recently, I was remodeling my kitchen.
All right, another poll-- how many of you
have remodeled anything in a house?
All right.
So if you've done that, you know that measurements
is a real pain.
And what I needed to do was measure for a backsplash.
We were buying some subway tile for our kitchen.
And I, instead of taking a tape measure out,
actually pulled out my phone, went to my counter,
and measured from point A to B to C. And I did all of that
without moving any of my appliances
where I would have normally had to move in order
to get an accurate measurement with my tape measure.
So AR can be useful in that way, just
from providing a better geometric understanding
about your environment.
AR can also be useful for shopping applications.
So recently, we had some very old chairs at my house.
And my partner and I were looking to replace them,
kind of like these chairs here.
And we were getting into a debate over which
chairs we liked more.
And so with augmented reality, we
were able to take a 3D model of a chair,
place it in the environment, see the exact size and scale
and color.
And we could have our arguments about inevitably
what kind of chair we would have at home
rather than exposing everyone to it at the store,
and be more targeted about how we made our purchase
and even buy this furniture online and feel much more
comfortable with it.
So that's how AR can just provide more utility
in your daily life.
But AR can also be fun.
So imagine a character running across the floor,
jumping onto this chair, and jumping onto this table,
or me sitting in one of these chairs
and having the floor drop out from under me
to create an ice fishing game.
Ice fishing sounds a little bit boring,
but I can tell you that in this game,
it's actually a lot of fun.
And AR can also be used for creative expression.
So here, now in your pocket, you have a lot of ability
to go out and create new things that
were previously only capable to be created by professionals.
So you can generate computer-generated content
on the go, on the fly.
You can take your favorite character
and put them into your scene, and have
your friend pose next to them.
Or you can take pizza or hot dogs or your favorite food
items, as we showed here, and put them
on the table in front of you.
But now, you have this amazing video editing capability
in your pocket.
And for those of you who have seen our AR Stickers
application on the Google Pixel phone,
you know what I'm talking about.
And for those who haven't, please check it out.
It's really, really cool to have this creation
power in your pocket.
All right.
So that's great.
AR can be useful.
AR can be fun.
But how do you actually build applications for AR?
How do you get involved as developers?
This is a developer conference.
So how many of you are familiar with ARCore, when I say ARCore?
All right, about half of you.
So ARCore is Google's development platform
for augmented reality.
We want to make it easy for you to build applications that
take advantage of these new capabilities
that phones provide, of the ability of phones
to see and understand their environments,
and to build applications that actually
react to this understanding.
And ARCore was launched a few months ago.
And it provides three main capabilities
to allow you to do this.
The first is something we call motion tracking.
So here, consider the example of taking the Scarecrow
from "The Wizard of Oz" and wanting
to place the Scarecrow at a taco stand
and make it seem like he's waiting in line for tacos
because everyone loves tacos.
So here, if I look at the Scarecrow with my phone,
ARCore actually understands its position
relative to a virtual object that I've placed in space.
So as I move a meter forward, the phone
knows that I've moved a meter in this direction.
And as I turn left, the phone also knows that.
It's able to track its motion as I move through space.
And now, if I combine that with my desire
to place the Scarecrow a meter in front of me,
I can put the Scarecrow right here.
And as I move my phone around, I can
change where I'm rendering the Scarecrow in the virtual scene
to match my physical environment.
So that allows you to register virtual objects
to your physical scene in a very natural and intuitive way.
The second capability that ARCore provides
is something called lighting estimation.
So here, continuing our "Wizard of Oz" theme,
we've got the Cowardly Lion.
And when you turn off the lights,
say we want to make the lion afraid because it's cowardly.
So here, ARCore is looking at the camera feed
and it is estimating the real world
lighting of your environment.
And with that estimate, ARCore can now
light characters in a realistic fashion,
helping you to build a more immersive experience that
looks natural because the virtual objects that you're
putting in your scene look correct.
So you can see the tone on the lion change
when it goes from light to dark.
And you can even script interactions
for your characters.
In this case, making the lion afraid when the lights go off.
And the third capability that ARCore provides
is environment understanding.
So here, as ARCore is moving around the world
and it's tracking its motion and it's also
estimating the lighting of the environment,
ARCore is also trying to recognize surfaces.
So ARCore might recognize this plane
below me which is the ground, or this surface here
which is the table, or even maybe
this vertical surface behind me.
And it allows you to place objects
that are grounded to reality.
So if we want to place the Android character
on this table, I can detect the surface
and actually place my virtual character on a physical object
in the world.
So those are three capabilities-- motion tracking,
lighting estimation, and environment understanding.
And when you combine them together,
it allows you to build these experiences that
were previously impossible, that bring
the virtual and physical worlds together
and meld them into a new reality that
enables people to see and experience your application
in a new and different light.
And we're really excited about this and the opportunity
to bring apps to our ecosystem for it.
And so we have worked really, really
hard to expose support for ARCare
on as many devices as possible.
And with help from our partners in our Android OEM ecosystem,
today ARCore is supported on over 100 million devices.
And we're working to increase that number every single day.
We believe that augmented reality
is a next shift in computing, and that soon everyone
will take for granted that this power is in their devices.
So that's our scale.
But we're also interested in scaling
the capabilities of ARCore.
We want to teach ARCore to do new and interesting things.
And that's what the rest of the talk is going to be about.
So today, we're announcing some new things in ARCore.
And they fall broadly into two categories.
The first is we're announcing some new capabilities
for ARCore, improving what these devices can do.
And those are Augmented Images and Cloud Anchors.
And we'll talk about them in the talk today.
And then we're also announcing some new tools for ARCore.
One new tool is how you can use augmented reality
on the web, which we think is really exciting.
And you can check a talk to that later today at 12:30 PM.
And another is how you can more easily
write 3D applications for Android and AR specifically.
We've introduced our scene form library,
which is a helper library for 3D rendering on Android.
And we encourage you to check out that talk at 5:30 today.
So enough about the preamble.
We're now going to get into the meat of it
and talk about what's new in ARCore.
And I'm going to kick it off with our first feature, which
are augmented images.
So augmented images stem from your feedback.
We've heard you as you develop augmented reality applications,
ask us, hey, AR is great.
Wouldn't it be better if we could also
trigger augmented reality experiences off
of 2D images in our environment, like movie posters
or textbooks?
And so augmented images seek to do just that.
Augmented images provide a mechanism
to take a 2D texture in the world
and make it more engaging by expanding it
to a 3D interactive object.
And to show a concrete example of this,
consider the case where we have a new children's toy.
It's called Castle Toy, I think.
And we have told ARCore, hey, we want
you to recognize the surface of this Castle Toy box.
So now, as part of the product, you
can hold up your phone to it and you can actually
have an immersive experience come out
of that box, a more engaging experience for your product.
So augmented images allow you to detect these kinds of textures.
And then script behaviors, and take this 2D flat surface
and turn it into 3D, which we think is really exciting.
And it's based on your feedback.
You told us that you wanted this feature and now we have it.
So that's the future in a nutshell.
But I want to tell you about how it works
and also how you can use it in your applications.
So augmented images fundamentally
work in three major steps.
The first step is you need to tell ARCore what
images you're interested in.
And there are two ways that you can do this.
The first way to do this is to tell ARCore
that you want to detect certain kinds of images in real time.
So you could download an image from a server.
You could have it bundled in your application.
And you tell ARCore at runtime that,
hey, please load this image, learn
how to detect it in the scene, and tell me when you do.
The second option is to tell ARCore in advance.
So we've provided tools where you, on your desktop computer,
can take up to 1,000 images and train ARCore on them
in an offline fashion, saying, I would
like you to be able to recognize any of these 1,000 images
when I run my application on device.
All right.
So the next step is now that we've
trained ARCore to recognize these images,
we actually want to detect them on device.
We want to show ARCore a scene and have it detect
the images that we've trained.
So now, when ARCore moves around the environment
with your phone, ARCore will also
look for textures in the environment
and try to match those to the textures that you trained on.
And when it finds a match, ARCore
provides you information on that match
with the third step, which is it gives you a tracked object.
So for those of you who are familiar with ARCore,
tracked objects are a notion for the physical objects
in space that ARCore knows about.
To this point, that's been planes
like these surfaces, both horizontal and now vertical.
But it also can give you points in the environment of interest
that you can attach to.
And now, an augmented image is just another tracked object.
So you use it just like you would
use any plane or any point.
And you can attach your virtual content
to the detection of the physical object in the world.
So that's it.
Really simple, three simple steps--
number one, tell ARCore what you're looking for.
Number two, have ARCore detect objects in the scene.
And number three, attach your virtual content
to these physical objects.
And because this is a developer conference,
I want to show you those same steps in code.
We're going to go through them in Java really quick.
But this is also the same for Unity and Unreal.
The concepts apply across all of our development environments.
So we'll go through the same exact steps again.
Step number one is you need to add images to ARCore's memory.
You need to tell it what images it's interested in.
And so here, we're creating this new augmented images database
and just adding an image to it.
And we're doing this in real time on the phone.
Now, this is a little bit expensive.
You have to pay a cost, computationally,
for each image you add.
So a little bit later, I'll also show you
how to create it with the alternate flow on the computer.
But once ARCore has a database of images that it can detect,
we go to the second step.
So the second step is ARCore is always looking
for those images for you.
And you can get it from the AR frame, each and every frame
that AR sees or that ARCore sees in the world.
So now, you've got a list of all the augmented images
in the scene.
And you want to attach virtual content to it.
So that brings me to the third step.
So for step number three, you just
take the augmented images, the augmented image that you want.
And you create an anchor off of it.
And then you can attach virtual content to that anchor.
And it's the same as you would for any kind of plane detection
or point detection that you've been used to in the past.
So that's it, three simple steps.
And if you want to do the pre-computation
on the computer, this is what you run.
So there's a command called build-db.
And you can pass up to 1,000 images into this command.
And it'll build an image database in advance
that you can then load in ARCore using this code.
So this loads the database from file, pulls it in.
It's computationally efficient because ARCore has already
done the work that it needs to to be able to recognize
these images later.
And now, you can go off and running with the same other two
steps that we showed before, which is detecting the image
and then placing content relative to it.
All right.
Pretty simple.
Now, I want to show you a demo of this in action.
So we're going to switch to the Pixel phone here.
And we're going to run this augmented images demo.
So here, we've actually trained ARCore to recognize this poster
on the wall.
And so when I look at the poster,
you can see that it fades out and it goes from 2D into 3D.
And now as I move, the perspective that I see changes.
So I've got a 3D object coming out of this 2D texture.
Nothing's really changed in the world.
But I can make it more engaging and immersive.
All right.
So that's the demo of augmented images, pretty simple.
And now, I want to talk a little bit about some use cases.
Posters are great for demos, but we
think augmented images have a lot more potential as well.
So the first use case that we're excited about is education.
Imagine a textbook coming to life in front of you,
or going into a museum tour where artwork on the wall
jumps out at you and gives you more information
about the artists or maybe their progression as they
were sketching a painting.
We think augmented images are useful for advertising.
Advertising is all about engagement.
Imagine being at a movie theater and holding your phone
up to a movie poster and having content come out
or telling you showtimes.
Or imagine being at a bus stop with a little bit of time
to kill and engaging with the ad that you
have on the side of the bus stop station.
We think augmented images can also be useful for the products
that you're advertising.
So here, you can build products that
meld the physical and digital worlds, that
bring both together.
It could be Castle Toy, where you have an experience that
comes out of the box itself, or it
could be a how-to guide for your coffee machine
as you try to make coffee for the first time
with your expensive espresso machine
and you have no idea what to do.
So we think augmented images expand
the capabilities and usefulness of AR in general.
And we're really, really excited to see
what you build with them.
And we also are not done yet.
We're going to talk about one more feature today.
And for that, I'm going to bring out
James Birney, who's a product manager who works with me.
And he's going to talk to you about Cloud Anchors.
I think you'll really enjoy it.
Thanks very much.
Come on up, James.
[APPLAUSE]
JAMES BIRNEY: So real quick, before we get
started-- you guys have been sitting for awhile.
And I really like doing this at the beginning of our things.
We're going to do the wave real quick going across the room.
All right?
You guys ready?
Laptops ready?
All right, three, two, one-- up, up, up, up, up, up, up.
Yay, ARCore.
Woo-hoo!
It worked.
[LAUGHS]
All right.
Thank you, guys.
All right.
So like Eitan mentioned, my name's James Birney.
I'm a product manager on ARCore, and specifically
on Cloud Anchors.
Raise your hand if you saw the Cloud Anchors announcement
yesterday.
All right, good.
That's slightly more than half, awesome.
So that's what we're going to cover in this section.
Hopefully you guys are going to be
really excited by the time we get through talking with Cloud
Anchors and you're going to want to immediately start building.
So before we hop into Cloud Anchors,
it's really important to start with where AR is today.
So could I get a quick hand if you've built an AR app before?
All right, so that's roughly about half of you.
So for the other half, what happens when--
let's say that together we're going
to build an app where we're going to place some dinosaurs.
And so we're going to have a T-Rex over here
and maybe a Triceratops over here.
And they're going to interact.
The way that we would do that in the AR app today
is we would plant an anchor.
And then the T-Rex and the Triceratops
would be placed as relative offsets from those anchors.
And that becomes your reference frame in your AR app.
Now, let's say that Eitan were to come back up on stage.
He's not going to come up because that's a long walk.
But Eitan goes ahead and creates a separate dinosaur app over
here.
And he places, say, a bunch of pterodactyls.
And again, he plants an anchor.
And his pterodactyls are all placed relative to that anchor.
Now, what's missing is Eitan's app
is running in a different reality,
a different augmented reality than the app
that we have over here.
And the reason why is those two anchors
can't talk to each other.
So this is what Cloud Anchors solves,
is we give you the ability to create a shared reference
frame.
So that reference frame I was mentioning before,
where you have the anchor and you have the offsets
to our T-Rex and to our pterodactyl,
that now, we can have a common anchor in the middle
and all the AR content.
So everything from pterodactyls to T-Rexes
are able to then interact and play.
And then you can create these really fun experiences where
not only is my content interacting
with Eitan's content, but I can control Eitan's content.
He can control mine.
That's pretty cool.
So that's kind of an abstract thing where I'm literally
moving my hands around onstage.
A more concrete example would be our Just a Line app,
which if you haven't seen it before
is an experimental app that we as Google built.
It literally draws a single line in space.
And what we added to it is the ability
to do not just one artist, but multiple artists drawing
in the same space.
So I'm going to show you an extended version
of the video they showed you really quickly yesterday,
where you can see multiple artists drawing together.
And hopefully you see from this video
the powerful experience that you get out
of this, where now, you're able to interact with your friends
and draw together.
And when one person draws a line,
you can build on top of that.
So I'll give it a second here for the video to finish
and for you guys to absorb what's going on
because that's a new concept.
OK, so let's talk a little bit about how
we create these cloud anchors.
We've done an awful lot of work to make it very simple.
So it's only a few steps.
Let me walk you through them.
So step one is--
let's say in this example, we make our stick woman.
Her name is going to be Alice.
And Alice is going to place a cloud anchor.
Now, the verb that we use to create a cloud anchor
is called hosting.
The reason why is we're going to host that native anchor up
to the cloud.
So when we host that cloud anchor,
the features which are the visual
features in the environment.
So let's say that Alice is standing here.
And as Alice is looking at the table,
she places a cloud anchor or the app
will place a cloud anchor for her on the stage, right
here next to our beautiful succulent.
Do you guys like our succulent?
OK.
[LAUGHS] Thank you.
I appreciate the one person.
OK.
So what the phone is going to extract from the environment
is all the points where these leaves come
to what the phone will see as contrast points, where
the colors change, where the lighting changes.
So the edge of this table, the edge
of this tablecloth, every point where
the leaves kind of change, those are the visual features that
get abstracted and then get uploaded to the cloud.
That then gets saved and processed.
And what Alice gets back in a couple
seconds is that cloud anchor.
Now, in that cloud anchor is a really important attribute.
That attribute is the Cloud Anchor ID.
So you can think about the Cloud Anchor ID as--
you can think about Cloud Anchors
the same way you think about a file.
So say you're going to save a file to Google Drive.
And when you save it, you need to create a file name, right?
Well, with Cloud Anchors, we're going
to create essentially that file name or that ID for you.
And that ID is the way that you're
going to reference it later.
Would be really hard to find the file without knowing the name,
right?
So the Cloud Anchor ID is the same concept.
So how this comes into play is all
Alice needs to do to get Bob, our stick man over there,
to connect to Alice's cloud anchor is to--
excuse me-- is to send over that Cloud Anchor ID to Bob.
And that's all she needs to send over to Bob.
Once Bob has the Cloud Anchor ID,
he then uses the Cloud Anchor ID to--
and our verb here is resolve.
In resolving, we'll add the Cloud Anchor ID
to Bob's reference frame.
So let's say that Bob is standing right here as well.
He looks at the same area.
The visual features that will get uploaded to the cloud,
in the cloud will match those visual features
against the visual features that Alice had previously uploaded.
And we will give Bob back a cloud anchor
that will be relative to where his device is.
So even though both devices are in different locations,
we'll create the cloud anchor in a consistent physical location.
And that's the magic.
Because they're in a consistent physical location,
you then have a shared reference frame.
And then at that point, we can place--
again, let's use dinosaurs because everybody
loves dinosaurs, right--
we can place our dinosaurs relative to that cloud anchor
and we can start our shared AR experience.
Hopefully that makes sense.
Oh, cloud anchor comes back.
And then I'm going to tie it all together here.
We created a very fancy visualization.
The orange dots that come up, those
are the visual features we were talking about.
They go up to the cloud.
Bob uploads his visual features up to the cloud.
They get matched.
And then the two of them create the same shared reference
frame.
And then once that shared reference frame is created--
wait a second for the GIF to loop around--
you'll see that spaceship show up.
And then the two of them can follow the spaceship
around the room.
And once they're paired, then the devices
can go anywhere in the room.
And they're in the same reference frame.
And they can interact together.
All right.
So let's keep on going one level deeper, like "Inception,"
with some sample code.
OK, so same format as before, but before we
get to those two methods of hosting and resolving,
it's really important that we enable the feature.
So when you're working with ARCore,
interact with the session.config and turn on our feature.
You need to do this on all devices.
But hopefully this is pretty straightforward.
Then on the first device--
so this is Alice's device, the one
that creates the Cloud Anchor.
The main method we need to call here is HostCloudAnchor.
On HostCloud-- and then with--
excuse me.
With HostCloudAnchor, you can feed
in any preexisting native anchor.
So as Eitan was mentioning before,
normally this is created from a horizontal plane or now
from a vertical plane.
And you can pass in that anchor into HostCloudAnchor.
Asynchronously that call will complete
in a couple of seconds.
And what comes back is your cloud anchor.
Now, what did we talk about is the really important thing that
comes from the cloud anchor?
All right, Cloud Anchor ID.
Thank you.
[LAUGHS] So then, it is completely up
to you what means of device-to-device communication
you want to use.
The demo that we're going to show you in a second
uses Firebase.
There's also two other demos in the Sandboxes
I'd encourage you to check out.
Those also use Firebase as well.
It's a great means to communicate between.
But you can use any means you want.
So then on Bob's device--
and it's a really important point here.
This is not limited to just Bob.
We could also have Bob, Jerry, Johnny, Eitan.
And it can be as many users as we want.
That all they need to do to join that cloud anchor is
receive the Cloud Anchor ID.
That's the one that Alice just sent over.
And then we need to resolve that cloud anchor.
In order to resolve the cloud anchor, it's dead simple.
All you need to do is pass in the Cloud Anchor ID.
In the background, under the hood,
we will take those visual features
from what the user is currently looking at.
So it's important that the user is, again, currently looking
where Alice was.
And we'll upload those features and then give you
that cloud anchor back.
And then at that point, you're good to go.
You can start placing assets relative to that cloud anchor.
So quick question, what operating system
were those devices in that code example running on?
Anyone?
All right.
So the really important point here
is Cloud Anchors work on both Android--
which means any ARCore-enabled Android device--
and any iOS ARKit-enabled device, which for today
is going to be iPhones.
And we believe this is incredibly important to making
shared AR a reality.
There's no reason that we should discriminate
which of our friends can play a game with us
based on which operating system they run on their phone.
That's not really important to whether or not
Eitan and I are friends.
If he has an iPhone, he should be
able to play shared AR with me, right?
So now, I'm going to invite Eitan on up on stage.
And we're going to give you guys a live demo.
Because it's one thing to say that everything
works cross-platform, but it's another thing
to show you guys with a live demo.
EITAN MARDER-EPPSTEIN: All right.
So maybe one last poll just to get started.
Who thinks I'm going to win this game?
Raise your hand.
Oh.
Oh, it's tough.
All right, who thinks James is going to win?
That's the rest of you, right?
[LAUGHS]
JAMES BIRNEY: So you guys are getting to know Eitan
better every minute.
And it's really important to know Eitan sandbags a lot.
EITAN MARDER-EPPSTEIN: OK.
I just got to join this room.
OK.
So now, I'm going to set up my board.
And James, you set up yours.
JAMES BIRNEY: Yeah.
EITAN MARDER-EPPSTEIN: And you want to get close to me, right?
JAMES BIRNEY: [LAUGHS]
EITAN MARDER-EPPSTEIN: You need that help.
JAMES BIRNEY: I'm also showing off a little bit here.
You can see as mine's moving around,
the same state is being reflected in both
at the same physical location.
So I'm going to press that.
Here's our futuristic-looking light boards.
EITAN MARDER-EPPSTEIN: All right, here we go.
JAMES BIRNEY: And we have people in the back that
are organizing bets, in case anybody wants
to make money off of this.
EITAN MARDER-EPPSTEIN: Yeah.
So the goal here is to turn the other person's board
your color.
And I feel like James has been sandbagging me
in all of our practice sessions because he's doing much
better than he has in the past.
Let's see.
JAMES BIRNEY: Oh, no.
That was [INAUDIBLE].
EITAN MARDER-EPPSTEIN: Oh, so close.
Hold on.
All right.
Just one more shot, one more shot.
JAMES BIRNEY: You'll notice that Eitan and I both can't
multitask--
EITAN MARDER-EPPSTEIN: Oh, no.
JAMES BIRNEY: --very well.
EITAN MARDER-EPPSTEIN: Did I get him?
JAMES BIRNEY: Oh.
All right.
Thank you.
Hey, it worked.
[APPLAUSE]
All right.
And just to reiterate, so that was an iPhone
that Eitan was using.
This is a Pixel 2.
But this very well could have been any Android
ARCore-enabled device.
That could have been any ARKit-enabled device.
And there's my clicker.
OK, so let's talk about use cases.
That was gaming.
That was an example of gaming working really well.
But shared AR does not need to stop at gaming.
We think there's a whole lot of other categories
where shared AR can make a big difference in the world.
Oops.
Lance, help me.
Can you go back a slide, please?
Pretty please?
Thank you.
OK, so four categories that briefly let's talk about.
So one is in the education space.
This is an example of--
let me phrase this as a question instead.
Raise your hand after I say two options.
Option A, you can learn about what
it's like to explore on Mars and the Mars missions
from a textbook, option A. Option B,
you can learn from an interactive 3D
model of the Rover that you can play with with your friends.
All for option A?
OK.
Option B?
All right.
See, we're making improvements in how people learn.
And the demo that we're showing you here,
this is an example that NASA built for us.
This doesn't need to stop at space exploration,
although that's a pretty big area to explore.
You could do this as well in any sort
of visual area such as biology.
There's a couple cool demos where you can explore
the human body together.
And I'll leave it at that.
Let's hop on down to creative expression.
So you saw our Just a Line example,
which is where we draw the white line in space.
But we can go beyond that.
Take for example this block building
app that was built by [INAUDIBLE],, where
you can build a full block building thing
and then 3D print it later.
It's very, very cool.
And you can imagine what this would look like
as well with the AR Stickers.
Raise your hand if you played with AR Stickers.
So you can imagine what this would look like if now
as you're placing Stormtroopers or--
help me, the Demogorgon--
as you're placing Demogorgon, someone else can place El
and have the fight be between your different phones.
That would be a very fun experience.
Gaming-- so now, you can do ice fishing with your friends.
Haven't you guys always wanted to do that?
[LAUGHING] Believe me, it actually
is an awful lot more fun than it sounds when you just say
ice fishing with your friends.
It's particularly fun on a hot day in San Francisco
to be able to look down at the sidewalk
and turn the sidewalk into a ice fishing pool.
Beyond ice fishing, you can imagine playing laser tag
with your friends.
Can now be just with your phones.
You don't need to buy special gear.
You can just-- two people, quickly pair,
do host and resolve.
And then you're off and going, and playing laser tag
with as many of your friends as possible
because Cloud Anchors are not limited just to two devices.
You can use n number of devices.
And then shopping-- so how many of you
guys have bought something and then had your partner, when
it actually showed up, veto it?
Then you had to return it.
Show of hands.
Yeah, that's a big pain, right?
Then you have to go through find the UPS store, the FedEx store,
mail it back.
That's not a good experience.
It's a lot better if you can preview it with your partners.
So now, with Cloud Anchors, if I'm placing a speaker system
here, I can have my wife also look at that speaker system
from her phone.
And there's a feeling of consistency and a feeling
of trust that you built if you're the advertiser
or the e-commerce site--
that if you have two users looking at it
and it shows up consistently for both of them,
you build this trust that the product I'm buying,
when I'm previewing it, is actually
going to look that way when it shows up.
Because it's showing up on multiple devices.
All right.
So that's everything for Cloud Anchors.
Now, let's talk about getting started.
So ARCore, no surprise, already supports Unity and Unreal,
your standard game engines.
And then obviously we support Android Studio
for Android Native Development.
As well, since Cloud Anchors are cross-platform,
we provide a SDK so that you can do your development
Xcode as well.
All four of these environments are live as of yesterday
at 1:00 PM.
[APPLAUSE]
Thank you.
So for the folks here at I/O, you guys
have a bunch of resources-- or you folks
have a bunch of resources that you have at your disposal.
Please take advantage of them.
There are three awesome demos in the Sandbox.
If you guys liked playing Light Board,
and especially if you want to play Eitan in Light Board,
our Sandbox is right over there in the AR Sandbox.
Eitan will be there up until somebody beats him.
Right, Eitan?
Yeah, thank you.
We also have the Just a Line demo over in the Experiments
Sandbox.
Please check that out.
And then the demo that Eitan showed with this picture
frame as well as two others are available in the AR Sandbox.
It's a really, really fun exhibit.
Please go ahead and play around with it.
I suspect it'll give you a bunch of very cool ideas for what
you can build.
For Codelabs, we have over 80 workstations set up.
Please play around with them.
Every workstation is also paired with an Android device.
So not only can you go through the code,
but you can actually compile it onto the phone.
And then you can see what the code you just built actually
works like on a phone.
And then we also have office hours.
Please take advantage of that.
We have some incredibly intelligent guru staff
to answer any questions you have.
And then a quick shameless plug.
Our team, the ARCore team is incredibly busy
giving talks this week.
Please take advantage of those.
Done an awful lot of work putting those in to you
to give you a very concise explanation.
There's two more today and two more tomorrow.
And then after I/O or for the folks online,
developers.google.com/ar has all the extra resources,
plus all the Codelabs are also available on there.
And again, all four of our SDKs are available as of yesterday.
So thank you very much.
Appreciate your time.
[MUSIC PLAYING]