WEBVTT

00:00:00.000 --> 00:00:02.420
[CREAK]

00:00:02.420 --> 00:00:03.872
[WHOOSH]

00:00:03.872 --> 00:00:05.808
[TAPPING]

00:00:12.120 --> 00:00:16.170
FILIP BABA: All right,
so welcome, everyone,

00:00:16.170 --> 00:00:20.530
to our Bose AR Unity workshop.

00:00:20.530 --> 00:00:21.480
My name is Filip Baba.

00:00:21.480 --> 00:00:24.030
I'm a senior developer
advocate at Bose.

00:00:24.030 --> 00:00:27.090
So what that means basically
is I work with developers,

00:00:27.090 --> 00:00:30.450
enabling them to build
experiences for our platform.

00:00:30.450 --> 00:00:32.159
I host workshops.

00:00:32.159 --> 00:00:34.590
We do game jams,
hackathons, also public

00:00:34.590 --> 00:00:36.640
speaking on behalf
of the platform.

00:00:36.640 --> 00:00:39.870
And if you do end up
building something with Base

00:00:39.870 --> 00:00:41.430
AR Unity SDK specifically--

00:00:41.430 --> 00:00:42.690
I'm on the Unity side--

00:00:42.690 --> 00:00:44.340
you'll most likely
be talking to me,

00:00:44.340 --> 00:00:48.390
and I'll be helping you get your
idea and your product out there

00:00:48.390 --> 00:00:51.450
and trying to
bring Bose on board

00:00:51.450 --> 00:00:53.800
to help you out with
that as much as possible.

00:00:53.800 --> 00:00:58.810
So I am your voice when
it comes to these things.

00:00:58.810 --> 00:01:00.420
So I'm just going
to talk a little bit

00:01:00.420 --> 00:01:01.950
briefly about what is Bose AR.

00:01:01.950 --> 00:01:04.090
Some of you may
already know or not,

00:01:04.090 --> 00:01:06.070
but I'm just going
to get into it.

00:01:06.070 --> 00:01:11.520
So we have a new concept
called audio augmented reality.

00:01:11.520 --> 00:01:13.410
Now, many of you
probably already heard

00:01:13.410 --> 00:01:14.790
about augmented reality.

00:01:14.790 --> 00:01:16.290
First thing you
probably think about

00:01:16.290 --> 00:01:22.000
is hololens or ARKit ARCore,
Magic Leap, stuff like that.

00:01:22.000 --> 00:01:25.410
So we are actually audio
first augmented reality.

00:01:25.410 --> 00:01:29.310
Now, what that means
is, think spatial audio,

00:01:29.310 --> 00:01:31.800
for example, where
you have sounds

00:01:31.800 --> 00:01:34.380
placed in space around you,
and you're kind of virtually

00:01:34.380 --> 00:01:36.010
hearing it spatially.

00:01:36.010 --> 00:01:39.000
So what enables us to do
audio augmented reality

00:01:39.000 --> 00:01:42.210
are the sensors that are
located in each of these Bose AR

00:01:42.210 --> 00:01:42.990
wearables.

00:01:42.990 --> 00:01:45.000
You'll have a pair
of frames, but then

00:01:45.000 --> 00:01:46.747
we also have our
headphones as well,

00:01:46.747 --> 00:01:48.580
which have the same
sets of sensors in them.

00:01:48.580 --> 00:01:51.270
And those sensors are
an accelerometer, which

00:01:51.270 --> 00:01:54.900
allows you to get impulse
and sudden movements;

00:01:54.900 --> 00:01:58.140
a gyroscope, which tracks
rotation, so typically what

00:01:58.140 --> 00:02:01.920
we use the gyro for is to track
the user's head orientation;

00:02:01.920 --> 00:02:04.320
and magnetometer, which
is basically a compass,

00:02:04.320 --> 00:02:06.570
and we use that for
our navigation apps.

00:02:06.570 --> 00:02:10.710
So if you know the GPS position
of a user based on their phone,

00:02:10.710 --> 00:02:12.450
and if you use the
magnetic heading

00:02:12.450 --> 00:02:15.480
from where their head is
actually like pointing at,

00:02:15.480 --> 00:02:18.300
you can know what they're
looking at on a map

00:02:18.300 --> 00:02:21.720
pretty accurately, actually.

00:02:21.720 --> 00:02:24.100
So we have gestures as
well on our devices.

00:02:24.100 --> 00:02:27.060
So the frames specifically
have an input gesture here

00:02:27.060 --> 00:02:27.810
on the right side.

00:02:27.810 --> 00:02:31.530
It's a double tap, so
it's not a specific, touch

00:02:31.530 --> 00:02:32.460
sensitive sensor.

00:02:32.460 --> 00:02:34.560
It's actually based
on the accelometer,

00:02:34.560 --> 00:02:37.650
so it's the little impulse tap.

00:02:37.650 --> 00:02:39.508
And the tap actually
works from any side,

00:02:39.508 --> 00:02:41.550
but it's recommended to
do it from the right side

00:02:41.550 --> 00:02:44.220
because that's where
the sensor kit is.

00:02:44.220 --> 00:02:46.830
We also have custom
gestures that we actually

00:02:46.830 --> 00:02:49.590
encourage our
developers to explore,

00:02:49.590 --> 00:02:51.660
and it's a mixture
of the other sensors.

00:02:51.660 --> 00:02:53.850
So a custom gesture
would be something

00:02:53.850 --> 00:02:55.990
like, you're creating
an experience,

00:02:55.990 --> 00:02:57.840
and it tells you, look
up, and you look up,

00:02:57.840 --> 00:03:00.870
and then you track
that rotation change.

00:03:00.870 --> 00:03:03.180
That would be a custom gesture.

00:03:03.180 --> 00:03:05.400
I know some of the games
that have been built,

00:03:05.400 --> 00:03:07.420
sometimes, it tells you
to duck, and there's

00:03:07.420 --> 00:03:09.420
a bullet flying over you
or something like that.

00:03:09.420 --> 00:03:10.837
So that would be
a custom gesture.

00:03:13.380 --> 00:03:18.490
So Heads Up Hands Free is one
of the models that we have.

00:03:18.490 --> 00:03:20.415
So the idea behind it
Heads Up Hands Free

00:03:20.415 --> 00:03:23.580
is, a lot of the applications
today, whether they're

00:03:23.580 --> 00:03:25.890
AR or just standard
mobile applications,

00:03:25.890 --> 00:03:27.390
you're always staring
at your phone.

00:03:27.390 --> 00:03:28.560
You're always walking around.

00:03:28.560 --> 00:03:30.643
Your neck as a little
craned because you're always

00:03:30.643 --> 00:03:31.860
looking down at your phone.

00:03:31.860 --> 00:03:33.780
The whole idea behind
Heads Up Hands Free

00:03:33.780 --> 00:03:36.390
is that we want to create
applications that you don't

00:03:36.390 --> 00:03:37.680
have to stare at your phone.

00:03:37.680 --> 00:03:40.437
The input is the wearable,
and the output also

00:03:40.437 --> 00:03:41.520
goes through the wearable.

00:03:41.520 --> 00:03:43.560
So you don't actually have
to look at a screen for most

00:03:43.560 --> 00:03:44.393
of these activities.

00:03:44.393 --> 00:03:47.410
So I'll give you an example.

00:03:47.410 --> 00:03:50.280
Let's say NaviGuide,
for example.

00:03:50.280 --> 00:03:53.430
What it does is it knows
your GPS location based

00:03:53.430 --> 00:03:55.080
on a mobile device,
and it knows you're

00:03:55.080 --> 00:03:57.580
heading based on where you're
looking with the magnetometer.

00:03:57.580 --> 00:03:59.490
So what it can do
is then it can tell

00:03:59.490 --> 00:04:01.740
you're looking at this
restaurant, for example,

00:04:01.740 --> 00:04:03.390
or this cafe.

00:04:03.390 --> 00:04:05.160
You double tap
the input gesture,

00:04:05.160 --> 00:04:07.890
and it'll actually
pull a Yelp review.

00:04:07.890 --> 00:04:10.320
Now, think about the non
Heads Up Hands Free way

00:04:10.320 --> 00:04:12.138
of pulling up a Yelp review.

00:04:12.138 --> 00:04:12.930
What are you doing?

00:04:12.930 --> 00:04:16.260
You're most likely
googling the name,

00:04:16.260 --> 00:04:18.450
or you're typing in
the street address.

00:04:18.450 --> 00:04:22.290
But it requires you to pull
out your phone, launch the app,

00:04:22.290 --> 00:04:26.280
find a name, type it in or the
address or the pin on the map,

00:04:26.280 --> 00:04:28.650
and then you get to
that Yelp review.

00:04:28.650 --> 00:04:31.570
It takes you out of
what you're doing.

00:04:31.570 --> 00:04:34.202
So if you want to look up five
or six restaurants walking down

00:04:34.202 --> 00:04:36.660
the street, you're basically
probably staring at your phone

00:04:36.660 --> 00:04:37.740
for like 15 minutes.

00:04:37.740 --> 00:04:39.360
The idea behind
Heads Up Hands Free

00:04:39.360 --> 00:04:43.170
is you just walk by a place,
tap, you get the information,

00:04:43.170 --> 00:04:44.160
you move on--

00:04:44.160 --> 00:04:48.060
no phone required, at
least not looking at it.

00:04:48.060 --> 00:04:52.200
Now, it's a really
cool concept I think,

00:04:52.200 --> 00:04:56.310
and a bunch of our apps use
that as its guiding principle.

00:04:56.310 --> 00:05:00.150
It's not a must, but
it's a design philosophy,

00:05:00.150 --> 00:05:02.520
and some of the developers
have been really

00:05:02.520 --> 00:05:05.800
clever about implementing it.

00:05:05.800 --> 00:05:08.040
So the way that it
works is the sensors--

00:05:08.040 --> 00:05:10.380
actually, the data gets
sent to the mobile app,

00:05:10.380 --> 00:05:15.120
so the wearable has to work with
a mobile phone, iOS or Android,

00:05:15.120 --> 00:05:19.202
and that goes for the frames
and the headphones as well.

00:05:19.202 --> 00:05:20.910
So some of the products
that work with it

00:05:20.910 --> 00:05:24.540
are the frames, for example,
which you all have here.

00:05:24.540 --> 00:05:27.000
I'm going to show just a
little brief intro in frames.

00:05:27.000 --> 00:05:27.667
[VIDEO PLAYBACK]

00:05:27.667 --> 00:05:30.324
[MUSIC PLAYING]

00:05:37.310 --> 00:05:39.306
(SINGING) I look good.

00:05:39.306 --> 00:05:40.803
Good, good.

00:05:45.793 --> 00:05:48.787
Say, I look good.

00:05:48.787 --> 00:05:49.785
Good, good.

00:06:03.757 --> 00:06:06.751
This is sunshine
dripping down my face.

00:06:16.447 --> 00:06:17.280
[END VIDEO PLAYBACK]

00:06:17.280 --> 00:06:19.210
So the frames were
actually a concept

00:06:19.210 --> 00:06:21.440
that came out of our
San Francisco office,

00:06:21.440 --> 00:06:24.200
so it's a very different
kind of idea behind it.

00:06:24.200 --> 00:06:27.260
I, personally, think
it's a super cool idea.

00:06:27.260 --> 00:06:30.382
I think frames are a really
great outdoor wearable.

00:06:30.382 --> 00:06:32.590
It's great while you're
biking, for example, when you

00:06:32.590 --> 00:06:34.720
don't want to be interrupted.

00:06:34.720 --> 00:06:36.440
If you don't want to--

00:06:36.440 --> 00:06:37.600
let's say you get a call.

00:06:37.600 --> 00:06:39.880
You could just pick up
straight through the frames.

00:06:39.880 --> 00:06:41.200
You don't have to
pull out your phone.

00:06:41.200 --> 00:06:42.867
Or you could do
turn-by-turn navigation.

00:06:42.867 --> 00:06:45.410
Again, you don't have to
be mounting your phone,

00:06:45.410 --> 00:06:47.390
putting a waterproof
case or whatever.

00:06:47.390 --> 00:06:48.640
You just have your frames on.

00:06:48.640 --> 00:06:50.320
Also, it doesn't
plug up your ears.

00:06:50.320 --> 00:06:52.630
It's open ear audio,
so you can still

00:06:52.630 --> 00:06:54.340
hear the sounds of
the street around you.

00:06:54.340 --> 00:06:55.690
And it's not on the
safe in that way,

00:06:55.690 --> 00:06:57.640
like wearing like noise
canceling headphones

00:06:57.640 --> 00:06:59.900
while biking, for example.

00:06:59.900 --> 00:07:02.200
I just realized I got to
do this QuickTime thing.

00:07:05.220 --> 00:07:06.060
Maybe click there.

00:07:13.530 --> 00:07:15.890
There we go.

00:07:15.890 --> 00:07:18.350
Next up-- oh, skip that--

00:07:18.350 --> 00:07:20.060
QC35 II's.

00:07:20.060 --> 00:07:22.160
Now, this product you might
be more familiar with.

00:07:22.160 --> 00:07:25.040
You've probably seen people
wearing these, usually

00:07:25.040 --> 00:07:27.120
maybe on an airplane.

00:07:27.120 --> 00:07:31.640
So this is the classic noise
canceling headphone which

00:07:31.640 --> 00:07:33.635
also has Bose AR sensors in it.

00:07:33.635 --> 00:07:35.510
And a lot of people
actually don't know that,

00:07:35.510 --> 00:07:41.060
so I believe it's all the
models after October of 2018

00:07:41.060 --> 00:07:46.250
were manufactured with
the Bose AR sensors in it.

00:07:46.250 --> 00:07:48.630
And then the NC700's,
which are these--

00:07:48.630 --> 00:07:50.840
so these are the brand
new noise canceling

00:07:50.840 --> 00:07:52.730
headphones that just came out.

00:07:52.730 --> 00:07:54.410
I get asked what's
the difference

00:07:54.410 --> 00:07:56.440
between the QCs and the NCs.

00:07:56.440 --> 00:07:57.230
There's a few.

00:07:57.230 --> 00:07:58.820
Obviously, there's a redesign.

00:07:58.820 --> 00:07:59.990
It looks a lot more modern.

00:07:59.990 --> 00:08:02.540
It has a little bit more
of a sleek aesthetic.

00:08:02.540 --> 00:08:07.310
I think that the QC35
have a very dad road trip

00:08:07.310 --> 00:08:09.950
look to them, especially
the gray ones.

00:08:09.950 --> 00:08:11.780
But yeah, it's a
brand new redesign,

00:08:11.780 --> 00:08:15.537
and one of the main upgrades,
I'd say, is the microphone.

00:08:15.537 --> 00:08:17.120
So for conference
calling, it actually

00:08:17.120 --> 00:08:19.400
has a noise canceling
microphone because it

00:08:19.400 --> 00:08:21.500
has eight beamforming mics.

