WEBVTT

00:00.000 --> 00:13.600
OK, so this is another VR talk, but involving Power View and Gadot. And firstly, I'm going

00:13.600 --> 00:21.880
to explain what Power View is. It's a visualizer used in engineering, often for, it's quite

00:21.880 --> 00:27.840
dim. It's often used for doing streamlines in wind tunnels, used to be the software

00:27.840 --> 00:33.520
which came from used to be doing MRI scans, but basically, whenever you have a 3D field

00:33.520 --> 00:37.560
in space and you need to sort of visualize it, you can trace lines through it, you could

00:37.560 --> 00:41.280
do slices through it, you can do marching cubes algorithms through it, and it's been around

00:41.280 --> 00:46.240
since about the 1990s. And the process that we need to do for doing this sort of streamlines

00:46.240 --> 00:51.240
that you do on different models is you do firstly do a big calculation of where all the

00:51.240 --> 00:56.520
air goes, that's usually offline it takes hours, might use a super computer. And then once

00:56.520 --> 01:02.400
you have that data, which is a direction of the air at every cubic millimeter of the

01:02.400 --> 01:06.960
space, you can then run a Power View, which is a much smaller program, which can trace

01:06.960 --> 01:11.800
the lines through it. But it's still too big to run on one of these little headsets, it has

01:11.800 --> 01:17.400
to run on my laptop. So, and that's an example of what wind tunnels used to be, where

01:17.400 --> 01:22.440
you just had a guy in the wind holding a bit of smoke, and that's sort of what the computer

01:22.440 --> 01:27.080
is simulates, although the whole air flow is already simulated, and we just simulate

01:27.080 --> 01:34.200
the smoke through it. And then the workflow which we're going to have is starting with a

01:34.200 --> 01:38.200
model, and I happen to have a friend who builds hand gliders, who does engineering, so

01:38.200 --> 01:42.040
this is kind of handy, is we're going to start with this free CAD model, we then put it into

01:42.040 --> 01:47.440
open phone, which is the big simulation, meshing, massive amount of calculation, then we bring

01:47.520 --> 01:52.240
that into Power View, and then the thing we're doing new is to put CAD out the front end

01:52.240 --> 01:56.480
to do the VR, because CAD out is really good at VR these days, there's another view of the

01:56.480 --> 02:00.880
Power View interface, so this is what most people are using there, pictures here, this is all used,

02:00.880 --> 02:05.280
if you go into a Formula One place, they'll be using this program here, even though it's open

02:05.280 --> 02:10.000
source, they've all got used to it, engineering software generally is pretty ugly looking,

02:10.000 --> 02:15.840
really, but anyway, the next bit is trying to explain what the game's engine is, so a game's

02:15.840 --> 02:21.040
engine, I usually describe it as being just a whole box of different tools, so this is one

02:21.040 --> 02:27.600
off the back of my house, you've just got GPU shaders, user interfaces, you have XR interface,

02:27.600 --> 02:32.640
audio, various different networking things, but they're all different components, and some

02:32.640 --> 02:37.840
of them work well, some don't work so well, but it all goes together, and it's only by

02:37.840 --> 02:43.280
experience that you know which ones you need and putting it together, so then the question is

02:43.280 --> 02:50.240
what's good though, the game's then you've been waiting for, I guess, and it's also free, it's

02:50.240 --> 02:56.560
extremely small, and I've been working on it for about four years, and it's also criticized as

02:56.560 --> 03:03.200
just being a cult, but the point is that you know, I mean everyone you talk to, they're all using

03:03.200 --> 03:06.560
proper, why aren't you using something proper, because the thing is if we're, if we're

03:06.560 --> 03:10.720
open source software developers, we're always working on a crap, that's how it gets good,

03:10.720 --> 03:14.240
because we have to work on it when it's rubbish, like like a cleaning lady, they're always

03:14.240 --> 03:19.280
working on dirty rooms, so you know, even though they make things clean, so the next bit is what's

03:19.280 --> 03:24.480
VR, so I go through my usual talk on what VR is, which is we're trying to go through the

03:24.480 --> 03:28.880
different human computer interfaces we're used to, so we've got one of these, which is being

03:28.880 --> 03:36.880
pretty dominance in 1980, one mouse, two dimensions, and then the next interfaces, we've got this,

03:36.960 --> 03:43.280
we're all pretty much used to doing these, can't live without them now, and then finally we got

03:44.320 --> 03:50.400
the VR, which sort of came in about 2015 roughly, and this is now arguing, this is a completely

03:50.400 --> 03:55.760
different interface from any of the others, it's nothing like them, and the invention, you know,

03:55.760 --> 03:59.840
you can show all the history, but the invention basically was, the moment you got GPUs that could

03:59.840 --> 04:06.560
do, 90 frames a second for two eyes, you got VR, because before then if you did any sort of

