Torsten Reil: Using biology to make better animation

33,133 views ・ 2008-07-08

TED


Please double-click on the English subtitles below to play the video.

00:15
I'm going to talk about a technology that we're developing at Oxford now,
0
15160
4000
00:19
that we think is going to change the way that
1
19160
3000
00:22
computer games and Hollywood movies are being made.
2
22160
3000
00:26
That technology is simulating humans.
3
26160
3000
00:29
It's simulated humans with a simulated body
4
29160
3000
00:32
and a simulated nervous system to control that body.
5
32160
3000
00:36
Now, before I talk more about that technology,
6
36160
3000
00:39
let's have a quick look at what human characters look like
7
39160
3000
00:42
at the moment in computer games.
8
42160
3000
00:45
This is a clip from a game called "Grand Theft Auto 3."
9
45160
3000
00:48
We already saw that briefly yesterday.
10
48160
2000
00:50
And what you can see is -- it is actually a very good game.
11
50160
3000
00:53
It's one of the most successful games of all time.
12
53160
3000
00:56
But what you'll see is that all the animations in this game are very repetitive.
13
56160
4000
01:00
They pretty much look the same.
14
60160
2000
01:02
I've made him run into a wall here, over and over again.
15
62160
3000
01:05
And you can see he looks always the same.
16
65160
2000
01:07
The reason for that is that these characters
17
67160
3000
01:10
are actually not real characters.
18
70160
2000
01:12
They are a graphical visualization of a character.
19
72160
4000
01:16
To produce these animations, an animator at a studio has to anticipate
20
76160
5000
01:21
what's going to happen in the actual game,
21
81160
3000
01:24
and then has to animate that particular sequence.
22
84160
3000
01:27
So, he or she sits down, animates it, and tries to anticipate what's going to happen,
23
87160
4000
01:31
and then these particular animations are just played back
24
91160
3000
01:34
at appropriate times in the computer game.
25
94160
3000
01:37
Now, the result of that is that you can't have real interactivity.
26
97160
5000
01:42
All you have is animations that are played back
27
102160
3000
01:45
at more or less the appropriate times.
28
105160
2000
01:47
It also means that games aren't really going to be as surprising as they could be,
29
107160
5000
01:52
because you only get out of it, at least in terms of the character,
30
112160
3000
01:55
what you actually put into it.
31
115160
2000
01:57
There's no real emergence there.
32
117160
2000
01:59
And thirdly, as I said, most of the animations are very repetitive because of that.
33
119160
4000
02:03
Now, the only way to get around that
34
123160
2000
02:05
is to actually simulate the human body
35
125160
2000
02:07
and to simulate that bit of the nervous system of the brain that controls that body.
36
127160
5000
02:12
And maybe, if I could have you for a quick demonstration
37
132160
3000
02:15
to show what the difference is --
38
135160
2000
02:17
because, I mean, it's very, very trivial.
39
137160
4000
02:21
If I push Chris a bit, like this, for example, he'll react to it.
40
141160
3000
02:24
If I push him from a different angle, he'll react to it differently,
41
144160
3000
02:27
and that's because he has a physical body,
42
147160
2000
02:29
and because he has the motor skills to control that body.
43
149160
3000
02:32
It's a very trivial thing.
44
152160
2000
02:34
It's not something you get in computer games at the moment, at all.
45
154160
2000
02:36
Thank you very much. Chris Anderson: That's it?
46
156160
2000
02:38
Torsten Reil: That's it, yes.
47
158160
2000
02:40
So, that's what we're trying to simulate --
48
160160
1000
02:41
not Chris specifically, I should say, but humans in general.
49
161160
4000
02:46
Now, we started working on this a while ago at Oxford University,
50
166160
5000
02:51
and we tried to start very simply.
51
171160
2000
02:53
What we tried to do was teach a stick figure how to walk.
52
173160
3000
02:56
That stick figure is physically stimulated. You can see it here on the screen.
53
176160
3000
02:59
So, it's subject to gravity, has joints, etc.
54
179160
3000
03:02
If you just run the simulation, it will just collapse, like this.
55
182160
3000
03:05
The tricky bit is now to put an AI controller in it
56
185160
4000
03:09
that actually makes it work.
57
189160
2000
03:11
And for that, we use the neural network, which we based on
58
191160
3000
03:14
that part of the nervous system that we have in our spine
59
194160
2000
03:16
that controls walking in humans.
60
196160
2000
03:18
It's called the central pattern generator.
61
198160
2000
03:20
So, we simulated that as well, and then the really tricky bit
62
200160
3000
03:23
is to teach that network how to walk.
63
203160
2000
03:25
For that we used artificial evolution -- genetic algorithms.
64
205160
4000
03:29
We heard about those already yesterday,
65
209160
2000
03:31
and I suppose that most of you are familiar with that already.
66
211160
3000
03:34
But, just briefly, the concept is that
67
214160
2000
03:36
you create a large number of different individuals --
68
216160
3000
03:39
neural networks, in this case --
69
219160
2000
03:41
all of which are random at the beginning.
70
221160
2000
03:43
You hook these up -- in this case, to the virtual muscles
71
223160
2000
03:45
of that two-legged creature here --
72
225160
3000
03:48
and hope that it does something interesting.
73
228160
3000
03:51
At the beginning, they're all going to be very boring.
74
231160
2000
03:53
Most of them won't move at all,
75
233160
2000
03:55
but some of them might make a tiny step.
76
235160
2000
03:57
Those are then selected by the algorithm,
77
237160
2000
03:59
reproduced with mutation and recombinations to introduce sex as well.
78
239160
4000
04:03
And you repeat that process over and over again,
79
243160
2000
04:05
until you have something that walks --
80
245160
2000
04:07
in this case, in a straight line, like this.
81
247160
2000
04:09
So that was the idea behind this.
82
249160
2000
04:11
When we started this, I set up the simulation one evening.
83
251160
3000
04:14
It took about three to four hours to run the simulation.
84
254160
3000
04:17
I got up the next morning, went to the computer and looked at the results,
85
257160
4000
04:21
and was hoping for something that walked in a straight line,
86
261160
3000
04:24
like I've just demonstrated,
87
264160
2000
04:26
and this is what I got instead.
88
266160
2000
04:28
(Laughter)
89
268160
10000
04:38
So, it was back to the drawing board for us.
90
278160
3000
04:42
We did get it to work eventually,
91
282160
3000
04:45
after tweaking a bit here and there.
92
285160
2000
04:47
And this is an example of a successful evolutionary run.
93
287160
3000
04:50
So, what you'll see in a moment is a very simple biped
94
290160
3000
04:53
that's learning how to walk using artificial evolution.
95
293160
3000
04:56
At the beginning, it can't walk at all,
96
296160
2000
04:58
but it will get better and better over time.
97
298160
2000
05:02
So, this is the one that can't walk at all.
98
302160
3000
05:05
(Laughter)
99
305160
6000
05:11
Now, after five generations of applying evolutionary process,
100
311160
3000
05:14
the genetic algorithm is getting a tiny bit better.
101
314160
3000
05:17
(Laughter)
102
317160
8000
05:25
Generation 10 and it'll take a few steps more --
103
325160
2000
05:31
still not quite there.
104
331160
2000
05:34
But now, after generation 20, it actually walks in a straight line without falling over.
105
334160
5000
05:40
That was the real breakthrough for us.
106
340160
3000
05:43
It was, academically, quite a challenging project,
107
343160
3000
05:46
and once we had reached that stage, we were quite confident
108
346160
3000
05:49
that we could try and do other things as well with this approach --
109
349160
3000
05:52
actually simulating the body
110
352160
2000
05:54
and simulating that part of the nervous system that controls it.
111
354160
3000
05:57
Now, at this stage, it also became clear that this could be very exciting
112
357160
3000
06:00
for things like computer games or online worlds.
113
360160
3000
06:03
What you see here is the character standing there,
114
363160
2000
06:05
and there's an obstacle that we put in its way.
115
365160
2000
06:07
And what you see is, it's going to fall over the obstacle.
116
367160
5000
06:12
Now, the interesting bit is, if I move the obstacle a tiny bit to the right,
117
372160
3000
06:15
which is what I'm doing now, here,
118
375160
2000
06:17
it will fall over it in a completely different way.
119
377160
4000
06:24
And again, if you move the obstacle a tiny bit, it'll again fall differently.
120
384160
5000
06:29
(Laughter)
121
389160
2000
06:31
Now, what you see, by the way, at the top there,
122
391160
2000
06:33
are some of the neural activations being fed into the virtual muscles.
123
393160
3000
06:36
Okay. That's the video. Thanks.
124
396160
2000
06:38
Now, this might look kind of trivial, but it's actually very important
125
398160
3000
06:41
because this is not something you get at the moment
126
401160
2000
06:43
in any interactive or any virtual worlds.
127
403160
2000
06:48
Now, at this stage, we decided to start a company and move this further,
128
408160
3000
06:51
because obviously this was just a very simple, blocky biped.
129
411160
3000
06:54
What we really wanted was a full human body.
130
414160
2000
06:56
So we started the company.
131
416160
1000
06:57
We hired a team of physicists, software engineers and biologists
132
417160
5000
07:02
to work on this, and the first thing we had to work on
133
422160
3000
07:05
was to create the human body, basically.
134
425160
4000
07:09
It's got to be relatively fast, so you can run it on a normal machine,
135
429160
3000
07:12
but it's got to be accurate enough, so it looks good enough, basically.
136
432160
3000
07:15
So we put quite a bit of biomechanical knowledge into this thing,
137
435160
3000
07:18
and tried to make it as realistic as possible.
138
438160
4000
07:22
What you see here on the screen right now
139
442160
2000
07:24
is a very simple visualization of that body.
140
444160
2000
07:26
I should add that it's very simple to add things like hair, clothes, etc.,
141
446160
4000
07:30
but what we've done here is use a very simple visualization,
142
450160
3000
07:33
so you can concentrate on the movement.
143
453160
2000
07:35
Now, what I'm going to do right now, in a moment,
144
455160
3000
07:38
is just push this character a tiny bit and we'll see what happens.
145
458160
3000
07:46
Nothing really interesting, basically.
146
466160
2000
07:48
It falls over, but it falls over like a rag doll, basically.
147
468160
3000
07:51
The reason for that is that there's no intelligence in it.
148
471160
3000
07:54
It becomes interesting when you put artificial intelligence into it.
149
474160
4000
07:58
So, this character now has motor skills in the upper body --
150
478160
4000
08:02
nothing in the legs yet, in this particular one.
151
482160
2000
08:04
But what it will do -- I'm going to push it again.
152
484160
3000
08:07
It will realize autonomously that it's being pushed.
153
487160
2000
08:09
It's going to stick out its hands.
154
489160
2000
08:11
It's going to turn around into the fall, and try and catch the fall.
155
491160
3000
08:20
So that's what you see here.
156
500160
2000
08:22
Now, it gets really interesting
157
502160
2000
08:24
if you then add the AI for the lower part of the body as well.
158
504160
4000
08:28
So here, we've got the same character.
159
508160
2000
08:30
I'm going to push it a bit harder now,
160
510160
2000
08:32
harder than I just pushed Chris.
161
512160
2000
08:34
But what you'll see is -- it's going to receive a push now from the left.
162
514160
4000
08:41
What you see is it takes steps backwards,
163
521160
2000
08:43
it tries to counter-balance,
164
523160
2000
08:45
it tries to look at the place where it thinks it's going to land.
165
525160
4000
08:49
I'll show you this again.
166
529160
2000
08:51
And then, finally hits the floor.
167
531160
3000
08:55
Now, this becomes really exciting
168
535160
3000
08:58
when you push that character in different directions, again, just as I've done.
169
538160
5000
09:03
That's something that you cannot do right now.
170
543160
4000
09:07
At the moment, you only have empty computer graphics in games.
171
547160
3000
09:10
What this is now is a real simulation. That's what I want to show you now.
172
550160
3000
09:13
So, here's the same character with the same behavior I've just shown you,
173
553160
3000
09:16
but now I'm just going to push it from different directions.
174
556160
2000
09:18
First, starting with a push from the right.
175
558160
2000
09:23
This is all slow motion, by the way, so we can see what's going on.
176
563160
3000
09:26
Now, the angle will have changed a tiny bit,
177
566160
3000
09:29
so you can see that the reaction is different.
178
569160
4000
09:33
Again, a push, now this time from the front.
179
573160
3000
09:37
And you see it falls differently.
180
577160
2000
09:39
And now from the left --
181
579160
2000
09:43
and it falls differently.
182
583160
2000
09:45
That was really exciting for us to see that.
183
585160
2000
09:47
That was the first time we've seen that.
184
587160
2000
09:49
This is the first time the public sees this as well,
185
589160
2000
09:51
because we have been in stealth mode.
186
591160
2000
09:53
I haven't shown this to anybody yet.
187
593160
2000
09:55
Now, just a fun thing:
188
595160
2000
09:57
what happens if you put that character --
189
597160
2000
09:59
this is now a wooden version of it, but it's got the same AI in it --
190
599160
2000
10:01
but if you put that character on a slippery surface, like ice.
191
601160
2000
10:03
We just did that for a laugh, just to see what happens.
192
603160
3000
10:06
(Laughter)
193
606160
1000
10:07
And this is what happens.
194
607160
2000
10:09
(Laughter)
195
609160
3000
10:12
(Applause)
196
612160
3000
10:15
It's nothing we had to do about this.
197
615160
2000
10:17
We just took this character that I just talked about,
198
617160
2000
10:19
put it on a slippery surface, and this is what you get out of it.
199
619160
3000
10:22
And that's a really fascinating thing about this approach.
200
622160
3000
10:26
Now, when we went to film studios and games developers
201
626160
3000
10:29
and showed them that technology, we got a very good response.
202
629160
3000
10:32
And what they said was, the first thing they need immediately is virtual stuntmen.
203
632160
4000
10:36
Because stunts are obviously very dangerous, they're very expensive,
204
636160
4000
10:40
and there are a lot of stunt scenes that you cannot do, obviously,
205
640160
2000
10:42
because you can't really allow the stuntman to be seriously hurt.
206
642160
3000
10:45
So, they wanted to have a digital version of a stuntman
207
645160
3000
10:48
and that's what we've been working on for the past few months.
208
648160
2000
10:50
And that's our first product that we're going to release in a couple of weeks.
209
650160
5000
10:55
So, here are just a few very simple scenes of the guy just being kicked.
210
655160
5000
11:00
That's what people want. That's what we're giving them.
211
660160
2000
11:02
(Laughter)
212
662160
7000
11:09
You can see, it's always reacting.
213
669160
2000
11:11
This is not a dead body. This is a body who basically, in this particular case,
214
671160
4000
11:15
feels the force and tries to protect its head.
215
675160
2000
11:17
Only, I think it's quite a big blow again.
216
677160
2000
11:19
You feel kind of sorry for that thing,
217
679160
2000
11:21
and we've seen it so many times now that
218
681160
2000
11:23
we don't really care any more.
219
683160
2000
11:25
(Laughter)
220
685160
1000
11:26
There are much worse videos than this, by the way, which I have taken out, but ...
221
686160
4000
11:31
Now, here's another one.
222
691160
2000
11:33
What people wanted as a behavior was to have an explosion,
223
693160
4000
11:37
a strong force applied to the character,
224
697160
2000
11:39
and have the character react to it in midair.
225
699160
2000
11:41
So that you don't have a character that looks limp,
226
701160
2000
11:43
but actually a character that you can use in an action film straight away,
227
703160
3000
11:46
that looks kind of alive in midair as well.
228
706160
2000
11:48
So this character is going to be hit by a force,
229
708160
2000
11:50
it's going to realize it's in the air,
230
710160
2000
11:52
and it's going to try and, well,
231
712160
3000
11:55
stick out its arm in the direction where it's landing.
232
715160
2000
11:59
That's one angle; here's another angle.
233
719160
3000
12:02
We now think that the realism we're achieving with this
234
722160
2000
12:04
is good enough to be used in films.
235
724160
2000
12:06
And let's just have a look at a slightly different visualization.
236
726160
3000
12:09
This is something I just got last night
237
729160
2000
12:11
from an animation studio in London, who are using our software
238
731160
3000
12:14
and experimenting with it right now.
239
734160
2000
12:16
So this is exactly the same behavior that you saw,
240
736160
3000
12:19
but in a slightly better rendered version.
241
739160
4000
12:23
So if you look at the character carefully,
242
743160
3000
12:26
you see there are lots of body movements going on,
243
746160
2000
12:28
none of which you have to animate like in the old days.
244
748160
2000
12:30
Animators had to actually animate them.
245
750160
2000
12:32
This is all happening automatically in the simulation.
246
752160
2000
12:34
This is a slightly different angle,
247
754160
2000
12:39
and again a slow motion version of this.
248
759160
2000
12:41
This is incredibly quick. This is happening in real time.
249
761160
4000
12:45
You can run this simulation in real time, in front of your eyes,
250
765160
2000
12:47
change it, if you want to, and you get the animation straight out of it.
251
767160
3000
12:50
At the moment, doing something like this by hand
252
770160
2000
12:52
would take you probably a couple of days.
253
772160
2000
12:55
This is another behavior they requested.
254
775160
3000
12:58
I'm not quite sure why, but we've done it anyway.
255
778160
2000
13:00
It's a very simple behavior that shows you the power of this approach.
256
780160
2000
13:02
In this case, the character's hands
257
782160
2000
13:04
are fixed to a particular point in space,
258
784160
2000
13:06
and all we've told the character to do is to struggle.
259
786160
3000
13:09
And it looks organic. It looks realistic.
260
789160
3000
13:12
You feel kind of sorry for the guy.
261
792160
2000
13:14
It's even worse -- and that is another video I just got last night --
262
794160
3000
13:17
if you render that a bit more realistically.
263
797160
2000
13:23
Now, I'm showing this to you just to show you
264
803160
2000
13:25
how organic it actually can feel, how realistic it can look.
265
805160
2000
13:27
And this is all a physical simulation of the body,
266
807160
3000
13:30
using AI to drive virtual muscles in that body.
267
810160
3000
13:35
Now, one thing which we did for a laugh was
268
815160
3000
13:38
to create a slightly more complex stunt scene,
269
818160
2000
13:40
and one of the most famous stunts is the one where James Bond
270
820160
3000
13:43
jumps off a dam in Switzerland and then is caught by a bungee.
271
823160
4000
13:48
Got a very short clip here.
272
828160
2000
13:54
Yes, you can just about see it here.
273
834160
2000
13:56
In this case, they were using a real stunt man. It was a very dangerous stunt.
274
836160
3000
13:59
It was just voted, I think in the Sunday Times, as one of the most impressive stunts.
275
839160
3000
14:02
Now, we've just tried and -- looked at our character and asked ourselves,
276
842160
3000
14:05
"Can we do that ourselves as well?"
277
845160
2000
14:07
Can we use the physical simulation of the character,
278
847160
2000
14:09
use artificial intelligence,
279
849160
2000
14:11
put that artificial intelligence into the character,
280
851160
2000
14:13
drive virtual muscles, simulate the way he jumps off the dam,
281
853160
4000
14:17
and then skydive afterwards,
282
857160
2000
14:19
and have him caught by a bungee afterwards?
283
859160
2000
14:21
We did that. It took about altogether just two hours,
284
861160
3000
14:24
pretty much, to create the simulation.
285
864160
2000
14:26
And that's what it looks like, here.
286
866160
2000
14:37
Now, this could do with a bit more work. It's still very early stages,
287
877160
3000
14:40
and we pretty much just did this for a laugh,
288
880160
2000
14:42
just to see what we'd get out of it.
289
882160
2000
14:44
But what we found over the past few months
290
884160
2000
14:46
is that this approach -- that we're pretty much standard upon --
291
886160
3000
14:49
is incredibly powerful.
292
889160
2000
14:51
We are ourselves surprised what you actually get out of the simulations.
293
891160
4000
14:55
There's very often very surprising behavior that you didn't predict before.
294
895160
4000
14:59
There's so many things we can do with this right now.
295
899160
2000
15:01
The first thing, as I said, is going to be virtual stuntmen.
296
901160
3000
15:04
Several studios are using this software now to produce virtual stuntmen,
297
904160
4000
15:08
and they're going to hit the screen quite soon, actually,
298
908160
2000
15:10
for some major productions.
299
910160
2000
15:12
The second thing is video games.
300
912160
3000
15:15
With this technology, video games will look different and they will feel very different.
301
915160
4000
15:19
For the first time, you'll have actors that really feel very interactive,
302
919160
3000
15:22
that have real bodies that really react.
303
922160
2000
15:24
I think that's going to be incredibly exciting.
304
924160
3000
15:27
Probably starting with sports games,
305
927160
2000
15:29
which are going to become much more interactive.
306
929160
2000
15:31
But I particularly am really excited
307
931160
1000
15:32
about using this technology in online worlds,
308
932160
3000
15:35
like there, for example, that Tom Melcher has shown us.
309
935160
3000
15:38
The degree of interactivity you're going to get
310
938160
2000
15:40
is totally different, I think, from what you're getting right now.
311
940160
3000
15:44
A third thing we are looking at and very interested in is simulation.
312
944160
4000
15:49
We've been approached by several simulation companies,
313
949160
2000
15:51
but one project we're particularly excited about, which we're starting next month,
314
951160
3000
15:54
is to use our technology -- and in particular, the walking technology --
315
954160
4000
15:58
to help aid surgeons who work on children with cerebral palsy,
316
958160
4000
16:02
to predict the outcome of operations on these children.
317
962160
3000
16:05
As you probably know,
318
965160
2000
16:07
it's very difficult to predict what the outcome of an operation is
319
967160
3000
16:10
if you try and correct the gait.
320
970160
2000
16:12
The classic quote is, I think, it's unpredictable at best,
321
972160
3000
16:15
is what people think right now, is the outcome.
322
975160
3000
16:18
Now, what we want to do with our software is allow our surgeons to have a tool.
323
978160
4000
16:22
We're going to simulate the gait of a particular child
324
982160
3000
16:25
and the surgeon can then work on that simulation
325
985160
3000
16:28
and try out different ways to improve that gait,
326
988160
2000
16:30
before he actually commits to an actual surgery.
327
990160
3000
16:33
That's one project we're particularly excited about,
328
993160
2000
16:35
and that's going to start next month.
329
995160
2000
16:39
Just finally, this is only just the beginning.
330
999160
3000
16:42
We can only do several behaviors right now.
331
1002160
2000
16:44
The AI isn't good enough to simulate a full human body.
332
1004160
3000
16:47
The body yes, but not all the motor skills that we have.
333
1007160
3000
16:50
And, I think, we're only there if we can have something like ballet dancing.
334
1010160
3000
16:53
Right now, we don't have that
335
1013160
2000
16:55
but I'm very sure that we will be able to do that at some stage.
336
1015160
2000
16:57
We do have one unintentional dancer actually,
337
1017160
3000
17:00
the last thing I'm going to show you.
338
1020160
2000
17:02
This was an AI contour that was produced and evolved --
339
1022160
3000
17:05
half-evolved, I should say -- to produce balance, basically.
340
1025160
3000
17:08
So, you kick the guy and the guy's supposed to counter-balance.
341
1028160
3000
17:11
That's what we thought was going to come out of this.
342
1031160
3000
17:14
But this is what emerged out of it, in the end.
343
1034160
2000
17:17
(Music)
344
1037160
10000
17:27
Bizarrely, this thing doesn't have a head. I'm not quite sure why.
345
1047160
3000
17:31
So, this was not something we actually put in there.
346
1051160
2000
17:33
He just started to create that dance himself.
347
1053160
4000
17:37
He's actually a better dancer than I am, I have to say.
348
1057160
3000
17:41
And what you see after a while --
349
1061160
2000
17:43
I think he even goes into a climax right at the end.
350
1063160
2000
17:49
And I think -- there you go.
351
1069160
3000
17:52
(Laughter)
352
1072160
2000
17:54
So, that all happened automatically. We didn't put that in there.
353
1074160
2000
17:56
That's just the simulation creating this itself, basically.
354
1076160
3000
17:59
So it's just --
355
1079160
2000
18:01
(Applause)
356
1081160
1000
18:02
Thanks.
357
1082160
2000
18:05
Not quite John Travolta yet, but we're working on that as well,
358
1085160
3000
18:08
so thanks very much for your time.
359
1088160
2000
18:10
Thanks.
360
1090160
1000
18:11
(Applause)
361
1091160
1000
18:12
CA: Incredible. That was really incredible.
362
1092160
2000
18:14
TR: Thanks.
363
1094160
1000
About this website

This site will introduce you to YouTube videos that are useful for learning English. You will see English lessons taught by top-notch teachers from around the world. Double-click on the English subtitles displayed on each video page to play the video from there. The subtitles scroll in sync with the video playback. If you have any comments or requests, please contact us using this contact form.

https://forms.gle/WvT1wiN1qDtmnspy7