00:08:21.500 --> 00:08:23.630
So it can actually pick
up your voice as opposed

00:08:23.630 --> 00:08:26.360
to the environment,
so I found it really

00:08:26.360 --> 00:08:28.010
good in loud environments.

00:08:28.010 --> 00:08:31.770
They've actually done comparison
tests in a loud environment,

00:08:31.770 --> 00:08:34.070
and you can barely hear
anything in the background

00:08:34.070 --> 00:08:35.669
while you're talking with them.

00:08:35.669 --> 00:08:38.090
So I personally really
like that because I

00:08:38.090 --> 00:08:42.518
do a lot of conference calls in
sometimes noisy environments.

00:08:42.518 --> 00:08:44.810
There's a little promo video
associated with that, too,

00:08:44.810 --> 00:08:45.602
if you want to see.

00:08:45.602 --> 00:08:46.370
[VIDEO PLAYBACK]

00:08:46.370 --> 00:08:50.540
And these are the first
product that was--

00:08:50.540 --> 00:08:54.230
the first Bose product that has
been marketed with the Bose AR

00:08:54.230 --> 00:08:55.860
features in it.

00:08:55.860 --> 00:08:57.830
So the whole idea
behind the NCs is,

00:08:57.830 --> 00:08:59.240
again, the Heads Up Hands Free.

00:09:02.228 --> 00:09:04.718
[MUSIC PLAYING]

00:09:40.743 --> 00:09:42.160
FILIP BABA: So I
don't know if you

00:09:42.160 --> 00:09:44.890
saw near the end of the video,
but there's a little capacitive

00:09:44.890 --> 00:09:46.280
touch screen here on the side.

00:09:46.280 --> 00:09:49.000
So it's not touch
screen, it's a touch--

00:09:49.000 --> 00:09:49.870
AUDIENCE: Surface.

00:09:49.870 --> 00:09:51.730
FILIP BABA: Surface, yeah.

00:09:51.730 --> 00:09:55.060
And it's, yeah, you can
do volume up and down,

00:09:55.060 --> 00:09:57.418
skip track, or go back.

00:09:57.418 --> 00:09:58.960
And then there's
also touch and hold,

00:09:58.960 --> 00:10:03.160
which you can actually get
as a gesture inside Bose AR

00:10:03.160 --> 00:10:04.720
when you're building your app.

00:10:04.720 --> 00:10:07.240
So again, the whole
idea is, you're not

00:10:07.240 --> 00:10:08.560
pulling out your phone.

00:10:08.560 --> 00:10:11.103
You have your wearable,
your AR-enabled wearable,

00:10:11.103 --> 00:10:13.520
which is your headphones, which
you carry around with you.

00:10:13.520 --> 00:10:15.160
If you're like me, I
carry around my headphones

00:10:15.160 --> 00:10:15.700
everywhere.

00:10:15.700 --> 00:10:19.510
So you can talk to your
Google Assistant or to Siri

00:10:19.510 --> 00:10:21.307
through it, receive messages.

00:10:21.307 --> 00:10:23.140
It'll actually read out
the messages to you.

00:10:23.140 --> 00:10:26.770
So again, the whole idea is to
have this wearable be pretty

00:10:26.770 --> 00:10:29.320
much your main input
and output device

00:10:29.320 --> 00:10:32.800
for your daily mobile uses.

00:10:32.800 --> 00:10:34.750
So one of our
projections is that we're

00:10:34.750 --> 00:10:37.570
going to have one million
AR devices in 2019

00:10:37.570 --> 00:10:40.160
across all three of the
products that I just showed you.

00:10:40.160 --> 00:10:41.710
Now, that's actually
really huge,

00:10:41.710 --> 00:10:49.780
because most AR is
single purpose AR.

00:10:49.780 --> 00:10:52.670
If you get a hololens,
it's more enterprise.

00:10:52.670 --> 00:10:55.580
You're not really going to
be wearing it out on the bus,

00:10:55.580 --> 00:10:56.080
you know.

00:10:56.080 --> 00:10:58.660
Or a Magic Leap,
same thing, they only

00:10:58.660 --> 00:11:00.130
work in certain environments.

00:11:00.130 --> 00:11:01.690
It can't be in bright sunlight.

00:11:01.690 --> 00:11:05.500
And AR, typically,
is a very niche thing

00:11:05.500 --> 00:11:08.900
that's found in specific
places for specific use cases.

00:11:08.900 --> 00:11:11.710
But the idea behind Bose
AR is that these wearables

00:11:11.710 --> 00:11:13.780
are actually being worn
by people every day,

00:11:13.780 --> 00:11:16.180
already, just for
their regular life,

00:11:16.180 --> 00:11:19.240
to listen to music, to do
their conference calls.

00:11:19.240 --> 00:11:22.750
But now we have this AR
platform built into it as well.

00:11:22.750 --> 00:11:24.970
And developers can
actually leverage

00:11:24.970 --> 00:11:27.040
a very big install base.

00:11:27.040 --> 00:11:29.260
Because there's a lot of
these devices out there.

00:11:29.260 --> 00:11:31.030
And they're
constantly being sold

00:11:31.030 --> 00:11:33.460
and the user base is growing.

00:11:33.460 --> 00:11:36.457
And they're going to be looking
for Bose AR enabled apps.

00:11:36.457 --> 00:11:38.290
Well, what can I run
on these new headphones

00:11:38.290 --> 00:11:40.570
that I just bought?

00:11:40.570 --> 00:11:43.720
So we have an iOS and
Android native SDK.

00:11:43.720 --> 00:11:45.917
And then we also
have a Unity plug-in,

00:11:45.917 --> 00:11:47.750
which is what we're
going to be using today,

00:11:47.750 --> 00:11:51.730
which actually works with
both iOS and Android.

00:11:51.730 --> 00:11:54.190
So I'm just going to go
into a few of the use

00:11:54.190 --> 00:11:56.328
cases, a few of the
apps that are here,

00:11:56.328 --> 00:11:58.120
that might be a little
bit inspiring so you

00:11:58.120 --> 00:12:00.970
can kind of get an idea
of what people are doing.

00:12:00.970 --> 00:12:04.720
So Otocast is a really
cool concept behind, like,

00:12:04.720 --> 00:12:05.770
how you can--

00:12:05.770 --> 00:12:08.590
let's say you're at
a music festival.

00:12:08.590 --> 00:12:11.140
They could set up a
tour where you actually

00:12:11.140 --> 00:12:13.330
hear these audio pings.

00:12:13.330 --> 00:12:16.150
So if there's a point of
interest as you're walking by,

00:12:16.150 --> 00:12:18.228
you'll just hear, like,
a spatial audio pinging.

00:12:18.228 --> 00:12:20.770
And it's very unobtrusive, it's
not like it's yelling at you.

00:12:20.770 --> 00:12:21.937
Hey, there's the thing here.

00:12:21.937 --> 00:12:23.800
It's just kind of
like, it's a ping.

00:12:23.800 --> 00:12:25.360
And then if you
look at that ping,

00:12:25.360 --> 00:12:27.027
you can actually
double tap to enter it.

00:12:27.027 --> 00:12:30.280
And it'll tell you,
oh, this is this stage.

00:12:30.280 --> 00:12:32.680
Or maybe if you're doing
like a historical tour,

00:12:32.680 --> 00:12:34.750
it'll tell you this
is this landmark,

00:12:34.750 --> 00:12:36.260
would you like to
enter this tour?

00:12:36.260 --> 00:12:37.580
And then you enter it.

00:12:37.580 --> 00:12:39.460
And then you can go
and actually explore

00:12:39.460 --> 00:12:43.960
and it'll kind of tell you
what these environments are.

00:12:43.960 --> 00:12:45.970
Walc is kind of a
similar concept,

00:12:45.970 --> 00:12:47.980
also to Otocast and Naviguide.

00:12:47.980 --> 00:12:49.540
And Naviguide, I
explained earlier.

00:12:49.540 --> 00:12:52.150
It's kind of like you're using
a gesture to Yelp things,

00:12:52.150 --> 00:12:53.120
basically.

00:12:53.120 --> 00:12:56.527
So it's really cool to kind
of, like, not bring you out

00:12:56.527 --> 00:12:57.610
of your travel experience.

00:12:57.610 --> 00:12:59.920
You're just kind of
walking, and exploring,

00:12:59.920 --> 00:13:02.020
and getting information
you need without, again,

00:13:02.020 --> 00:13:03.610
staring at your phone.

00:13:03.610 --> 00:13:06.860
So all of these kind of use
initially in the sensors

00:13:06.860 --> 00:13:07.360
what I said.

00:13:07.360 --> 00:13:10.030
So you the GPS from
the mobile device.

00:13:10.030 --> 00:13:12.850
And then you use the magnetic
heading from the wearable.

00:13:12.850 --> 00:13:15.550
And what's really cool
about using magnetic heading

00:13:15.550 --> 00:13:19.000
from the frames, people
always wear their sunglasses

00:13:19.000 --> 00:13:20.950
perpendicular.

00:13:20.950 --> 00:13:24.040
It's not like your phone, where
the magnetometer sometimes--

00:13:24.040 --> 00:13:25.840
you ever use the map
and you're trying

00:13:25.840 --> 00:13:29.020
to look at the compass on
the map, and it's opposite,

00:13:29.020 --> 00:13:30.970
or it's not very accurate?

00:13:30.970 --> 00:13:32.530
And you got to,
like, do this and you

00:13:32.530 --> 00:13:33.820
got to recalibrate your phone.

00:13:33.820 --> 00:13:35.410
So with the frames,
it's actually

00:13:35.410 --> 00:13:37.930
a lot better because
you're never really putting

00:13:37.930 --> 00:13:40.060
that in a wrong direction.

00:13:40.060 --> 00:13:42.670
It's always kind of
facing perpendicular.

00:13:42.670 --> 00:13:47.080
So it's really good
to get a heading.

00:13:47.080 --> 00:13:49.600
Sport and wellness,
so another use case

00:13:49.600 --> 00:13:50.780
is some of these sport apps.

00:13:50.780 --> 00:13:54.010
So Golfshot's actually
a really great example.

00:13:54.010 --> 00:13:58.210
People wear frames when
they're out on the golf course.

00:13:58.210 --> 00:14:01.060
It's sunglasses, they might
be listening to music as well,

00:14:01.060 --> 00:14:02.390
so it's a perfect fit.

00:14:02.390 --> 00:14:05.380
So Golfshot's an
already established app

00:14:05.380 --> 00:14:07.540
that golfers use
to get information

00:14:07.540 --> 00:14:10.050
about but their shot, and
their stored game details.

00:14:10.050 --> 00:14:11.800
I'm not much of a
golfer so I don't really

00:14:11.800 --> 00:14:13.580
know all the details.

00:14:13.580 --> 00:14:17.080
But I do know that they have
a Bose AR enabled feature that

00:14:17.080 --> 00:14:19.330
actually allow you to
measure things like distance

00:14:19.330 --> 00:14:22.990
to the next hole, again, without
having to pull out your phone

00:14:22.990 --> 00:14:24.640
and typing in some information.

00:14:24.640 --> 00:14:26.545
It uses all the data
from the sensors

00:14:26.545 --> 00:14:27.670
and from the mobile device.

00:14:27.670 --> 00:14:30.220
It knows where you are, it
knows what course you're on.

00:14:30.220 --> 00:14:33.008
And then you can have this
seamless experience, again,

00:14:33.008 --> 00:14:34.300
without pulling out your phone.

00:14:34.300 --> 00:14:35.967
You're just already
wearing some glasses

00:14:35.967 --> 00:14:39.250
because you're playing golf,
and it's sunny, and you know.

00:14:39.250 --> 00:14:41.530
Yeah, I hope I makes sense.

00:14:41.530 --> 00:14:43.990
So New Balance I think
is a really cool one.

00:14:43.990 --> 00:14:45.330
This is a demo.

00:14:45.330 --> 00:14:49.025
So they kind of created
more of a workout app.

00:14:49.025 --> 00:14:51.150
It's kind of like a
motivational workout app, where

00:14:51.150 --> 00:14:52.770
it'll count your sets and reps.

00:14:52.770 --> 00:14:54.270
So think, like,
you're doing sit ups

00:14:54.270 --> 00:14:56.190
and you're actually doing
that custom gesture.

00:14:56.190 --> 00:14:58.290
And you're counting how
many sit ups you did.

00:14:58.290 --> 00:14:59.760
And it gives you
positive feedback,

00:14:59.760 --> 00:15:02.890
oh, you're doing great, two
more, or something like that.

00:15:02.890 --> 00:15:06.090
So again, if you
weren't doing heads up,

00:15:06.090 --> 00:15:08.880
hands free, maybe you'd
be checking your phone

00:15:08.880 --> 00:15:10.680
to see how many you've done.

00:15:10.680 --> 00:15:14.130
There's really no way to
kind of do it seamlessly

00:15:14.130 --> 00:15:17.430
unless you're kind of wearing
a little extra piece of sensors

00:15:17.430 --> 00:15:18.900
on you.

00:15:18.900 --> 00:15:20.490
Headspace is also a demo.

00:15:20.490 --> 00:15:24.150
And this is actually
getting a big revamp.

00:15:24.150 --> 00:15:27.480
But the idea behind this,
it's a meditation app.

00:15:27.480 --> 00:15:30.242
So it's a perfect fit for
things like spatial audio.

00:15:30.242 --> 00:15:32.700
They even have a little bit of
an exercise you kind of like

00:15:32.700 --> 00:15:33.840
stretch your neck.

00:15:33.840 --> 00:15:36.150
And then again, it's
using the sensors

00:15:36.150 --> 00:15:38.280
in the wearable to
actually be able to tell

00:15:38.280 --> 00:15:39.972
if you did your neck stretch.

00:15:39.972 --> 00:15:41.430
Then when you do
your neck stretch,

00:15:41.430 --> 00:15:42.888
it kind of has this
soothing voice.

00:15:42.888 --> 00:15:45.540
It's like, all right, so now,
we're going to close our eyes

00:15:45.540 --> 00:15:47.010
and, you know.

00:15:47.010 --> 00:15:48.990
And it starts to play
a little soundscape.

00:15:48.990 --> 00:15:51.450
And it helps you
kind of meditate.

00:15:51.450 --> 00:15:55.110
Another idea I heard brought
up is, you can actually

00:15:55.110 --> 00:15:56.410
check someone's posture.

00:15:56.410 --> 00:16:00.420
So if someone's falling asleep,
you can kind of slightly

00:16:00.420 --> 00:16:04.813
ping them to wake up,
so things like that.

00:16:04.813 --> 00:16:07.230
Like I said, developers have
been really creative with it.

00:16:07.230 --> 00:16:10.350
And then music of
course, I think

00:16:10.350 --> 00:16:12.390
music is one of
the best use cases.

00:16:12.390 --> 00:16:14.220
Because I think
spatial audio, which

