Interview with Nanome CTO Vincent Brunet About Blockchain and Virtual Reality
The marketing team at Nanome had a sit down with our CTO, Vincent Brunet, to discuss his experience developing not only in virtual reality, but also on the blockchain. In this expansive interview, we get a peak inside the tech behind Nanome and Matryx, as well as some general development perspectives. Thanks to Vincent for taking the time out of his busy schedule! For more on Vincent’s experience, check out his GitHub.
What was your first assignment with Nanome?
VB: When I first came on here at Nanome, there were a lot of features at the time that were being considered for Nano-Pro and other products, but none of them were in one product. My first goal with the company was to make a product out of these components. I refined and refactored the code.
Since then, I’ve spent most of my time working on Nano-Pro. It has been interesting most of all to see how the team is growing. There are a lot of aspects to manage in order to avoid people coding on the same piece of code, and breaking each other’s work. If you don’t synchronize very often, it happens all of the time.
What are some of the unique aspects of being CTO at Nanome?
VB: I work often on computational chemistry, particularly in virtual reality. Our customer wants many features related to computational information, like how the molecules themselves work. They usually are not able to give us any algorithm for that, because they are not computer scientists. They just go, ‘Hey, it works like this or that.’ My job has been to transcribe what they say into an actual algorithm that solves their problem.
I have spent much of my time understanding how molecules work. When you’re trying to display data, one must understand right away what you are seeing, otherwise you have no idea if it’s correct or not. I have learned a lot about chemistry.
And then you have to implement it into VR. When you have standard software like video games, you don’t have to worry about the fact that everytime you go under 60 Frame Rates per Second (FRPS), people start to get sick because their brain is not okay with that. In VR, you consider how fine details of the software like this can make people sick.
It’s an added element of the coding process. There is a performance point that you have to get over or otherwise it’s not useable. In VR you have to get everything right regarding performance or people don’t like it.
What work does it entail to ensure these standards are met?
VB: We often focus on low level coding to optimize everything. The rendering of a large, complex molecule is complicated to get right. It’s a large amount of data you have to render at 120 times per second. There are a lot of technical challenges and a lot of optimizations to be made. I have worked a lot on perfecting the structure.
If you want to keep adding moving pieces to a large infrastructure and architecture, you have no choice but to have a clear structure. Otherwise, at some point, you’re going to reach a wall where every time you fix something, something else breaks. You can get stuck in a loop.
Did you think about refining the code while in virtual reality?
VB: I have not found an effective way to display code in 3D. That was my first thought when I began working here: “Can we code in VR?” Unfortunately, I have never seen effective 2d graphic arts programming. Until we see effective 2d programming, I don’t see 3d programming being effective.
What is your experience with VR?
VB: I started using VR in 2014, but did not do a lot of development at first. The first actual VR headset was really hard to use.
When I got the DK1 headset, I started coding with it as a hobby. I tried to make games work with it, because games don’t work if you don’t code it for VR. You have to design VR experience from the ground up otherwise it’s not good. Then DK2 came out. The image quality was better, but we had no controllers. In DK1 you would see the actual pixels. DK2 was a lot better, but still not perfect.
With DK2 I experimented with the development of 3D videos that were played back in VR. And then I met these guys and I walked into the office and they had me try Oculus Rift. That was a few years after I bought DK2. I was like, ‘Wow, VR is here now’. There were now controllers, as well as good software for it. I had been waiting for that moment.
In the time between DK2 and Oculus Rift, I had lost track of the virtual reality field as I focused on bitcoin and blockchain development.
What is your experience coding in Bitcoin?
VB: I have spent a lot of time as a web programmer. I have built technical websites for use with bitcoin. Coding in bitcoin is cool because you don’t have to rely on third party services due to the decentralized nature of it. That is a great technical aspect. If you have an e-commerce website, you are often relying on Stripe or some other service to receive the money. As a developer, not having to rely on third party websites thanks to bitcoin makes it feel like you actually know what your application is doing.
In the very early days of bitcoin, it was complicated because there were no real standards. There were no such things as smart contracts. The term didn’t exist. Bitcoin transactions were quite cheap, so that was cool. But not until recently did Segwit fix the transaction malleability problem, which was actually a very painful part of developing on blockchain.
Segwit made a lot of sense from a developer’s perspective. I am not sure why you would not like it. I don’t get the hype behind Bitcoin Cash from a technology perspective.
What are some challenges today for blockchain developers?
VB: Blockchain scaling is still a problem. You have to run a lot of things off-chain. If you had a large scale decentralized application, most things would run off-chain. Which means that if you would implement this at the present time, it would represent a centralized system. You can’t store much on a blockchain.
Ethereum developed the concept of smart contracts, which is a great idea but still not quite up to speed. A smart contract is basically the business logic layer of your application that renders in a decentralized way. If your application has large scale components, you need something more robust than the current smart contract infrastructure.
Blockchain poses new types of problems, which the software engineering industry had heretofore never seen. The whole decentralized application part was completely unknown. No one truly knows currently how to make a provably robust decentralized application. We still see that with the recent parity hacks, and so on. It’s hard to get everything right in a decentralized application.
Before decentralization, development had its own unique set of problems, like something strange might be going on in a network architecture. Now its decentralized applications calling functions and triggering transactions. Perhaps this triggers a special case that bypasses whatever protection you have in place. It’s a new field and the security has a very long way to go before it’s actually 100% safe to use.
What is your general experience of blockchain development?
VB: When you develop a decentralized application, there is a lot of work going up on web technologies, because you need an endpoint that you can easily use to interact with blockchain. You can’t just interact with the blockchain in Google Chrome. Usually you need a middleman or middleware that is created with code in web technology, because you’re using an application in ‘http’ to connect to an API that holds your private key, or someone else’s private key, in order to interact with smart contracts and blockchains.
Usually when you’re versed in blockchain coding, you are learned first in web development. 80% of blockchain development is web development. It’s not smart contract coding. Smart contracts are usually really small in terms of lines of code and time to create. It is, however, hard to verify their security level.
You need to pass smart contracts through a lot of eyes before you can be certain they are secure. A lot of developers need to read through it and find mistakes.
Could you outline your vision for the Matryx collaboration platform which Nanome is working on?
VB: Matryx is a world changing idea. Having people collaborate and even compete to solve problems trustlessly is complicated. But that is also cool because you don’t need permission from anyone to be in the right place at the right moment to solve a problem, such as is the case in the workforce or even in many cases at University.
That means more brains working on it. The most innovative solutions very often come from places you don’t expect. People can collaborate even if they don’t know one another’s name. If they can compete and help each other on the same problem, that’s actually a huge advancement; in terms of how we work, how we make science better and how we build things and stuff like this. It’s a complete shift.
In the current paradigm, you have to get together in the same room as other people. Maybe someone else on other side of planet will know the answer in five seconds, but you take months to figure this out
I feel like having this collaboration platform, you can focus on what you’re good at, and not just the problem right now. You can find the problem you know how to solve.
If you solve ten problems a week instead of one, and everyone does that, everyone is ten times more productive, because they do what they are good at. Maybe right now you could solve the problem of someone else, you just don’t know about it. You could live off of the fact that you solve problems for other people.
What are your thoughts on the merging of blockchain and virtual reality?
VR: Blockchain is immutable. VR is going to need content that is immutable so you can have ownership in VR . Right now, if you have a boat in VR, you can copy and paste the boat and you get another boat. You’re not going to use a dollar or a credit card in virtual reality in a practical sense nor for such an item.
If you want to have a transaction in VR, blockchain is the only way to go about it. Usually when there is a new platform such as the internet, everyone is trying to make ads and sell stuff. No one is selling stuff in VR, because it’s so complicated. I think blockchain could give people ability the ability to transact in virtual reality.