04:06.560 --> 04:11.920
frame rate and you moved your head, it would leave the image behind and you get sick, so it was

04:11.920 --> 04:18.800
it was a pretty much a technological thing, and then the really interesting one was then after

04:18.800 --> 04:23.680
after that was about 2019 was the completely mobile ones, which this one is, it's about the

04:23.680 --> 04:29.360
sides of a phone, people still complain about it, but it's pretty good, and it measures the position

04:29.360 --> 04:34.400
of where it is in space by using these little cameras, which watched the ceiling, and they

04:34.480 --> 04:38.880
somehow managed to update from the picture to get the millimeter position of where your head is,

04:38.880 --> 04:43.600
and render the image in under two milliseconds, if it couldn't do that, the images would just be

04:45.040 --> 04:50.560
floating around everywhere on you, and then also on top of that, this is often under

04:50.560 --> 04:56.400
a recognized, are these two devices here, these measure the position in space and rotation,

04:56.400 --> 05:01.120
so that's six degrees of freedom, and you have two of them, so compared to a two-dimension

05:01.120 --> 05:06.800
mouse, we have to be able to make some use of this in terms of engineering and human interface,

05:06.800 --> 05:13.120
and if we don't, we're not trying hard enough, and then of course now all the companies are now

05:13.120 --> 05:17.840
making loads of these ones, I haven't even got half of them here, but the thing about VR is there's no

05:17.840 --> 05:25.280
killer application yet, sort of my definition of a killer application is it's an application,

05:25.280 --> 05:30.720
so useful people who don't like the technology have to use it, right? So it's like people

05:30.720 --> 05:34.880
didn't, you know, accountants didn't want to use computers, but they had to use had to buy

05:34.880 --> 05:40.400
an Apple to have a busy account, so that's kind of where we are, but there isn't an application yet,

05:41.040 --> 05:45.760
also if you go back through the power of use software, which is, you know, been going a long time,

05:45.760 --> 05:52.800
they've got VR, they've started like day one, not 2016, and then you can keep through their

05:52.800 --> 05:58.720
blogs there, every so often they have another guy at it, and then most recently was blog is 2022,

05:58.800 --> 06:03.280
where they're showing, they're putting it on to the HoloLens too, which is now de-funked,

06:03.280 --> 06:07.440
so that's another problem, is that you can easily connect to the wrong piece of hardware,

06:07.440 --> 06:12.800
and also my argument that they're never going to be able to do it very well, because the VR is always

06:12.800 --> 06:18.240
going to be like a little side project to them, whereas it's really a really big specification now,

06:18.240 --> 06:26.240
and it's a specialized thing, so we now have an open-out, XR standard, 300 pages, it's handling hands,

06:26.320 --> 06:31.680
voice, faces, eye tracking, it goes on, and if you're just sort of doing it as a side project,

06:31.680 --> 06:36.560
you'll just do little pieces, and it won't actually make the full use of it.

06:38.080 --> 06:45.120
The Kadoa part of VR has been going since, I don't know, is this guy since about 2021,

06:45.120 --> 06:51.120
he finally got hired, so the Kadoa VR started showing up in about 2018 by this one guy Bastion,

06:51.200 --> 06:57.120
so if you ever do it, he's the king of it, and he was so good that they managed to get some

06:57.120 --> 07:02.080
money to hire him in as a core team, and so he's one of the six people, and he's well into it,

07:02.080 --> 07:06.640
but that's sort of what how VR works is, there's guys like me who just really like using the

07:06.640 --> 07:12.080
technology and we're desperate to find some use for it, versus most people who find it pretty useless,

07:13.040 --> 07:19.600
and yeah, it's been going on quite nice, quite pretty graphics these too, so we're going to do

07:19.600 --> 07:26.720
quick simulation run through of what the whole project is, is you start out with the glider,

07:26.720 --> 07:33.360
it's mesh, there's all in free cans, that's where it's been designed, and you define a,

07:34.080 --> 07:39.280
what do we call, a domain, the fluid domain, so this is the box which is going to contain the

07:39.280 --> 07:43.600
air that we're going to simulate, it goes, it's usually about three meters in front and goes off

07:43.600 --> 07:47.440
for five meters behind to really pick up all the turbulence that's going to trail off the wing,

07:47.920 --> 07:54.960
then you define all the boundary conditions of it, so there's an inlet front and then the outlet,

07:54.960 --> 08:00.560
so the air is going solid, solid constant rates in the outlet, and then the other sides,

08:00.560 --> 08:04.960
everything's running parallel, and then we have this sort of reflection plane because the calculation

08:04.960 --> 08:10.640
is going to take three hours, so if we can just avoid making the mirror image of it, we can cut that

08:10.640 --> 08:15.440
from six hours down to three hours and also not blast all the ram on our computer, so that's another