00:16:14.220 --> 00:16:16.950
is what today's workshop is
mainly going to be about,

00:16:16.950 --> 00:16:22.620
is a very unexplored area of
music or sound in general.

00:16:22.620 --> 00:16:25.078
And Bose AR is a perfect
fit for spatial audio,

00:16:25.078 --> 00:16:27.120
especially because of the
sensors that I was just

00:16:27.120 --> 00:16:30.720
mentioning because you
know the head orientation,

00:16:30.720 --> 00:16:33.060
you can actually simulate
spatial audio just

00:16:33.060 --> 00:16:35.340
between the two stereo speakers.

00:16:35.340 --> 00:16:37.110
You can actually blend
the sound between

00:16:37.110 --> 00:16:39.090
based on where your
head is looking.

00:16:39.090 --> 00:16:41.220
So Radar is a great
example of this.

00:16:41.220 --> 00:16:44.820
So Radar is an app built by
Bose, which actually connects

00:16:44.820 --> 00:16:47.940
to something that's called
Creator Tool that's currently

00:16:47.940 --> 00:16:48.690
in development.

00:16:48.690 --> 00:16:50.400
It's in closed beta.

00:16:50.400 --> 00:16:52.230
But the idea here
is that Radar is

00:16:52.230 --> 00:16:56.790
going to be kind of almost like
a marketplace slash area where

00:16:56.790 --> 00:17:00.270
you can browse lots of different
spatial audio experiences.

00:17:00.270 --> 00:17:03.730
And they're going to be tied
to certain areas on the map.

00:17:03.730 --> 00:17:06.390
So maybe if you're
in a certain place,

00:17:06.390 --> 00:17:08.310
there's certain spatial
audio experiences

00:17:08.310 --> 00:17:10.530
that wouldn't be in
some other place.

00:17:10.530 --> 00:17:13.619
And it can do things like
it can ping you when you

00:17:13.619 --> 00:17:14.970
enter, let's say, some park.

00:17:14.970 --> 00:17:17.520
And maybe there's a
spatial audio experience

00:17:17.520 --> 00:17:18.390
tied to that park.

00:17:18.390 --> 00:17:20.790
And you'll be able to enter
it if you just kind of have

00:17:20.790 --> 00:17:23.130
the app running
in the background.

00:17:23.130 --> 00:17:28.079
Traverse is a cool example
of a mixture between RAPI

00:17:28.079 --> 00:17:30.090
and existing ARAPI.

00:17:30.090 --> 00:17:31.950
So I think they're using ARKit.

00:17:31.950 --> 00:17:34.080
And what it actually
allows you to do,

00:17:34.080 --> 00:17:37.830
it's kind of like you're
in the middle of a concert.

00:17:37.830 --> 00:17:40.497
And you're hearing the different
instruments playing around you.

00:17:40.497 --> 00:17:42.330
So what you can actually
do is, while you're

00:17:42.330 --> 00:17:44.623
holding your phone up, you
can actually kind of close

00:17:44.623 --> 00:17:46.290
your eyes you just
walk around the room.

00:17:46.290 --> 00:17:49.010
And you're actually exploring
all the different instruments

00:17:49.010 --> 00:17:49.510
around you.

00:17:49.510 --> 00:17:52.350
You can walk up to the singer,
you can walk up to the piano.

00:17:52.350 --> 00:17:57.030
And it's using ARKit to do
positional tracking and Bose AR

00:17:57.030 --> 00:17:59.460
for spatial audio and
your head orientation.

00:17:59.460 --> 00:18:02.670
So it's actually using
both the phone's positional

00:18:02.670 --> 00:18:04.740
and the head's
rotational tracking.

00:18:04.740 --> 00:18:06.330
And it knows between the two.

00:18:06.330 --> 00:18:08.340
And it kind of simulates
as if you're actually

00:18:08.340 --> 00:18:13.870
in the middle of a band or
a concert that's playing.

00:18:13.870 --> 00:18:18.360
iHeartRadio is a cool
demo app, I'd say.

00:18:18.360 --> 00:18:22.278
It's basically another
take on how you can tune

00:18:22.278 --> 00:18:23.570
in to different radio channels.

00:18:23.570 --> 00:18:26.470
So instead of pulling out
your phone and seeking,

00:18:26.470 --> 00:18:28.330
you're actually using
your head orientation.

00:18:28.330 --> 00:18:30.330
And you're kind of, like,
your head's the tuner.

00:18:30.330 --> 00:18:32.038
And then when you like
something you just

00:18:32.038 --> 00:18:33.840
kind of double tap
and you go into it.

00:18:33.840 --> 00:18:36.030
And then you can pull out
of it at any time and tune

00:18:36.030 --> 00:18:36.940
into something else.

00:18:36.940 --> 00:18:38.940
And if you get a little
preview and you like it,

00:18:38.940 --> 00:18:41.580
you tap into it and
you're listening to it

00:18:41.580 --> 00:18:46.200
without having to look at
oh, I'm 22.3 FM, or whatever.

00:18:46.200 --> 00:18:47.880
You're just kind
of listening to it.

00:18:50.580 --> 00:18:55.860
Games is predominantly in
the realm of our Unity SDK.

00:18:55.860 --> 00:18:58.290
So we have some cool games
that have been built.

00:18:58.290 --> 00:19:00.750
The three that I
have up here are

00:19:00.750 --> 00:19:02.730
what I would call
representative experiences.

00:19:02.730 --> 00:19:05.147
So we actually have a lot more
games that have been built,

00:19:05.147 --> 00:19:06.490
especially this year.

00:19:06.490 --> 00:19:08.670
And I'll show you actually
some videos of the games

00:19:08.670 --> 00:19:09.960
to kind of get inspired.

00:19:09.960 --> 00:19:11.700
So all these games
are actually out.

00:19:11.700 --> 00:19:15.540
So you can download
them on the App Store

00:19:15.540 --> 00:19:18.420
if you have a Bose
AR enabled wearable.

00:19:18.420 --> 00:19:22.230
And like I said, they're
representative experiences.

00:19:22.230 --> 00:19:25.380
Meaning that I believe
these developers kind of

00:19:25.380 --> 00:19:27.900
created some design
patterns out of these.

00:19:27.900 --> 00:19:30.120
They were one of the first
to make games for it.

00:19:30.120 --> 00:19:33.370
And I think these three are
kind of in their own category.

00:19:33.370 --> 00:19:36.180
So OverHerd, it's a
really funny game.

00:19:36.180 --> 00:19:38.100
You basically play
as an Englishman

00:19:38.100 --> 00:19:41.680
that's taunted by Frenchmen
at castles at night.

00:19:41.680 --> 00:19:44.730
It's very kind of, like,
Monty Python-esque.

00:19:44.730 --> 00:19:47.460
Funny accents, the voice
acting is hilarious.

00:19:47.460 --> 00:19:50.460
And what you do is you use
your head as, like, a catapult.

00:19:50.460 --> 00:19:53.070
And your head
orientation like this.

00:19:53.070 --> 00:19:54.630
And you double tap
and you basically

00:19:54.630 --> 00:19:57.630
launch cows into these castles.

00:19:57.630 --> 00:19:59.640
And you kind of hear the moo.

00:19:59.640 --> 00:20:00.690
And it's all spatial.

00:20:00.690 --> 00:20:02.950
So you're kind of listening
for where they're at.

00:20:02.950 --> 00:20:04.367
And when you're
turning your head,

00:20:04.367 --> 00:20:05.730
you hear the castles over there.

00:20:05.730 --> 00:20:07.770
And then the Frenchmen
are, like, taunting you.

00:20:07.770 --> 00:20:11.070
Like, oh, I bet you can't
hit the broad side of a barn,

00:20:11.070 --> 00:20:11.670
or whatever.

00:20:11.670 --> 00:20:14.700
I'm not going to try to do the
accent, but you should hear it.

00:20:14.700 --> 00:20:17.700
It's pretty hilarious.

00:20:17.700 --> 00:20:20.490
And it's a great
example of, it's

00:20:20.490 --> 00:20:25.800
kind of using the spatial audio
and using your head orientation

00:20:25.800 --> 00:20:28.140
as the controller, basically.

00:20:28.140 --> 00:20:31.470
So Komrad is a cool
design pattern.

00:20:31.470 --> 00:20:35.190
So it's basically
like a spy novel.

00:20:35.190 --> 00:20:39.030
And it's a choose your
own adventure spy novel.

00:20:39.030 --> 00:20:41.920
So you can actually make
decisions in the story.

00:20:41.920 --> 00:20:46.440
So the story goes on and there's
yes and no decision trees

00:20:46.440 --> 00:20:47.300
that you go through.

00:20:47.300 --> 00:20:49.050
And at some point I
think you have to duck

00:20:49.050 --> 00:20:51.000
and dodge a bullet.

00:20:51.000 --> 00:20:53.970
And it's got this
whole AI theme to it.

00:20:53.970 --> 00:20:57.030
And the AI's talking to you
and you're making decisions.

00:20:57.030 --> 00:20:59.380
And you kind of change
the outcome of the story.

00:20:59.380 --> 00:21:03.480
So that's a pretty popular
design pattern, and one

00:21:03.480 --> 00:21:04.680
that I'm a huge fan of.

00:21:04.680 --> 00:21:06.460
I love choose your
own adventure games.

00:21:06.460 --> 00:21:09.330
And I think the medium
is perfect for it.

00:21:09.330 --> 00:21:11.580
Instead of just doing
yes or no on the screen,

00:21:11.580 --> 00:21:15.400
you can actually do yes and
no by nodding and shaking

00:21:15.400 --> 00:21:15.900
your head.

00:21:15.900 --> 00:21:17.490
So it's very immersive.

00:21:17.490 --> 00:21:19.500
When you get asked a
question you're like, yes.

00:21:19.500 --> 00:21:21.900
And then it kind of goes on.

00:21:21.900 --> 00:21:24.840
Dead Drop Desperado
is a multiplayer game.

00:21:24.840 --> 00:21:26.355
It's a local multiplayer game.

00:21:26.355 --> 00:21:28.230
So what I actually really
like about this one

00:21:28.230 --> 00:21:32.540
is it's got a little bit of a
party game kind of aesthetic

00:21:32.540 --> 00:21:33.040
to it.

00:21:33.040 --> 00:21:36.240
So you play with a friend.

00:21:36.240 --> 00:21:40.320
And one of you holds the
mobile phone and the other one

00:21:40.320 --> 00:21:43.710
gets handed off the wearable,
so let's say the headphones.

00:21:43.710 --> 00:21:46.620
And what happens is he's
standing in front of you.

00:21:46.620 --> 00:21:49.050
And you shoot bullets
at your friend.

00:21:49.050 --> 00:21:51.360
And your friend is trying
to dodge the bullets

00:21:51.360 --> 00:21:52.860
by listening to
where they're coming

00:21:52.860 --> 00:21:54.450
from using the spatial audio.

00:21:54.450 --> 00:21:56.830
And you're kind of leaning
left and right like that.

00:21:56.830 --> 00:21:58.890
And then it gets switched off.

00:21:58.890 --> 00:22:00.510
And then you're the
one who's dodging,

00:22:00.510 --> 00:22:01.885
and he's the one
that's shooting.

00:22:01.885 --> 00:22:04.050
And then in the end, there's
kind of a score tally

00:22:04.050 --> 00:22:05.550
and it's got a leaderboard.

00:22:05.550 --> 00:22:08.280
And it kind of has a little bit
of a competitive aspect to it.

00:22:08.280 --> 00:22:10.440
What I personally like
is that you could,

00:22:10.440 --> 00:22:13.560
let's say, you have
your headphones,

00:22:13.560 --> 00:22:16.350
and you want to show someone
something cool on them.

00:22:16.350 --> 00:22:18.390
You could just kind of
hand off the headphones.

00:22:18.390 --> 00:22:20.565
And now it's this
multi-player interaction.

00:22:20.565 --> 00:22:22.440
So you have the headphones,
I have the phone.

00:22:22.440 --> 00:22:23.460
And you switch it up.

00:22:23.460 --> 00:22:25.560
And it's also a
little bit competitive

00:22:25.560 --> 00:22:27.000
with the leaderboard and such.

00:22:27.000 --> 00:22:31.938
So like I said,
representative experiences.

00:22:31.938 --> 00:22:34.230
You're definitely not limited
to these design patterns.

00:22:34.230 --> 00:22:37.070
We're actually excited to see
what our developers come up

00:22:37.070 --> 00:22:37.570
with.

00:22:37.570 --> 00:22:41.820
And there's always cool stuff
that people come up with.

00:22:41.820 --> 00:22:44.620
And I just wanted to
show you a little bit.

00:22:44.620 --> 00:22:46.930
So we have this video
that was produced.

00:22:46.930 --> 00:22:49.650
So we've posted a bunch
of game jams this year.

00:22:49.650 --> 00:22:53.730
And this is one of the first
game jams that we hosted.

00:22:53.730 --> 00:22:56.070
And these games that
I just showed you

00:22:56.070 --> 00:22:57.690
were actually built at it.

00:22:57.690 --> 00:22:59.200
So I'll just go
ahead and show you.

00:22:59.200 --> 00:23:01.770
So this is from our
Playcrafting partnership.

00:23:01.770 --> 00:23:07.230
Playcrafting is a small,
game developer collective.

00:23:07.230 --> 00:23:10.710
But plus they also host
events like Play NYC.

00:23:10.710 --> 00:23:15.690
And they bring developers,
they teach Unity classes,

00:23:15.690 --> 00:23:18.930
and they just have a general
kind of game developer

00:23:18.930 --> 00:23:20.740
community across the country.

00:23:20.740 --> 00:23:24.300
So we've partnered with them to
have some of these Bose AR game

00:23:24.300 --> 00:23:25.830
jams.

00:23:25.830 --> 00:23:27.496
And I'll show you the video.

00:23:27.496 --> 00:23:29.480
[MUSIC PLAYING]

00:23:32.112 --> 00:23:34.320
ERIC HAMEL: We're here this
weekend at Bose's offices

00:23:34.320 --> 00:23:35.310
in Boston.

00:23:35.310 --> 00:23:37.700
And we're doing a game jam
with their new AR technology.

00:23:37.700 --> 00:23:39.450
MICHAEL LUDDEN: We've
given the developers

00:23:39.450 --> 00:23:43.080
a brand new version of the
Bose AR SDK and Unity plugin.

00:23:43.080 --> 00:23:46.320
It allows Unity developers to
use and add Bose AR integration

00:23:46.320 --> 00:23:47.760
to Unity based apps.

00:23:47.760 --> 00:23:51.660
REJON TAYLOR-FOSTER: They've
built a very intuitive system

00:23:51.660 --> 00:23:56.520
for developers like me to be
able to just pop it into Unity

00:23:56.520 --> 00:23:57.300
and just go.

00:23:57.300 --> 00:23:58.758
MICHAEL CARRIER:
We give you access

