Hi. This is Sylvia Pan. I've been working with Marco on this VR specialization. You might have seen me in other courses, but today, I'm here to interview, Lance. Hi, Lance. Would you like to introduce yourself to our learners, please? Sure. I'm Lance Putnam. I'm a research associate here at Goldsmiths in computing department, and also I was part of the digital creativity labs. You have been doing lots of development with OpenVR, would you like to tell us a bit more about what OpenVR is? Sure. OpenVR is a software development kit. So, it's written in C++ and it gives you low-level access to some of the VR headsets that are currently out right now including the HTC Vive and Oculus Rift. It basically gives you some of the most important things you would need from the headsets. So like their positions, and for the controllers of positions and the data from all the hardware. So, why did you choose OpenVR as your development platform? Well, the reason I chose it is because it's, I guess, you could call it a primary source in a way. So it gives you direct access to the hardware, and it's the interface that's provided by Valve. So the reason I'm using it is because it basically gives me all the control I would need over the hardware. So if when I'm developing a software, something comes up and I need some information about the headset or the controllers, I'm more guaranteed I'm going to get that information by using a lower level interface like that. So what were the best part of developing in OpenVR for you? So OpenVR was good because I could easily integrate it into the software I had already. Okay. So I'm writing a lot of custom code and it was easy to integrate it in because it's also on a lower level, so I could just take the parts I needed and use those specifically for a task at hand. So for you, it's a continuation of being able to reuse the function you have already developed? Yes, that's correct. In most of the programming, I'm doing is directly in C++. So it was a natural fit for my workflow. And if you use a different development platform, do you think it will be more problematic being able to use those code you have written already? It might be. I have approached problems in different ways in the past, and in the end, I found it was easier to just figure out what the problem is you need to solve and then write the code to solve the problem directly and it lets me do that very easily. I see. So what do you think is the biggest challenge or problem you have come across so far? Probably, the biggest challenge is just, usually when you are starting to use one of these libraries, it's generally what you do is you write in your own interface to it because there's too many details exposed. So initially using it, I had to write some additional abstraction layers on top of it to make it easier for myself to use it. So you have to customize it yourself? Yes. So that's what I said earlier, I'm writing a lot of this custom code, so I actually wrote my own higher level version of OpenVR that I can use in my own work. Can you give us an example of what function you have written? Yes. So I guess just in terms of in a program flow, I just have to write a few lines of code and then I can render things to the headset. Whereas, if I use OpenVR directly, there are a lot of details I have to take care of, every time I want to use it. So I've encapsulated a lot of that. The common things you have to do all the time, I've put in one spot and then I don't have to keep writing that over and over again. What kind of projects and developers do you think are best suited for OpenVR? It's a very good question. I think, the kind of developer who just needs a little bit more control over the software they're developing. For example, we're doing art installations, VR art installations, and we have to make sure that the software is going to run without interruption for, could be over several months. And so we can't have the software changing on its own or any updates that are out of our hand, so I think it's well-suited for that kind of scenario. But I think also people that are just C++ programmers, that's the way they're used to writing their software, just writing directly from the source code, I think it's a good fit for that kind of workflow as well. So what would you advise be for someone who want to get started with OpenVR, where should they start? Well, my advice would be to just download OpenVR and try out some of the examples, and look through the code to see how they're setting things up and communicating with the hardware. Okay. Thank you very much, Lance. Very helpful. You're welcome.