08:15.440 --> 08:23.680
kind of trick they use. During the simulation, this is what's known as a solid steady state simulation,

08:23.680 --> 08:29.280
so just keep iterating, time after time is simulating air flow until all becomes stationary,

08:29.280 --> 08:34.880
or stable, and all the same, each cube has the same amount of air going in as coming out,

08:34.880 --> 08:39.840
and the sort of graph showing after each calculation iteration, whether that's going down,

08:39.920 --> 08:45.760
usually, often sometimes you get these ones that are unstable, and the simulation blows up,

08:45.760 --> 08:50.400
so you have to just train things a little bit, and then they might converge, but that's usually

08:50.400 --> 08:56.080
the problem they're hitting. Now, when you're done with the simulation, you get this,

08:57.440 --> 09:03.280
what's it? It's sort of a hierarchical cell, so the volumes are all divided up, and they get

09:03.280 --> 09:08.720
really tiny right close to the edges, where the actual fluid's going to be flowing in different

09:08.720 --> 09:13.760
ways, and they get quite large further away. If you had at the same scale all the way through,

09:13.760 --> 09:19.120
you would never have enough memory for running it, but so there's sort of different layers of

09:19.120 --> 09:25.040
depth in all and 3D is what's essential for it to work, so here's where we'll show a little bit of

09:25.040 --> 09:34.080
video of what went on inside, so this is filmed from the PC, so normally if you watch a VR film,

09:34.080 --> 09:37.760
you'll see that they're all waving around, so at least this is stationary, so that's the other

09:37.760 --> 09:42.320
guy who's networked to my laptop, and if you look down here, you can start to see the sort of

09:42.320 --> 09:49.120
the vortex of the wind as it's coming off the air, it flows down in the middle, and then flows

09:49.120 --> 09:54.720
up on the side, and that sort of gives the glider some lift, and once I've got it transmitted

09:54.720 --> 10:01.680
into this go-games engine, I'm able to do all kinds of operations on it like a flatnet,

10:01.680 --> 10:06.400
well, it's subtracted off the velocity, so you can see the graph, see the drag,

10:06.400 --> 10:11.440
the this is what I'm also quite pleased of, these are the two designers here, neither of them

10:11.440 --> 10:16.080
care about VR particularly really, so the fact that they were here for 20 minutes, having

10:16.080 --> 10:22.560
look around it was like a sign of having a bit of a killer app, I think, so that was kind of nice,

10:22.560 --> 10:27.760
so they probably I think believe they're facing each other, but they're kind of like

10:27.760 --> 10:32.000
displored this place because I'm not really designed this to work in the same room, and then he

10:32.000 --> 10:39.040
almost goes and treads on something, so anyway, so what did we just see, so let's just have a little

10:39.040 --> 10:47.440
look at those, I'm free to do a demo over in the over over room over in J later on, if anyone's

10:47.440 --> 10:50.880
wants to have a go, that's what they were building in the real life, one of these things,

10:51.680 --> 10:57.680
so what we saw was, could though mobile, so it's running in this, so all this needs to do is

10:57.680 --> 11:01.680
it can do all the graphics really well, it can't do the simulation, so what we do is we just

11:01.680 --> 11:06.720
pick a point, send it off to the PC, and return back a streamlined, and that's all we really need to

11:06.720 --> 11:13.520
do, and then the other bit was the animating GPU shaders that was quite surprisingly useful,

11:13.520 --> 11:18.800
just a little tweaks that add the the swing actually has a lot of engineering relevance that I

11:18.800 --> 11:25.360
hadn't been aware of, the the Gado system has GPU shaders that are humane, one could say,

11:25.440 --> 11:29.600
they're easy, easy for normal people to edit them because they've been simplified down or

11:29.600 --> 11:35.840
dumb down or something, and then you can put in little experiments, and then finally, I've put

11:35.840 --> 11:42.080
in a networking onto this, onto this game, so the networking is something I've claimed is really,

11:42.080 --> 11:47.920
really important in any engineering VR, because what happens is you normally want to show it to

11:47.920 --> 11:52.560
someone who's an engineer who doesn't know how to drive VR, and if you normally put headset on them,

11:53.200 --> 11:57.120
you spend the entire time teaching the controls and stuff, and really what you want to do is

11:57.120 --> 12:02.240
show them around, which is why you need a second player in the game, and that's been quite a

12:02.240 --> 12:06.560
fight quite a while, because normally these these multiplayer things only happen in very large

12:06.560 --> 12:12.400
systems like the one you just saw over at an VR chat or the very few ones that do it, and I've

12:12.400 --> 12:20.000
managed to gradually build it into Gado, and that's about it, so you have another Gado talk later on

12:20.080 --> 12:26.880
about three hours or two hours, and also the VR over in J-Building is also available, if you

12:26.880 --> 12:30.880
haven't had enough VR, yes, so that's it.