00:23:58.758 --> 00:24:01.080
to all of the sensors that
are available in the device,

00:24:01.080 --> 00:24:03.900
the accelerometer,
the gyroscope, two

00:24:03.900 --> 00:24:05.580
different rotation sensors.

00:24:05.580 --> 00:24:09.360
They provide orientation of the
user's head and world space.

00:24:09.360 --> 00:24:12.060
We can actually provide
spatialized audio,

00:24:12.060 --> 00:24:14.790
which just gives you an entirely
new level of context when

00:24:14.790 --> 00:24:16.495
you're making any
sort of experience.

00:24:16.495 --> 00:24:18.870
ERIC CHAN: We're able to get
all sorts of different types

00:24:18.870 --> 00:24:21.570
of information from the
frames glasses, which

00:24:21.570 --> 00:24:25.110
we can use to help develop
the new types of interactions.

00:24:25.110 --> 00:24:28.110
ERIC HAMEL: We were challenged
to create an augmented reality

00:24:28.110 --> 00:24:30.480
experience that put audio first.

00:24:30.480 --> 00:24:31.980
ANNA SHABAYEV: It's
very interesting

00:24:31.980 --> 00:24:34.740
to look at games from, like,
a whole different angle.

00:24:34.740 --> 00:24:35.940
JONATHAN SHRACK: Usually
people think AR and think,

00:24:35.940 --> 00:24:36.773
oh, it's all visual.

00:24:36.773 --> 00:24:38.442
And this one, it's
Bose, so it's audio.

00:24:38.442 --> 00:24:39.900
CRAIG HERNDON: The
challenge really

00:24:39.900 --> 00:24:41.692
made us put our heads
together and be like,

00:24:41.692 --> 00:24:42.753
what can you really do?

00:24:42.753 --> 00:24:44.670
ANNA SHABAYEV: There's
a whole world of sound.

00:24:44.670 --> 00:24:46.620
And we shouldn't just
be paying attention

00:24:46.620 --> 00:24:49.832
to just the visual component.

00:24:49.832 --> 00:24:52.290
MICHAEL LUDDEN: So we've had
a lot of really creative ideas

00:24:52.290 --> 00:24:54.165
that the developers have
come up with so far.

00:24:54.165 --> 00:24:56.550
And I think some of the
more interesting aspects

00:24:56.550 --> 00:24:59.250
are the different game mechanics
with the user interface

00:24:59.250 --> 00:25:00.570
experiments that they're doing.

00:25:00.570 --> 00:25:01.945
MIKE LEVINE: The
game we created,

00:25:01.945 --> 00:25:03.550
we're calling sonic samurai.

00:25:03.550 --> 00:25:06.000
You're the samurai
and you can't see.

00:25:06.000 --> 00:25:08.130
But there are all these
monsters around you.

00:25:08.130 --> 00:25:12.000
And you basically have to use
the Bose headset to determine

00:25:12.000 --> 00:25:13.560
where the monsters are.

00:25:13.560 --> 00:25:15.600
And then you actually
use your mobile device

00:25:15.600 --> 00:25:19.620
as your sword to
strike at the monsters.

00:25:19.620 --> 00:25:21.870
REJON TAYLOR-FOSTER: It's a
game where you essentially

00:25:21.870 --> 00:25:26.850
try to dodge bullets that are
sent from one user towards you.

00:25:26.850 --> 00:25:29.760
Imagine the matrix, but
you can't see the bullets

00:25:29.760 --> 00:25:30.930
that are coming at you.

00:25:30.930 --> 00:25:33.150
You can only hear them.

00:25:33.150 --> 00:25:35.820
MARC HARPIN: Our game
is called OverHerd.

00:25:35.820 --> 00:25:38.520
ERIC HAMEL: You play a
medieval catapult operator,

00:25:38.520 --> 00:25:41.847
catapulting poultry and
cows as French castles.

00:25:41.847 --> 00:25:43.680
MARC HARPIN: You're
doing this all at night,

00:25:43.680 --> 00:25:45.223
under cover of darkness.

00:25:45.223 --> 00:25:46.890
ERIC HAMEL: So you
have to use your ears

00:25:46.890 --> 00:25:48.745
to hear where the castle is.

00:25:48.745 --> 00:25:50.370
MARC HARPIN: When
you point your frames

00:25:50.370 --> 00:25:52.980
in the correct direction, you
can hear the French defenders

00:25:52.980 --> 00:25:53.790
taunting you.

00:25:53.790 --> 00:25:56.023
ERIC HAMEL: Daring you
throw things at them.

00:25:56.023 --> 00:25:57.690
FRENCHMAN 1: Your
efforts are all wastes

00:25:57.690 --> 00:26:00.810
of perfectly good livestocks.

00:26:00.810 --> 00:26:03.480
MARC HARPIN: By turning your
head and elevating it up,

00:26:03.480 --> 00:26:08.880
you actually modulate the angle
the catapult with fire at.

00:26:08.880 --> 00:26:11.370
ERIC CHAN: You are being
bombarded by vegetables

00:26:11.370 --> 00:26:13.213
in a 360 degree radius.

00:26:13.213 --> 00:26:15.630
You can tell what direction
the vegetables are coming from

00:26:15.630 --> 00:26:16.710
based on spatial audio.

00:26:16.710 --> 00:26:20.280
And you need to find and
face the correct vegetable

00:26:20.280 --> 00:26:21.807
and eat it.

00:26:21.807 --> 00:26:24.390
JONATHAN SHRACK: We're working
on kind of a spy thriller game.

00:26:24.390 --> 00:26:26.348
CRAIG HERNDON: When you
put on the Bose frames,

00:26:26.348 --> 00:26:29.280
you start to get radio
chatter from a secret agent.

00:26:29.280 --> 00:26:32.670
And you start doing instructions
to locate radar pings,

00:26:32.670 --> 00:26:33.810
diffuse bombs.

00:26:33.810 --> 00:26:36.600
Like James Bond and Mission
Impossible in real life.

00:26:36.600 --> 00:26:37.350
WOMAN 1: Duck now.

00:26:40.510 --> 00:26:42.310
ERIC CHAN: Augmented
reality is really

00:26:42.310 --> 00:26:44.477
one of the most important
future mediums for design.

00:26:44.477 --> 00:26:46.602
MICHAEL CARRIER: And we're
getting the tools set up

00:26:46.602 --> 00:26:49.150
in a way that allow people
to start experimenting.

00:26:49.150 --> 00:26:51.460
And using something like
Unity allows that iteration

00:26:51.460 --> 00:26:53.030
to happen very, very quickly.

00:26:53.030 --> 00:26:53.530
REJON TAYLOR-FOSTER:
It's an honor

00:26:53.530 --> 00:26:55.990
to be chosen to be here
to work on this technology

00:26:55.990 --> 00:26:56.890
for the first time.

00:26:56.890 --> 00:26:59.110
ANNA SHABAYEV: And also give
developers a bigger idea of,

00:26:59.110 --> 00:27:00.790
like, what's possible
with this stuff so

00:27:00.790 --> 00:27:06.220
that they can use our games as a
stepping stone for what's next.

00:27:06.220 --> 00:27:08.800
DAN BUTCHKO: Here we
are at PAX East 2019.

00:27:08.800 --> 00:27:11.680
All five of these games are
debuting for the first time

00:27:11.680 --> 00:27:12.370
anywhere.

00:27:12.370 --> 00:27:14.912
ERIC HAMEL: People are having
a lot of fun here this weekend.

00:27:14.912 --> 00:27:17.260
Lots of people dodging
vegetables and throwing cows.

00:27:17.260 --> 00:27:18.760
MAN 1: I always
enjoy, like, finding

00:27:18.760 --> 00:27:20.110
new games that are innovative.

00:27:20.110 --> 00:27:21.693
MAN 2: I've never
played anything just

00:27:21.693 --> 00:27:22.962
based entirely on sound.

00:27:22.962 --> 00:27:24.670
WOMAN 2: I don't think
I've seen anything

00:27:24.670 --> 00:27:28.850
else here that relies completely
on audio and motion, no visual

00:27:28.850 --> 00:27:29.350
at all.

00:27:29.350 --> 00:27:31.360
But it felt really
immersive and cool.

00:27:31.360 --> 00:27:33.193
IAN CUBIN: People are
really getting a sense

00:27:33.193 --> 00:27:35.200
that the audio is
read and spatial.

00:27:35.200 --> 00:27:37.253
WOMAN 3: You felt like
you're really there.

00:27:37.253 --> 00:27:39.170
MAN 3: It's just a whole
different experience.

00:27:39.170 --> 00:27:40.253
WOMAN 4: It's more social.

00:27:40.253 --> 00:27:42.580
It really brings us back
to where games really are,

00:27:42.580 --> 00:27:44.050
where it's with other people.

00:27:44.050 --> 00:27:45.820
MAN 3: It's a fun
ride, these glasses.

00:27:45.820 --> 00:27:47.800
DAN BUTCHKO: We're changing
the landscape of AR

00:27:47.800 --> 00:27:49.180
and games in America.

00:27:49.180 --> 00:27:51.593
And this is just a
taste of what's to come.

00:27:51.593 --> 00:27:53.260
CRAIG HERNDON: It's
very exciting for us

00:27:53.260 --> 00:27:55.240
to have that chance to
impact other people's

00:27:55.240 --> 00:27:56.447
lives with a new technology.

00:27:56.447 --> 00:27:58.030
CHUCK FREEDMAN: The
things that people

00:27:58.030 --> 00:28:00.340
were able to do over a
weekend really inspired me

00:28:00.340 --> 00:28:03.460
to think we're going to see
some amazing stuff this year.

00:28:05.895 --> 00:28:08.520
FILIP BABA: And we have actually
seen some pretty amazing stuff

00:28:08.520 --> 00:28:09.180
this year.

00:28:09.180 --> 00:28:12.630
I feel like the more of
these experiences get built,

00:28:12.630 --> 00:28:16.380
and the more developers
get creative with it,

00:28:16.380 --> 00:28:18.570
it's an early
platform so there's

00:28:18.570 --> 00:28:21.867
plenty of room to kind of
set the standard at what

00:28:21.867 --> 00:28:22.575
could be created.

00:28:25.530 --> 00:28:27.480
What else do I have here?

00:28:27.480 --> 00:28:31.680
So I have a few actual
gameplay footage

00:28:31.680 --> 00:28:34.110
that I'd like to show
you on some experiences

00:28:34.110 --> 00:28:35.760
that I personally like.

00:28:35.760 --> 00:28:37.700
Developers cut up these
videos to kind of show

00:28:37.700 --> 00:28:38.700
what the games are like.

00:28:38.700 --> 00:28:40.170
So just going to get into these.

00:28:40.170 --> 00:28:42.885
And again, just some
more inspiration.

00:28:42.885 --> 00:28:44.760
NARRATOR 1: The Worst
Grim Reaper's Soulmates

00:28:44.760 --> 00:28:45.600
it's an AR music game.

00:28:45.600 --> 00:28:45.860
FILIP BABA: That's this t-shirt.

00:28:45.860 --> 00:28:48.360
NARRATOR 1: In which a singing
grim reaper plays a song that

00:28:48.360 --> 00:28:50.170
responds to you and your world.

00:28:50.170 --> 00:28:51.930
The grim reaper
Sebastian is a character

00:28:51.930 --> 00:28:54.230
from another one of our games.

00:28:54.230 --> 00:28:56.750
He's tired of his dead
end job collecting souls

00:28:56.750 --> 00:29:00.570
and wants to pursue his
dream of being a songwriter.

00:29:00.570 --> 00:29:02.790
Seeking inspiration,
Sebastian asks

00:29:02.790 --> 00:29:05.269
you to let him write a
song about your life.

00:29:05.269 --> 00:29:07.764
[MUSIC PLAYING]

00:29:20.738 --> 00:29:25.250
SEBASTIAN: (SINGING) You looking
up, maybe lost in thought,

00:29:25.250 --> 00:29:29.330
kind of like me, you
know I daydream a lot.

00:29:29.330 --> 00:29:33.810
There are things on the
ceiling and in outer space.

00:29:33.810 --> 00:29:37.490
There's magic in
almost every place.

00:29:40.470 --> 00:29:43.580
Hey, would you like to
share you thoughts with me?

00:29:51.640 --> 00:29:56.170
Wanting to learn about the
inside of the human skull.

00:29:56.170 --> 00:30:00.530
I ask what's going
on in your soul.

00:30:00.530 --> 00:30:08.764
OK, mm, are you maybe
thinking about food?

00:30:12.716 --> 00:30:16.790
I still have a lot to
learn about human kind.

00:30:16.790 --> 00:30:18.920
AUDIENCE: [LAUGHTER]

00:30:18.920 --> 00:30:22.500
SEBASTIAN: Would
be on their minds.

00:30:22.500 --> 00:30:25.130
OK, so if it's not
spaghetti or chocolate cake.

00:30:25.130 --> 00:30:27.540
So maybe the fact that the
sun will someday explode

00:30:27.540 --> 00:30:30.480
and everything we know will
go up in an ocean of flames?

00:30:34.890 --> 00:30:39.790
The human mind is less
dark than I would guessed.

00:30:39.790 --> 00:30:45.324
I'll try to see inside
of you once more.

00:30:45.324 --> 00:30:48.810
Hm, oh, is it someone you like?

00:30:48.810 --> 00:30:50.802
As in, like like?

00:30:54.510 --> 00:30:56.260
NARRATOR 1: Imagine
players using this app

00:30:56.260 --> 00:30:59.290
while commuting and
exploring or just relaxing.

00:30:59.290 --> 00:31:01.372
Through interacting with
Sebastian and his song,

00:31:01.372 --> 00:31:03.580
we want to show players that
even the smallest things

00:31:03.580 --> 00:31:05.160
in life can carry meaning.

00:31:05.160 --> 00:31:07.330
Sometimes we just need
someone to talk to.

00:31:10.450 --> 00:31:12.020
FILIP BABA: Cool, right?

00:31:12.020 --> 00:31:13.600
It actually works.

00:31:13.600 --> 00:31:15.560
It's actually really fun.

00:31:15.560 --> 00:31:20.140
So one of the things
that I personally

00:31:20.140 --> 00:31:22.600
have learned over overdoing
some of these jams

00:31:22.600 --> 00:31:25.270
and seeing what
developers build is

00:31:25.270 --> 00:31:30.100
that when you're not focusing
so much on the visuals,

00:31:30.100 --> 00:31:33.910
you have a lot of room
for story and substance,

00:31:33.910 --> 00:31:35.530
if I could say it so myself.

00:31:35.530 --> 00:31:41.390
It's like this developer,
was we had all teams of four.

00:31:41.390 --> 00:31:45.530
So three of those people
were just content creators.

00:31:45.530 --> 00:31:47.320
So one we brought was Mitty.

00:31:47.320 --> 00:31:50.440
He was he was actually
producing music during the jam.

00:31:50.440 --> 00:31:53.567
One was just doing like the
singing and the voice acting.

00:31:53.567 --> 00:31:55.150
I forget what the
third guy was doing.

00:31:55.150 --> 00:31:56.442
I think he was doing, like, UI.

00:31:56.442 --> 00:32:00.207
Even though I do recommend
to have nice, polished UI.

00:32:00.207 --> 00:32:02.290
But it doesn't have to be
crazy, that's the thing.

00:32:02.290 --> 00:32:04.750
Like most games are very 3D.

00:32:04.750 --> 00:32:07.210
And one of the things
that's a problem,

00:32:07.210 --> 00:32:10.930
I'm a game developer myself,
nowadays there's so many tools

00:32:10.930 --> 00:32:12.580
and so many things
you can do, it's

00:32:12.580 --> 00:32:14.860
kind of hard to figure
out what you want to do.

00:32:14.860 --> 00:32:16.420
Because you're like,
oh my god, just

00:32:16.420 --> 00:32:19.520
overwhelmed with
all these things

00:32:19.520 --> 00:32:22.240
that our modern devices can do.

00:32:22.240 --> 00:32:25.735
So there's a lot of room
for this kind of content

00:32:25.735 --> 00:32:26.360
to be produced.

00:32:26.360 --> 00:32:30.460
So this is kind of like a little
AI kind of companion game,

00:32:30.460 --> 00:32:31.150
you could say.

00:32:31.150 --> 00:32:32.337
And yeah, it responds.

00:32:32.337 --> 00:32:34.670
And there's other things he
didn't mention in the video.

00:32:34.670 --> 00:32:36.700
Like, it actually changes
based on the weather.

00:32:36.700 --> 00:32:38.117
So it actually
checks the weather.

00:32:38.117 --> 00:32:40.030
If it's a rainy day,
you start the game,

00:32:40.030 --> 00:32:41.770
you'll have a rainy day mood.

00:32:41.770 --> 00:32:44.170
If it's a sunny day, you'll
have a sunny day mood.

00:32:44.170 --> 00:32:46.480
So it's kind of a
replayable thing.

00:32:46.480 --> 00:32:48.910
And I don't expect people
to be running this app,

00:32:48.910 --> 00:32:49.780
like, nonstop.

00:32:49.780 --> 00:32:51.700
But I could probably
see people running

00:32:51.700 --> 00:32:54.710
this for that one hour of
their commute during the day,

00:32:54.710 --> 00:32:56.710
or maybe like for their
lunch break or something

00:32:56.710 --> 00:32:59.770
like that, which is actually
a lot, in terms of mobile app

00:32:59.770 --> 00:33:01.120
usage.

00:33:01.120 --> 00:33:02.890
So it's fun.

00:33:02.890 --> 00:33:04.600
And it's music,
so you're probably

00:33:04.600 --> 00:33:05.800
already listening to music.

00:33:05.800 --> 00:33:08.410
Why not have a soundtrack
to your life, for example?

00:33:08.410 --> 00:33:11.720
That's kind of the
idea behind the game.

00:33:11.720 --> 00:33:16.460
This one is also a
really cool example.

00:33:16.460 --> 00:33:18.670
So I'll just let him explain it.

00:33:18.670 --> 00:33:20.740
NARRATOR 2: That is about
bopping and grooving

00:33:20.740 --> 00:33:22.630
your head to the music.

00:33:22.630 --> 00:33:25.150
Similar to other rhythm
games, you score points

00:33:25.150 --> 00:33:27.490
by staying on the beat.

00:33:27.490 --> 00:33:32.290
At the moment, we have about
a dozen custom written songs.

00:33:32.290 --> 00:33:34.630
In the future, we want the
possibility for players

00:33:34.630 --> 00:33:37.570
to download hundreds of songs
or play with their own music

00:33:37.570 --> 00:33:38.170
library.

00:33:38.170 --> 00:33:40.560
[MUSIC PLAYING]

00:33:43.910 --> 00:33:46.370
We are going to play Party
in the Washing Machine.

00:33:50.880 --> 00:33:54.550
Our foxy friend here is
grooving along as well.

00:33:54.550 --> 00:33:59.170
You could follow it and he
helps you stay on the beat.

00:33:59.170 --> 00:34:01.630
The line below is showing
your head movements.

00:34:01.630 --> 00:34:06.040
It also changes colors to
indicate how long you're doing.

00:34:06.040 --> 00:34:07.810
So we really intend
this game to be

00:34:07.810 --> 00:34:10.580
a phone in pocket experience.

00:34:10.580 --> 00:34:15.889
We added both audio
and tactile feedback.

00:34:15.889 --> 00:34:17.620
For example, the
high pass filter

00:34:17.620 --> 00:34:21.159
turns on when you're doing bad.

00:34:21.159 --> 00:34:26.550
And your phone vibrates with the
beat when you're doing great.

00:34:26.550 --> 00:34:29.010
So the idea of Hip
Hop Hero came from us

00:34:29.010 --> 00:34:32.219
wanting to make a game that
naturally played with Bose AR

00:34:32.219 --> 00:34:35.429
defenses, something you
can play while commuting

00:34:35.429 --> 00:34:36.600
on the train in public.

00:34:40.230 --> 00:34:44.250
FILIP BABA: Yeah, it's
like a play on words

00:34:44.250 --> 00:34:45.405
of Guitar Hero, kind of.

00:34:45.405 --> 00:34:47.280
You know, you're kind
of staying on the beat.

00:34:47.280 --> 00:34:50.650
You get rated based on how well
you did, how well on the beat

00:34:50.650 --> 00:34:51.150
you stayed.

00:34:51.150 --> 00:34:53.610
And you don't have to have
a specific head gesture.

00:34:53.610 --> 00:34:57.090
It's just kind of how you
would normally bob your head.

00:34:57.090 --> 00:34:58.800
And they have a
pretty good algorithm

00:34:58.800 --> 00:35:01.247
for detecting that change.

00:35:01.247 --> 00:35:03.330
They're using both the
accelerometer and the gyro,

00:35:03.330 --> 00:35:05.970
but I'm not I'm not
100% sure on that.

00:35:05.970 --> 00:35:10.090
But yeah, I thought it was great
how they visualized it as well.

00:35:10.090 --> 00:35:13.860
So that's an actual graph
based on your head movement.

00:35:13.860 --> 00:35:18.480
And then you get rated
and, you know, it's yeah.

00:35:18.480 --> 00:35:20.490
I mean, you've probably
seen games like this.

00:35:20.490 --> 00:35:22.210
And this is the last one.

00:35:22.210 --> 00:35:25.800
This one I like
because you're kind

00:35:25.800 --> 00:35:28.530
of producing music in a way.

00:35:28.530 --> 00:35:32.430
Now, it's basically song
loops that they've created.

00:35:32.430 --> 00:35:36.210
But the amount of song
loops that are in this app,

00:35:36.210 --> 00:35:37.630
for example,

00:35:37.630 --> 00:35:39.840
I mean, someone
here can probably

00:35:39.840 --> 00:35:43.170
do the mathematical permutations
of how many combinations

00:35:43.170 --> 00:35:45.280
of unique songs you
can get out of it.

00:35:45.280 --> 00:35:50.370
But it's a lot when you include,
like, 10 loops, for example,

00:35:50.370 --> 00:35:57.820
for bass lines, as you're kind
of adding complexity to a song.

00:35:57.820 --> 00:36:00.630
And if you have maybe, like, 10
of each samples and in the end

00:36:00.630 --> 00:36:02.850
you got, like, maybe
40 samples in total,

00:36:02.850 --> 00:36:06.007
you could be creating unique
music on every play through.

00:36:06.007 --> 00:36:08.340
NARRATOR 3: Choose your own
adventure musical experience

00:36:08.340 --> 00:36:10.800
of layering song loops,
set in a world where

00:36:10.800 --> 00:36:13.080
flowers produce music.

00:36:13.080 --> 00:36:15.450
Players listen,
explore, and nod along

00:36:15.450 --> 00:36:18.420
to the music, collecting
song loops like pollen,

00:36:18.420 --> 00:36:21.700
in order to blossom
a musical garden.

00:36:21.700 --> 00:36:24.517
The game is played by looking
around to find new sounds,

00:36:24.517 --> 00:36:26.350
and nodding your head
along to the beat when

00:36:26.350 --> 00:36:28.180
you find one you like.

00:36:28.180 --> 00:36:30.640
This process can
go on indefinitely,

00:36:30.640 --> 00:36:33.850
allowing players to explore
countless new ways of layering

00:36:33.850 --> 00:36:36.640
together song tracks.

00:36:36.640 --> 00:36:40.030
FILIP BABA: It's basically, she
totally nailed the explanation,

00:36:40.030 --> 00:36:41.680
like, in the beginning.

00:36:41.680 --> 00:36:44.620
But basically, yeah,
you look around.

00:36:44.620 --> 00:36:47.140
You hear a preview of
a loop, you like it.

00:36:47.140 --> 00:36:47.950
You nod it.

00:36:47.950 --> 00:36:51.460
And then you go on, and
you're just layering loops.

00:36:51.460 --> 00:36:53.390
And it works really well.

00:36:53.390 --> 00:36:56.320
I mean, the developer really
figured out a way to make it.

00:36:56.320 --> 00:37:00.160
If you've ever
tried to make music,

00:37:00.160 --> 00:37:02.680
sometimes you could
just mess up and it just

00:37:02.680 --> 00:37:05.290
sounds terrible because you're
mixing way too many dissonant

00:37:05.290 --> 00:37:06.490
sounds.

00:37:06.490 --> 00:37:10.660
But they managed to figure
out an algorithm to layer it

00:37:10.660 --> 00:37:12.100
and it always sounds good.

00:37:12.100 --> 00:37:13.750
And I've tried to break it.

00:37:13.750 --> 00:37:15.760
Whenever I play any
of these experiences,

00:37:15.760 --> 00:37:17.860
I'm pressing everywhere
and nodding to everything,

00:37:17.860 --> 00:37:20.565
trying to make it sound bad.

00:37:20.565 --> 00:37:21.190
And I couldn't.

00:37:21.190 --> 00:37:22.300
It always sounded good.

00:37:22.300 --> 00:37:24.400
So super cool.

00:37:24.400 --> 00:37:26.020
So that's our developer portal.

00:37:26.020 --> 00:37:30.040
It Developer.Bose.com/BoseAR.

00:37:30.040 --> 00:37:31.930
That's where you'll
find the SDK.

00:37:31.930 --> 00:37:34.370
I'm sure most of you
have already gone on here

00:37:34.370 --> 00:37:36.940
and downloaded it.

00:37:36.940 --> 00:37:38.860
But I'll show you where
all that is in a sec.

00:37:38.860 --> 00:37:44.105
And the last kind of, like,
but not least important thing

00:37:44.105 --> 00:37:44.980
that I wanted to say.

00:37:44.980 --> 00:37:47.920
So we have a new program that
we just launched recently,

00:37:47.920 --> 00:37:49.880
and that's Bose
AR Certification.

00:37:49.880 --> 00:37:51.430
So what Bose AR
Certification is,

00:37:51.430 --> 00:37:54.670
is say you build a Bose
AR app and you submit it

00:37:54.670 --> 00:37:55.660
for certification.

00:37:55.660 --> 00:37:57.730
Our internal team
will actually help

00:37:57.730 --> 00:38:00.790
you get across the finish line
and publish the app to the App

00:38:00.790 --> 00:38:03.685
Store or the Android
Store, making sure you have

00:38:03.685 --> 00:38:04.810
all the right requirements.

00:38:04.810 --> 00:38:06.295
And then if it
does get certified,

00:38:06.295 --> 00:38:08.980
and it's within our brand
guidelines, which again, we'll

00:38:08.980 --> 00:38:12.670
kind of help you get
through that finish line,

00:38:12.670 --> 00:38:15.040
you can get a possible
feature on the Bose Music

00:38:15.040 --> 00:38:17.740
app or the Bose Connect app.

00:38:17.740 --> 00:38:20.570
And you might even get
featured on the Bose website.

00:38:20.570 --> 00:38:24.250
So it's a really great
showcase and a really great way

00:38:24.250 --> 00:38:28.480
to get noticed, especially
as an early game developer.

00:38:28.480 --> 00:38:31.540
It's an early platform,
so obviously we're

00:38:31.540 --> 00:38:34.180
looking for great content
to feature on our portals.

00:38:34.180 --> 00:38:36.670
And if the content's
great, and it's, again,

00:38:36.670 --> 00:38:37.740
passes the certification.

00:38:37.740 --> 00:38:39.490
Which all these games
that I've shown you,

00:38:39.490 --> 00:38:42.130
they're all in the process
of getting certified

00:38:42.130 --> 00:38:44.140
and they'll all
be available when

00:38:44.140 --> 00:38:47.500
you have your frames, for
example, when you hook them up

00:38:47.500 --> 00:38:48.790
in the Bose connect app.

00:38:48.790 --> 00:38:52.672
There's actually a section
there, Bose AR enabled apps.

00:38:52.672 --> 00:38:54.130
And then you click
that and there's

00:38:54.130 --> 00:38:55.460
a directory there of apps.

00:38:55.460 --> 00:38:55.960
Yes.

00:38:55.960 --> 00:38:57.310
AUDIENCE: So this
works with Android now?

00:38:57.310 --> 00:38:59.890
FILIP BABA: So it works on
Android as well, yes, it does.

00:38:59.890 --> 00:39:00.700
AUDIENCE: OK.

00:39:00.700 --> 00:39:03.310
FILIP BABA: We had a
little bit of a, like,

00:39:03.310 --> 00:39:05.980
earlier start with iOS SDK.

00:39:05.980 --> 00:39:07.750
So a lot of stuff
was mainly iOS.

00:39:07.750 --> 00:39:09.708
AUDIENCE: In July it
wasn't working on Android.

00:39:09.708 --> 00:39:12.180
FILIP BABA: Yeah, now
we're rectifying that.

00:39:12.180 --> 00:39:14.680
There's going to be a lot of
Android experiences coming out.

00:39:14.680 --> 00:39:17.865
Sadly, it's still, some
developers just build for iOS.

00:39:17.865 --> 00:39:19.240
And we kind of
have to prod them.

00:39:19.240 --> 00:39:21.407
Be like, hey, could you
also build an Android build?

00:39:21.407 --> 00:39:23.930
And sometimes they need to
be incentivized to do that.

00:39:23.930 --> 00:39:25.720
Other times they just do it.

00:39:25.720 --> 00:39:28.690
If it's Unity, then most
of these experiences

00:39:28.690 --> 00:39:30.340
are going to be on both.

00:39:30.340 --> 00:39:33.970
But sadly, that's just kind of
how native app development is,

00:39:33.970 --> 00:39:37.160
they sometimes just want to
work in one and not the other.

00:39:37.160 --> 00:39:43.290
But we are fully Android
supported now as well.

00:39:43.290 --> 00:39:46.090
And then we also have
a Get Inspired page.

00:39:46.090 --> 00:39:49.420
This is a place where we have
some case studies written.

00:39:49.420 --> 00:39:51.610
Golfshot's there, if you
want to read about it.

00:39:51.610 --> 00:39:53.200
Dead Drop Desperado's
also up there.

00:39:53.200 --> 00:39:54.310
I think OverHerd.

00:39:54.310 --> 00:39:57.160
And it's just kind of a little
interview with the developers.

00:39:57.160 --> 00:39:59.440
They kind of talk about
their process of developing.

00:39:59.440 --> 00:40:03.010
And it's a good place to get
inspired and be like this guy,

00:40:03.010 --> 00:40:06.490
really happy, like, ah.

00:40:06.490 --> 00:40:08.820
Yeah, that's
basically the intro.

00:40:08.820 --> 00:40:10.970
I hope that didn't
take too long.

00:40:10.970 --> 00:40:13.030
But yeah, just wanted
to kind of give you

00:40:13.030 --> 00:40:16.870
a little bit of an
understanding of what this is.

00:40:16.870 --> 00:40:21.240
So does anyone have
any questions or no?

00:40:21.240 --> 00:40:22.830
Good.

00:40:22.830 --> 00:40:25.200
All right, so now
that we've gone

00:40:25.200 --> 00:40:27.700
through that, what
I'm going to do here,

00:40:27.700 --> 00:40:29.280
I'm just going to
close my Unity.

00:40:29.280 --> 00:40:34.230
And let's go ahead and
actually fire up Unity.

00:40:34.230 --> 00:40:37.770
And we're going to get our
a little beginner workshop

00:40:37.770 --> 00:40:39.150
started.

00:40:39.150 --> 00:40:44.280
So you should all have a
copy of the Unity package,

00:40:44.280 --> 00:40:48.750
of the Bose AR SDK for
Unity, which you can find it

00:40:48.750 --> 00:40:49.860
on our downloads page.

00:40:49.860 --> 00:40:51.750
Let me know if you have
trouble finding that.

00:40:51.750 --> 00:40:55.035
We're going to be
using this 4.0.1 beta.

00:40:55.035 --> 00:40:57.630
And when you download that,
it's just a Unity package

00:40:57.630 --> 00:41:00.010
that gets downloaded.

00:41:00.010 --> 00:41:04.540
So I'm just going to let
everyone kind of get to that.

00:41:04.540 --> 00:41:07.750
And the version of Unity
that I'm going to be using

00:41:07.750 --> 00:41:09.550
is just the latest one.

00:41:09.550 --> 00:41:13.960
I have 2019.2.5F1.

00:41:13.960 --> 00:41:19.630
And I have Android and iOS
build support as modules in it.

00:41:19.630 --> 00:41:21.550
And I recommend
that if you're going

00:41:21.550 --> 00:41:26.350
to be building to mobile that
you have your desired platform

00:41:26.350 --> 00:41:27.520
modules installed.

00:41:30.600 --> 00:41:33.762
I'm just going to let
everyone go ahead and do that.

00:41:33.762 --> 00:41:35.238
AUDIENCE: Hey,
should we tell them

00:41:35.238 --> 00:41:38.790
that-- is it still that
iPhone is only VDM?

00:41:38.790 --> 00:41:40.900
FILIP BABA: It's
always a thing, yeah,

00:41:40.900 --> 00:41:44.160
it's just Apple and iPhone.

00:41:44.160 --> 00:41:47.815
But again, if you don't
get a chance to build,

00:41:47.815 --> 00:41:49.440
you'll still be able
to preview the app

00:41:49.440 --> 00:41:52.020
and play with it directly
from your laptop.

00:41:52.020 --> 00:41:54.510
For most of this
workshop, we're actually

00:41:54.510 --> 00:41:56.940
going to be sticking to the
creative side of things,

00:41:56.940 --> 00:41:59.280
and concept, and trying
to build an experience.

00:41:59.280 --> 00:42:01.110
And then, like I
said, towards the end,

00:42:01.110 --> 00:42:04.795
we'll try to make sure
that everyone has built.

00:42:04.795 --> 00:42:06.420
And if you don't have
the right device,

00:42:06.420 --> 00:42:08.650
I'm sure we have
some extra devices.

00:42:08.650 --> 00:42:13.620
And if it comes to it, we could
potentially also build or maybe

00:42:13.620 --> 00:42:15.760
share devices if needed.

00:42:15.760 --> 00:42:18.420
But once you have it set up
once, then you're good to go.

00:42:27.730 --> 00:42:31.090
I have my iPhone here.

00:42:31.090 --> 00:42:32.305
I usually have to have both.

00:42:54.230 --> 00:42:57.190
All right, everyone
got their SDK?

00:42:57.190 --> 00:42:58.820
And ready to go.

00:42:58.820 --> 00:43:00.430
So what we're going
to do is we're

00:43:00.430 --> 00:43:03.010
going to actually make
a new project in Unity.

00:43:03.010 --> 00:43:06.730
And I'll just make sure everyone
has this before we do that.

00:43:20.240 --> 00:43:21.800
I'm just going to do the latest.

00:43:21.800 --> 00:43:26.880
And I'm just going to call
this project MIT Bose AR Unity

00:43:26.880 --> 00:43:27.380
Workshop.

00:43:30.030 --> 00:43:32.775
And I'm just going to pick
3D project and create.

00:43:36.130 --> 00:43:36.630
Bless you.

00:43:36.630 --> 00:43:37.063
Hm?

00:43:37.063 --> 00:43:38.355
AUDIENCE: Isn't it stable core?

00:43:38.355 --> 00:43:40.110
FILIP BABA: Yes it is.

00:43:40.110 --> 00:43:42.372
I think I just missed a
little bit in the beginning.

00:43:54.690 --> 00:43:57.640
All right, so I'm just going
to switch to the default layout

00:43:57.640 --> 00:43:58.140
here.

00:44:09.010 --> 00:44:14.550
Anyone not have their new
Unity project open yet?

00:44:14.550 --> 00:44:16.050
All right, just take your time.

00:44:16.050 --> 00:44:18.920
AUDIENCE: I'm
downloading [INAUDIBLE]..

00:44:18.920 --> 00:44:21.510
FILIP BABA: Oh, well good
thing the internet's fast.

00:44:21.510 --> 00:44:24.317
AUDIENCE: I'm using an early
version Unity right now.

00:44:24.317 --> 00:44:25.150
FILIP BABA: How old?

00:44:25.150 --> 00:44:25.910
What's the version?

00:44:25.910 --> 00:44:26.480
AUDIENCE: 15.

00:44:26.480 --> 00:44:26.990
FILIP BABA: That's fine.

00:44:26.990 --> 00:44:27.440
AUDIENCE: OK.

00:44:27.440 --> 00:44:27.920
FILIP BABA: That's fine.

00:44:27.920 --> 00:44:29.503
AUDIENCE: I'm
downloading the new one.

00:44:29.503 --> 00:44:32.660
FILIP BABA: Anything
that's past the LTS,

00:44:32.660 --> 00:44:35.288
the 2017.1.4 should be fine.

00:44:35.288 --> 00:44:37.580
Anything with, like, an f at
the end of it, it's final,

00:44:37.580 --> 00:44:39.380
not beta should work.

00:44:39.380 --> 00:44:39.933
AUDIENCE: OK.

00:44:39.933 --> 00:44:41.350
FILIP BABA: If for
whatever reason

00:44:41.350 --> 00:44:44.860
it doesn't, I know sometimes
there's been some edge cases.

00:44:44.860 --> 00:44:46.660
But it should be fine.

00:44:55.600 --> 00:44:57.006
[INTERPOSING VOICES]

00:45:31.400 --> 00:45:34.390
So when you do have
this, I just want

00:45:34.390 --> 00:45:37.180
you to take that Unity
package that was downloaded

00:45:37.180 --> 00:45:41.170
and just click it or
double click it to open it.

00:45:41.170 --> 00:45:43.690
And you'll get an import dialog.

00:45:43.690 --> 00:45:46.600
And I just want you to
import the entire thing

00:45:46.600 --> 00:45:49.340
into your project.

00:45:49.340 --> 00:45:50.747
Everyone imported?

00:45:50.747 --> 00:45:52.830
AUDIENCE: Yeah, what do
you click to import again?

00:45:52.830 --> 00:45:54.540
FILIP BABA: You should just
be able to double click

00:45:54.540 --> 00:45:55.650
the Unity package.

00:45:55.650 --> 00:45:57.390
And it should just
pull up Unity.

00:45:57.390 --> 00:45:59.710
If for whatever reason
that doesn't work,

00:45:59.710 --> 00:46:01.680
you can always right
click in your project

00:46:01.680 --> 00:46:04.350
here and then Import
Package, Custom Package.

00:46:04.350 --> 00:46:05.700
That also works as a backup.

00:46:22.949 --> 00:46:25.090
AUDIENCE: Yours is
a CSC file, right?

00:46:25.090 --> 00:46:26.728
I have an MCS file.

00:46:26.728 --> 00:46:27.640
So--

00:46:27.640 --> 00:46:28.920
FILIP BABA: For what?

00:46:28.920 --> 00:46:30.170
AUDIENCE: Just for the assets.

00:46:30.170 --> 00:46:31.942
FILIP BABA: Oh, yeah.

00:46:31.942 --> 00:46:32.900
Don't worry about that.

00:46:40.910 --> 00:46:44.972
Everyone imported, ready to go?

00:46:44.972 --> 00:46:45.930
Give it another minute.

00:46:57.580 --> 00:46:59.910
So yeah, when you import
the Unity package,

00:46:59.910 --> 00:47:02.970
you get the entirety of the SDK.

00:47:02.970 --> 00:47:06.000
There's samples in
here, sample scenes.

00:47:06.000 --> 00:47:08.820
There's a lot of cool stuff
in here that I'll get into.

00:47:08.820 --> 00:47:11.670
And the setup itself
is actually really

00:47:11.670 --> 00:47:13.260
straightforward and simple.

00:47:13.260 --> 00:47:15.990
We've tried to make
this as easy as possible

00:47:15.990 --> 00:47:19.440
to either put into a new project
or integrate with an existing

00:47:19.440 --> 00:47:20.770
project.

00:47:20.770 --> 00:47:22.650
So if you're
familiar with Unity,

00:47:22.650 --> 00:47:24.960
or if you've worked on
a Unity project before,

00:47:24.960 --> 00:47:31.170
you'll find that a
lot of the, I guess,

00:47:31.170 --> 00:47:34.620
the user flow and the
way that the SDK works

00:47:34.620 --> 00:47:37.860
is typical, kind of
to a Unity workflow.

00:47:40.440 --> 00:47:43.440
So once you're all
imported, you'll

00:47:43.440 --> 00:47:45.550
see these three folders show up.

00:47:45.550 --> 00:47:48.870
So the first one that I want you
to look at is the Bose folder.

00:47:48.870 --> 00:47:52.140
So you go inside the Bose
folder, there's wearable.

00:47:52.140 --> 00:47:54.930
And then inside wearable,
there's modules.

00:47:54.930 --> 00:47:55.980
You go to modules.

00:47:55.980 --> 00:47:58.390
And the first module that
we want is connection.

00:47:58.390 --> 00:48:02.070
So we're going to go to
connection and then prefabs.

00:48:02.070 --> 00:48:08.250
So that's Bose, wearable,
modules, connection, prefabs.

00:48:08.250 --> 00:48:11.580
And I want you to pull in this
first prefab that's available

00:48:11.580 --> 00:48:12.910
here.

00:48:12.910 --> 00:48:16.080
So just drag that
into your scene.

00:48:16.080 --> 00:48:18.620
You should see this
white rectangle pop up.

00:48:18.620 --> 00:48:21.410
Now, the first thing
that I like to do

00:48:21.410 --> 00:48:23.990
when I start a Unity project,
especially if I'm developing

00:48:23.990 --> 00:48:26.630
on mobile, is I
like to pull my game

00:48:26.630 --> 00:48:30.650
view, which is usually up here.

00:48:30.650 --> 00:48:32.090
You might have a
different layout.

00:48:32.090 --> 00:48:33.890
And I actually like
to take the game view,

00:48:33.890 --> 00:48:35.140
and I like to make it visible.

00:48:35.140 --> 00:48:37.880
So I actually drag that
game view over here

00:48:37.880 --> 00:48:40.520
to the right side of
the project panel.

00:48:40.520 --> 00:48:43.430
So I always kind of have a
little preview window here

00:48:43.430 --> 00:48:47.010
of what my preview
looks like, basically.

00:48:47.010 --> 00:48:50.030
So if you go ahead and
do that, then you'll

00:48:50.030 --> 00:48:54.050
see that the panel that
we just pulled in actually

00:48:54.050 --> 00:48:55.910
shows up here.

00:48:55.910 --> 00:48:58.310
And I'll explain what the
wearable connect panel does.

00:48:58.310 --> 00:49:01.580
It's basically the
entire menu that

00:49:01.580 --> 00:49:05.180
shows up that you can browse
all available devices.

00:49:05.180 --> 00:49:08.190
You click a device,
and you connect to it.

00:49:08.190 --> 00:49:11.840
So this handles all of
the connection for you.

00:49:11.840 --> 00:49:13.460
There's some cool
features on here,

00:49:13.460 --> 00:49:16.890
like auto reconnect and such.

00:49:16.890 --> 00:49:20.640
So for example, if
during your app,

00:49:20.640 --> 00:49:22.760
for example, maybe Bluetooth
connection turns off,

00:49:22.760 --> 00:49:25.160
or for whatever reason
the battery runs out,

00:49:25.160 --> 00:49:26.930
this panel will pop up again.

00:49:26.930 --> 00:49:28.790
It'll say, you've
been disconnected,

00:49:28.790 --> 00:49:32.510
searching for device
to kind of like

00:49:32.510 --> 00:49:37.110
keep the user experience clean.

00:49:37.110 --> 00:49:40.740
So you have the wearable
connect UI panel.

00:49:40.740 --> 00:49:42.900
And the next thing
that we actually

00:49:42.900 --> 00:49:45.570
need to make the wearable
connect UI panel work

00:49:45.570 --> 00:49:47.260
is we need an event system.

00:49:47.260 --> 00:49:49.110
So what I want you
to do is I actually

00:49:49.110 --> 00:49:50.730
want you to just
create an empty game

00:49:50.730 --> 00:49:56.055
object somewhere in the scene,
and call it event system.

00:50:00.600 --> 00:50:02.760
And on that empty
game object, I'm

00:50:02.760 --> 00:50:05.610
going to Add Component
here in the Inspector.

00:50:05.610 --> 00:50:09.040
And I'm just going to
start typing, event system.

00:50:09.040 --> 00:50:09.860
There it is.

00:50:09.860 --> 00:50:11.780
It's a built in Unity thing.

00:50:11.780 --> 00:50:13.870
And once you have
your event system,

00:50:13.870 --> 00:50:17.380
there's a button there called
add default input modules.

00:50:17.380 --> 00:50:18.880
So just click that.

00:50:18.880 --> 00:50:21.280
Now, I'll explain
what this does.

00:50:21.280 --> 00:50:23.650
This actually
allows you to click

00:50:23.650 --> 00:50:26.170
the UI of the connect panel.

00:50:26.170 --> 00:50:27.910
Now, the reason why
we do this separate

00:50:27.910 --> 00:50:31.070
is, maybe you have an already
existing Unity project.

00:50:31.070 --> 00:50:33.070
And maybe you already
have your own event system

00:50:33.070 --> 00:50:35.480
that you've set up, so we
don't want to mess with that.

00:50:35.480 --> 00:50:38.410
But since we're
starting a new project,

00:50:38.410 --> 00:50:40.150
we're going to create
this event system

00:50:40.150 --> 00:50:42.113
and add the default
input modules.

00:50:42.113 --> 00:50:44.530
Like I said, that just allows
you to actually click the UI

00:50:44.530 --> 00:50:46.990
and select the panel.

00:50:46.990 --> 00:50:48.670
So that's pretty much it.

00:50:48.670 --> 00:50:52.900
The last piece that we
need to actually set up,

00:50:52.900 --> 00:50:56.080
like our entire Bose AR,
is we actually go in.

00:50:56.080 --> 00:50:59.750
And we're going to create
another empty object.

00:50:59.750 --> 00:51:03.635
And we're going to call
this one wearable control.

00:51:06.960 --> 00:51:11.520
Now, this will actually stream
the sensor data back and forth

00:51:11.520 --> 00:51:12.450
from our app.

00:51:12.450 --> 00:51:14.370
So wearable control.

00:51:14.370 --> 00:51:16.320
And I'm going to add component.

00:51:16.320 --> 00:51:18.295
Now, if you clear
the search here,

00:51:18.295 --> 00:51:20.670
I'm just going to show you
where the Bose components are.

00:51:20.670 --> 00:51:22.830
So when you clear
the search, there

00:51:22.830 --> 00:51:24.960
is a Bose subcategory here.

00:51:24.960 --> 00:51:27.180
And you can click
Bose, wearable.

00:51:27.180 --> 00:51:30.130
And we have some sample
scripts here that you can use.

00:51:30.130 --> 00:51:32.790
So the one that we want
is wearable control.

00:51:32.790 --> 00:51:35.700
We're just going to click that.

00:51:35.700 --> 00:51:42.090
Now, one other useful thing that
we added semi-recently is you

00:51:42.090 --> 00:51:47.430
can actually go up into here.

00:51:47.430 --> 00:51:52.510
So if you go to asset,
for assets, create.

00:51:52.510 --> 00:51:55.090
And then there's a
Bose wearable category

00:51:55.090 --> 00:51:58.250
and there's an app
intent profile.

00:51:58.250 --> 00:52:02.360
So I'm actually going to
take that app intent profile.

00:52:02.360 --> 00:52:04.460
I'm going to put that
in my top directory

00:52:04.460 --> 00:52:08.810
in assets, because I was
in the prefabs folder here.

00:52:08.810 --> 00:52:11.108
You don't have to, but
it's just cleaner that way.

00:52:11.108 --> 00:52:12.650
And what you'll see
here on the right

00:52:12.650 --> 00:52:14.780
is you'll actually
see the sensors that

00:52:14.780 --> 00:52:16.380
are available to us.

00:52:16.380 --> 00:52:20.300
So for this first app
that we're building,

00:52:20.300 --> 00:52:21.860
we just need the gyroscope.

00:52:21.860 --> 00:52:24.140
So I'm going to check
the gyroscope on here.

00:52:24.140 --> 00:52:26.900
And rotation, 6th off.

00:52:26.900 --> 00:52:29.600
And then the update interval,
I'm going to make it,

00:52:29.600 --> 00:52:31.500
let's say, 40 milliseconds.

00:52:31.500 --> 00:52:34.640
That's all we kind of
need in terms of sensors.

00:52:34.640 --> 00:52:39.350
And what this basically does
is it just kind of syncs up

00:52:39.350 --> 00:52:41.990
what the app
requirements are and what

00:52:41.990 --> 00:52:44.160
the app is going to be using.

00:52:44.160 --> 00:52:50.260
So back to our wearable control
that we created earlier.

00:52:50.260 --> 00:52:55.480
You'll see there's an active app
intent profile empty slot right

00:52:55.480 --> 00:52:55.980
here.

00:52:55.980 --> 00:52:57.780
You can actually just
click that and just

00:52:57.780 --> 00:53:01.860
pull in that app intent
profile that we just created.

00:53:01.860 --> 00:53:04.850
So again, that's App Intent
Profile is in assets.

00:53:04.850 --> 00:53:08.630
Create Bose wearable
App Intent Profile.

00:53:08.630 --> 00:53:10.400
In the App Intent
Profile, you want

00:53:10.400 --> 00:53:13.460
to select Gyroscope,
RotationSixDof,

00:53:13.460 --> 00:53:15.620
and 40 milliseconds.

00:53:15.620 --> 00:53:19.570
And then in Wearable
Control, just put

00:53:19.570 --> 00:53:21.820
that App Intent Profile there.

00:53:21.820 --> 00:53:24.550
The last step to get
this to actually work

00:53:24.550 --> 00:53:28.075
is, where it says
Editor Default Provider,

00:53:28.075 --> 00:53:30.100
it says Debug Provider.

00:53:30.100 --> 00:53:33.590
We're actually going to
switch that to USB Provider.

00:53:33.590 --> 00:53:35.340
And what that will
actually allow us to do

00:53:35.340 --> 00:53:39.240
is it will actually allow us to
send the data over USB bridge

00:53:39.240 --> 00:53:41.790
directly to Unity, which
is great for debugging

00:53:41.790 --> 00:53:42.790
while you're developing.

00:53:42.790 --> 00:53:45.390
So that's actually what we're
going to be doing first.

00:53:45.390 --> 00:53:50.290
So your Wearable Control
has a USB provider.

00:53:50.290 --> 00:53:52.300
And that's pretty much it.

00:53:52.300 --> 00:53:56.520
So your app will actually
now connect, both using USB

00:53:56.520 --> 00:53:59.490
and, if you built this
to Android or iOS,

00:53:59.490 --> 00:54:01.740
you'll actually be able
to pair it with Bluetooth.

00:54:01.740 --> 00:54:05.140
The only problem is we're not
getting any of the sensor data.

00:54:05.140 --> 00:54:07.270
So we're not actually
doing anything with it yet.

00:54:07.270 --> 00:54:09.990
So the first thing
that I want to do

00:54:09.990 --> 00:54:13.440
is, let's say I just want
to visualize the head

00:54:13.440 --> 00:54:15.760
orientation on the screen.

00:54:15.760 --> 00:54:18.190
So how do we do that?

00:54:18.190 --> 00:54:20.200
So what we're
going to do here is

00:54:20.200 --> 00:54:24.250
I actually want you to
go back to the Modules.

00:54:24.250 --> 00:54:28.720
And in here there's another
folder called Model Loader

00:54:28.720 --> 00:54:29.920
and Prefabs.

00:54:29.920 --> 00:54:34.300
So if you go to Bose, Wearable,
Modules, Model Loader Prefabs,

00:54:34.300 --> 00:54:36.130
in here you'll
actually see we have

00:54:36.130 --> 00:54:40.660
a 3D model of all of our
Bose AR enabled wearables,

00:54:40.660 --> 00:54:41.980
which is actually really cool.

00:54:46.830 --> 00:54:49.650
And then there's also
a default for if it

00:54:49.650 --> 00:54:51.870
doesn't know or maybe
for a future product

00:54:51.870 --> 00:54:52.900
or something like that.

00:54:52.900 --> 00:54:56.980
So the Wearable Model
Loader actually pulls up

00:54:56.980 --> 00:54:58.862
the appropriate
model automatically,

00:54:58.862 --> 00:55:00.320
so it knows which
one you're doing.

00:55:00.320 --> 00:55:02.398
But right now let's
just do it manually.

00:55:02.398 --> 00:55:04.810
So pull up the
one that you have.

00:55:04.810 --> 00:55:08.060
So I have Rondo's here.

00:55:08.060 --> 00:55:10.480
So I'm just going to
take the Rondo's prefab,

00:55:10.480 --> 00:55:12.820
and I'm just going to
drag it into my scene.

00:55:12.820 --> 00:55:15.920
And if I double click it,
you'll see it's very small.

00:55:15.920 --> 00:55:18.740
So I would recommend
to scale it up,

00:55:18.740 --> 00:55:21.385
let's say, to something
like 40 by 40 by 40.

00:55:24.930 --> 00:55:29.080
So we just have our Rondo's
like that in the scene.

00:55:29.080 --> 00:55:31.720
And the last thing
that I want to do

00:55:31.720 --> 00:55:35.500
is on this prefab I actually
want to Add Component.

00:55:38.710 --> 00:55:42.550
And in here we're going
to go to Bose, Wearable,

00:55:42.550 --> 00:55:45.160
and then there's a script
called Rotation Matcher.

00:55:45.160 --> 00:55:47.950
So we're going to
select that, and we're

00:55:47.950 --> 00:55:52.900
going to make the update
interval 40 milliseconds.

00:55:52.900 --> 00:55:53.740
OK?

00:55:53.740 --> 00:55:57.710
So what Rotation Matcher does
is what the name implies.

00:55:57.710 --> 00:56:00.220
It will match the
rotation of the wearable,

00:56:00.220 --> 00:56:03.520
so it will actually
take the gyroscope data.

00:56:03.520 --> 00:56:05.780
And that's actually
pretty much it.

00:56:05.780 --> 00:56:07.938
So this should already work.

00:56:07.938 --> 00:56:09.730
So what we're going to
do is we're actually

00:56:09.730 --> 00:56:10.700
going to test it out.

00:56:10.700 --> 00:56:14.650
So what I want you to do is I
want you to take your frames.

00:56:14.650 --> 00:56:17.680
Hook them up with
USB to your computer.

00:56:17.680 --> 00:56:20.650
If you're on Windows, you'll
hear the connected sound.

00:56:20.650 --> 00:56:23.690
And I'm actually just going
to Maximize on Play here

00:56:23.690 --> 00:56:25.005
so you can see what I'm doing.

00:56:25.005 --> 00:56:26.005
I'm going to press Play.

00:56:29.200 --> 00:56:30.520
The picker is there.

00:56:30.520 --> 00:56:33.130
I have my frames I
selected in the UI.

00:56:33.130 --> 00:56:34.840
It's going to connect to it.

00:56:44.630 --> 00:56:53.845
And there are my frames tracking
their rotation as intended.

00:56:53.845 --> 00:56:55.720
AUDIENCE: And this is
all happening over USB,

00:56:55.720 --> 00:56:58.150
so if the cable disconnects--

00:56:58.150 --> 00:56:59.020
FILIP BABA: Yep.

00:56:59.020 --> 00:57:01.600
It'll stop, yeah.

00:57:01.600 --> 00:57:05.575
So the idea is that
this is for development.

00:57:05.575 --> 00:57:07.450
You're obviously going
to be using the cable.

00:57:07.450 --> 00:57:10.240
But if you took this app
and actually built it

00:57:10.240 --> 00:57:12.388
to your phone, it would
work over Bluetooth.

00:57:12.388 --> 00:57:12.930
AUDIENCE: OK.

00:57:15.570 --> 00:57:19.140
FILIP BABA: So I want everyone
to just get to this point,

00:57:19.140 --> 00:57:22.840
and then we'll move
on to the next part.

00:57:22.840 --> 00:57:24.930
And what's really cool
about this is we're

00:57:24.930 --> 00:57:28.260
already pretty much
just a few steps away

00:57:28.260 --> 00:57:30.240
from doing spatial audio.

00:57:30.240 --> 00:57:34.490
Now that we have the
head orientation,

00:57:34.490 --> 00:57:37.715
we can actually move our point
of reference for the listener.

00:57:55.643 --> 00:57:57.060
AUDIENCE: So when
you plug in USB,

00:57:57.060 --> 00:57:59.850
does it automatically
just detect it?

00:57:59.850 --> 00:58:01.890
FILIP BABA: It should
be plug and play, yeah.

00:58:01.890 --> 00:58:03.610
Does it work for you?

00:58:03.610 --> 00:58:05.490
AUDIENCE: It's not connecting.

00:58:05.490 --> 00:58:11.955
FILIP BABA: So make sure you
have the Wearable Control

00:58:11.955 --> 00:58:12.455
script.

00:58:15.280 --> 00:58:17.170
So you skipped this step.

00:58:17.170 --> 00:58:21.550
So you have to have the
Wearable Control script.

00:58:21.550 --> 00:58:23.320
So what you want
to do is you want

00:58:23.320 --> 00:58:26.200
to create an Empty Game Object.

00:58:26.200 --> 00:58:28.512
AUDIENCE: Oh yes, I do have it.

00:58:28.512 --> 00:58:29.970
FILIP BABA: Yeah,
wearable control.

00:58:29.970 --> 00:58:30.470
There it is.

00:58:37.540 --> 00:58:38.620
Click it.

00:58:38.620 --> 00:58:40.330
Oh, so event system--

00:58:40.330 --> 00:58:42.040
AUDIENCE: Yeah.

00:58:42.040 --> 00:58:42.760
FILIP BABA: Yeah.

00:58:42.760 --> 00:58:43.825
So On Press Play.

00:58:46.450 --> 00:58:48.130
Yeah, stop the app.

00:58:48.130 --> 00:58:50.800
And then Add Default
Input Modules.

00:58:50.800 --> 00:58:51.460
There you go.

00:58:51.460 --> 00:58:54.170
Now you can press Play.

00:58:54.170 --> 00:58:56.960
And you should be able to
click the UI at this time.

00:59:03.070 --> 00:59:04.680
So yeah, there it is.

00:59:04.680 --> 00:59:07.007
So let's then try to update.

00:59:07.007 --> 00:59:08.715
AUDIENCE: I mean, it
might be faster just

00:59:08.715 --> 00:59:10.313
to swap it with another--

00:59:10.313 --> 00:59:11.730
FILIP BABA: I think
it's something

00:59:11.730 --> 00:59:15.450
that we've also been
told to do, is people

00:59:15.450 --> 00:59:18.150
should know how to
update the firmware.

00:59:18.150 --> 00:59:24.030
So if for whatever reason
it's just not working,

00:59:24.030 --> 00:59:27.720
chances are sometimes that you
just need the latest update.

00:59:27.720 --> 00:59:30.030
So where you find
that is if you just

00:59:30.030 --> 00:59:34.880
look up Bose Updater,
if you just Google it,

00:59:34.880 --> 00:59:38.478
it's btu.bose.com.

00:59:38.478 --> 00:59:39.770
Just try to follow those steps.

00:59:39.770 --> 00:59:42.170
It's usually pretty fast.

00:59:42.170 --> 00:59:44.180
You just download
the little tool,

00:59:44.180 --> 00:59:45.830
and it's all through online.

00:59:45.830 --> 00:59:49.050
So you just have it hooked
up, and it'll pick it up.

00:59:49.050 --> 00:59:53.180
So if I try it on mine
here, it looks like this.

00:59:53.180 --> 00:59:54.845
I'm going to connect my frames.

00:59:58.580 --> 01:00:01.180
And see, it sees it.

01:00:01.180 --> 01:00:03.940
There's an update
ready for my product.

01:00:03.940 --> 01:00:07.360
And you just click Update Now,
and it'll do it in a minute.

01:00:07.360 --> 01:00:10.370
If yours is working, you
don't have to do that.

01:00:10.370 --> 01:00:13.660
But if for whatever
reason it doesn't, that's

01:00:13.660 --> 01:00:14.680
usually the problem.

01:00:14.680 --> 01:00:16.330
It has an old version
of the firmware.

01:00:19.912 --> 01:00:21.620
If you need to know
how to turn them off,

01:00:21.620 --> 01:00:23.548
you actually just
flip them upside down

01:00:23.548 --> 01:00:25.340
when you put them on
the table, and they'll

01:00:25.340 --> 01:00:26.548
turn off after a few seconds.

01:00:29.960 --> 01:00:30.460
Bless you.

01:00:45.890 --> 01:00:50.090
If you get the failed
connection, usually

01:00:50.090 --> 01:00:51.890
reconnecting the device works.

01:00:51.890 --> 01:00:53.840
It's just a USB debugger thing.

01:01:11.830 --> 01:01:16.240
So I'm actually playing the
sound through my Bose frames.

01:01:16.240 --> 01:01:18.970
So when you connect
over USB, you

01:01:18.970 --> 01:01:21.400
can actually drive the
audio also through you USB.

01:01:21.400 --> 01:01:25.660
Now on Mac, you'll see it pop
up in your sound settings.

01:01:25.660 --> 01:01:27.880
And on Windows, it's
in the bottom right

01:01:27.880 --> 01:01:30.800
in the sound devices.

01:01:30.800 --> 01:01:34.960
You can set the Bose frames
as your default audio device.

01:01:34.960 --> 01:01:37.360
So it's a great way
to preview it with.

01:01:37.360 --> 01:01:42.010
Now, what I did here is I
placed the sound on this sphere.

01:01:42.010 --> 01:01:45.670
Now, this sphere is just in
the middle of my field of view

01:01:45.670 --> 01:01:46.210
here.

01:01:46.210 --> 01:01:48.970
But in the next
exercise, I'm going

01:01:48.970 --> 01:01:51.310
to actually show you
how to spatialize

01:01:51.310 --> 01:01:54.150
that sound so you can hear it.

01:01:54.150 --> 01:01:56.550
So I'm just going
to wait to make sure

01:01:56.550 --> 01:01:58.247
that everyone's got this far.

01:01:58.247 --> 01:01:58.830
AUDIENCE: Yes.

01:01:58.830 --> 01:02:02.542
FILIP BABA: All right, so
what we're going to do here--

01:02:02.542 --> 01:02:04.125
there are a couple
of ways to do this.

01:02:12.560 --> 01:02:18.780
So typically your camera is your
frame of reference for audio.

01:02:18.780 --> 01:02:23.190
So as your camera turns, if you
have 3D sounds in the scene,

01:02:23.190 --> 01:02:25.610
it's going to take
the frame of reference

01:02:25.610 --> 01:02:29.840
from your camera to
spatialize sound.

01:02:29.840 --> 01:02:32.720
So what we want to
do here is I'm just

01:02:32.720 --> 01:02:35.930
going to actually
take the camera that's

01:02:35.930 --> 01:02:37.377
staring at the glasses.

01:02:37.377 --> 01:02:38.960
Now you don't have
to do it like this.

01:02:38.960 --> 01:02:40.050
There's a few different
ways to do it,

01:02:40.050 --> 01:02:42.270
but we'll just do it
for simplicity's sake.

01:02:42.270 --> 01:02:44.150
We'll take the main
camera, and we'll

01:02:44.150 --> 01:02:45.450
pull them into our frames.

01:02:45.450 --> 01:02:47.990
Now, the way I have
my scene set up

01:02:47.990 --> 01:02:53.450
is my frames are just at 0,
0, 0, and they're scale 40.

01:02:53.450 --> 01:02:57.810
And the camera is kind of like
right behind them like that.

01:02:57.810 --> 01:03:01.580
So I'm just going to take
the main camera and parent it

01:03:01.580 --> 01:03:06.740
to the frames so it's
inside the frames.

01:03:06.740 --> 01:03:09.500
And if I press Play, I'll just
show you what that looks like.

01:03:15.550 --> 01:03:19.650
So now if you're turning, this
is your frame of reference.

01:03:19.650 --> 01:03:24.230
So this simulates your
orientation in space,

01:03:24.230 --> 01:03:25.280
basically.

01:03:25.280 --> 01:03:25.820
Right?

01:03:25.820 --> 01:03:27.830
So here's how this
is going to work.

01:03:27.830 --> 01:03:31.380
So in Unity, doing spatial
audio is actually really,

01:03:31.380 --> 01:03:32.610
really straightforward.

01:03:32.610 --> 01:03:34.865
So what I want you to do
is-- and I already did this,

01:03:34.865 --> 01:03:37.557
so I'm just going to delete it
so I can show you how I did it.

01:03:37.557 --> 01:03:38.640
It's very straightforward.

01:03:38.640 --> 01:03:41.047
So it won't let me.

01:03:41.047 --> 01:03:41.880
What is it, command?

01:03:41.880 --> 01:03:43.140
There we go.

01:03:43.140 --> 01:03:45.710
So what we're going
to do is I'm just

01:03:45.710 --> 01:03:49.400
going to use a sphere to
represent a sound object just

01:03:49.400 --> 01:03:51.530
for visual sake.

01:03:51.530 --> 01:03:54.300
So I'm actually going to
create a New Game Object.

01:03:54.300 --> 01:03:57.070
So 3D Object, Sphere.

01:03:57.070 --> 01:03:59.318
And I'm going to
place it at 0, 0, 0.

01:04:02.010 --> 01:04:03.870
I'm going to Add
Component to this sphere,

01:04:03.870 --> 01:04:06.950
and I'm going to
add an Audio Source.

01:04:06.950 --> 01:04:07.640
OK?

01:04:07.640 --> 01:04:09.650
So that's a built
in Unity thing.

01:04:09.650 --> 01:04:12.800
Now I take this
sphere, and let's say

01:04:12.800 --> 01:04:15.470
this one I'm going to put
it in front of the glasses,

01:04:15.470 --> 01:04:17.550
like here.

01:04:17.550 --> 01:04:18.960
OK?

01:04:18.960 --> 01:04:21.450
Maybe a little bit further.

01:04:21.450 --> 01:04:26.320
And the audio source an audio
clip, if you click here,

01:04:26.320 --> 01:04:28.600
there are a few
different sound samples

01:04:28.600 --> 01:04:30.880
that we have in our SDK.

01:04:30.880 --> 01:04:34.350
You could pick Chord
LP or something.

01:04:34.350 --> 01:04:36.100
It's up to you which
one you want to pick.

01:04:36.100 --> 01:04:38.740
This is just for the demo.

01:04:38.740 --> 01:04:40.870
So we're going to
pick a sound effect.

01:04:40.870 --> 01:04:42.790
We put it in front.

01:04:42.790 --> 01:04:46.600
And the only thing you've got
to change is make it loop.

01:04:46.600 --> 01:04:48.770
So there's a little
loop check mark here.

01:04:48.770 --> 01:04:52.210
So when it finishes, it'll
start from the beginning again.

01:04:52.210 --> 01:04:55.922
And then there's a dropdown
here called 3D Sound Settings.

01:04:55.922 --> 01:04:57.130
I don't know if you see that.

01:04:57.130 --> 01:04:58.458
We'll get to that in a second.

01:04:58.458 --> 01:05:00.500
But the only one we want
to change is right here.

01:05:00.500 --> 01:05:02.350
You see Spatial Blend?

01:05:02.350 --> 01:05:03.100
OK.

01:05:03.100 --> 01:05:06.430
So I'm actually going to drag
Spatial Blend from 2D to 3D.

01:05:06.430 --> 01:05:10.390
And that's all you need to do to
turn an audio source into a 3D

01:05:10.390 --> 01:05:11.350
audio source.

01:05:11.350 --> 01:05:13.930
Now you'll notice that
there are cool things here,

01:05:13.930 --> 01:05:16.082
like there's actually
the range of the sound

01:05:16.082 --> 01:05:17.290
that you can tweak and stuff.

01:05:17.290 --> 01:05:20.180
So we don't have to do
any of that just yet.

01:05:20.180 --> 01:05:21.610
We can just leave it as is.

01:05:21.610 --> 01:05:24.940
Just make sure it's 3D and
that you have a looping sound

01:05:24.940 --> 01:05:25.480
effect.

01:05:25.480 --> 01:05:27.310
And that's all I want
you to do right now.

01:05:27.310 --> 01:05:35.610
So now if you press Play
and you let it connect--

01:05:35.610 --> 01:05:36.990
mine has failed connecting.

01:05:36.990 --> 01:05:38.490
If that ever happens
to you-- again,

01:05:38.490 --> 01:05:41.340
it's just a known bug
that we have with USB--

01:05:41.340 --> 01:05:43.230
just reconnect.

01:05:43.230 --> 01:05:46.350
Make sure you're always
saving your scene

01:05:46.350 --> 01:05:48.090
so no crashing happens.

01:05:48.090 --> 01:05:50.580
Unity tends to do
that sometimes--

01:05:50.580 --> 01:05:53.880
rarely, but usually it doesn't.

01:05:53.880 --> 01:05:55.890
So yeah, if you get the
failed connecting thing,

01:05:55.890 --> 01:05:59.840
just reconnect and
then try again.

01:05:59.840 --> 01:06:02.890
So it did it again, so
I'm going to unpress play.

01:06:02.890 --> 01:06:03.940
I'm going to reconnect.

01:06:06.990 --> 01:06:09.330
It's something to do
with that it remembers

01:06:09.330 --> 01:06:13.140
the previous device, and there's
a little bug with USB in that.

01:06:15.710 --> 01:06:17.120
And connected.

01:06:23.330 --> 01:06:31.620
So when I turn my head,
I can hear that sphere

01:06:31.620 --> 01:06:34.710
in front of me.

01:06:34.710 --> 01:06:38.580
And when I turn this
way, I hear it here.

01:06:38.580 --> 01:06:41.380
Now I hear it on the left.

01:06:41.380 --> 01:06:45.840
So in order to get that, make
sure you're driving your audio

01:06:45.840 --> 01:06:47.730
through the Bose frames.

01:06:47.730 --> 01:06:50.760
On Mac, you go into the
sound settings here.

01:06:50.760 --> 01:06:52.890
And on Windows, I
can also show you--

01:06:52.890 --> 01:06:56.520
in the bottom right where
the volume mixer is.

01:06:56.520 --> 01:06:59.940
If it's saying
connecting to Pixel 2,

01:06:59.940 --> 01:07:03.510
go into the Bose Connect
app and to the settings,

01:07:03.510 --> 01:07:06.750
and you can actually
remove any previous device

01:07:06.750 --> 01:07:10.180
that was there so it doesn't
always do that auto thing.

01:07:10.180 --> 01:07:13.673
So there is a little
bit of a Doppler effect.

01:07:13.673 --> 01:07:15.840
I don't know if you can
tell when you're doing that.

01:07:15.840 --> 01:07:16.410
Right?

01:07:16.410 --> 01:07:19.750
So these are all things you
can actually change here

01:07:19.750 --> 01:07:21.400
in the 3D sound settings.

01:07:21.400 --> 01:07:24.720
So I think if you just
turn off the Doppler,

01:07:24.720 --> 01:07:27.860
it won't do that, I think.

01:07:27.860 --> 01:07:30.410
So yeah, if you just go
into 3D sound settings

01:07:30.410 --> 01:07:32.390
and you turn off
the Doppler, you

01:07:32.390 --> 01:07:37.490
won't get that warp effect
when your head turns.

01:07:37.490 --> 01:07:41.210
That is an interesting effect
that can be played with.

01:07:41.210 --> 01:07:45.718
But again, this is just the
built-in Unity spatial audio.

01:07:45.718 --> 01:07:47.510
We actually have a
couple of different ways

01:07:47.510 --> 01:07:50.150
you can do spatial audio.

01:07:50.150 --> 01:07:55.820
So we've gotten to the
point where you've set up

01:07:55.820 --> 01:07:58.340
your device, you've gotten
a little bit of an intro,

01:07:58.340 --> 01:08:00.140
you've seen what the
platform is about.

01:08:00.140 --> 01:08:05.550
And this is basically a first
example of spatializing audio.

01:08:05.550 --> 01:08:06.050
Right?

01:08:06.050 --> 01:08:09.920
So now as an exercise what I'd
like you to do for the next 30

01:08:09.920 --> 01:08:13.640
minutes or so-- or
let's say 20 minutes--

01:08:13.640 --> 01:08:15.860
go online, find
some sound samples,

01:08:15.860 --> 01:08:20.939
set up your own little
spatial soundscape around you.

01:08:20.939 --> 01:08:22.982
And let's see how that goes.

01:08:22.982 --> 01:08:24.149
AUDIENCE: So just loop them?

01:08:24.149 --> 01:08:25.660
FILIP BABA: Yeah,
make something cool.

01:08:25.660 --> 01:08:27.160
You can get some
beach sounds, maybe

01:08:27.160 --> 01:08:30.060
water crashing on the
side, birds chirping.

01:08:30.060 --> 01:08:31.410
Or it could be music samples.

01:08:31.410 --> 01:08:33.540
Maybe you get a drum loop.

01:08:33.540 --> 01:08:36.840
I could show you a few.

01:08:36.840 --> 01:08:40.090
freesound.org is cool.

01:08:40.090 --> 01:08:42.220
I believe it's freesound.org.

01:08:42.220 --> 01:08:43.128
Yeah.

01:08:43.128 --> 01:08:44.920
You need to make an
account, but it's free,

01:08:44.920 --> 01:08:48.490
and it's all free sounds.

01:08:48.490 --> 01:08:52.450
There are also a decent
amount of websites

01:08:52.450 --> 01:08:56.420
that offer loops if you're going
for a more musical approach.

01:08:56.420 --> 01:08:57.670
So yeah, go ahead and do that.

01:08:57.670 --> 01:08:59.420
And let me know if you
have any questions.

01:08:59.420 --> 01:09:02.610
I'll be going around
and helping you out.