Software can only get you so far: from divIT to Delta Reality
Vedran is one of the founders of divIT, the predecessor to Delta Reality. He is the guy who always has the answers to our questions, a person whose visions are complex and endless.
He is also an outstanding mentor, and from a couple of our previous interviews it is clear that our colleagues are hugely appreciative of his willingness to share his knowledge. Today he is the CTO of Delta Reality, and we’ve taken the opportunity to ask him about his humble beginnings, his experience as a Senior Unity3D Engineer and much more.
Could you tell us a bit about the challenges you’ve faced on the journey from founding an XR company to today?
Darian and I first started working with touch surfaces just as smartphones were on the rise. We looked at some estimates of what the future of interaction might look like, with large touch screens, interactive walls and tables, and thought, ‘Wait, can we make that today?’ That’s how it started, with the idea of making our own interactive table, and a large projection wall.
Although we had no idea what it really meant to develop and launch a product, we managed to make a functional prototype of the multitouch table, and afterwards a whole multitouch wall. The multitouch wall is what brought us our first client.
We had always found the interface between humans and computers highly interesting. Switching from touch surfaces to gesture control and motion tracking with computer vision, we ventured into augmented reality (AR) — and when the Oculus appeared we were thrilled by the possibility of virtual reality (VR). We immediately recognized how big a thing it would become, and since VR was a logical continuation of our previous work, we completely refocused on it, and ultimately on XR, as the term crystallized.
Back in the day, one of the challenges for us was how to explain in simple terms to the public what we were working on. Descriptions or video presentations of what our work was about weren’t available anywhere, so it was pretty impossible to explain the magic we were creating without having the tons of hardware required to plug people into the VR. Presentation became much easier once we’d prepared the demos and Oculus Quest appeared on the market as a standalone headset.
Delta Reality is all about technology and the challenge of new technologies. What have been some of the most exciting technologies you’ve had a chance to work with?
Over the past 10 years, the company has worked on hundreds of different projects. Each of those utilized various technologies. It would take many pages to recount them all, but the ones that I’m really fond of are VR headsets, tracking hand movements and gestures, tracking faces and recognizing expressions, depth-sensing cameras, volumetric video capture, neural networks, drones, holographic displays using screens, 3D scanning and SLAM tracking. These would be my top 10. Some I have learned how to work with on the fly for the purpose of a specific project. In others, I have become an expert. Some are flashes in the pan, while others have been more enduring.
Today, every day is different as I am involved in planning and supervising projects in development, mentoring, and researching new technologies and tools. Sometimes I spend the whole day testing new tools or software development kit that I could use, while at other times I manage to smash code all day. I used to do pure development work originally, but as the team has grown, more non-developer work requires my attention.
The most demanding project I’ve worked on was mash.me, our home animation system that uses mocap technology. Although it never met its commercial goals, I now realize that the idea itself was brilliant, we were just ahead of our time — similar systems are only being introduced now. The experience I gained on that project, however, was irreplaceable, and the things I learned enabled us to participate in some great projects later on, so it certainly wasn’t a waste of time. On the other hand, the most fun projects we’ve done are those we’ve worked on with Kinect — Microsoft’s depth-sensing camera. Those have always been a source of hours of laughter and joy around the office.
I am as much a hardware person as I am a developer. Sometimes the solution is not to fix the code but to resort to more physical methods. Software can only get you so far.
Physics is one of the most important elements in the development of XR. How do you make things look realistic?
There are two aspects of realism in XR, appearance and behavior. The interesting thing is that behavior is just as important for immersiveness as a realistic appearance. Achieving photorealism in rendering is extremely demanding, not only in terms of the hardware performance required but also in terms of the time it takes to model photorealistic objects and the environment. I’ve seen many teams try to achieve this and then just stop there. The thing is, if the behavior of objects and the environment are poorly executed, nothing will look immersive. I think just as much time needs to be spent on behavior and polishing the details. For example, if we need to make a virtual field, suitable for playing football on, we can make photorealistic grass and a photorealistic ball, but if the grass is motionless, as if it’s frozen in time, even when the ball falls, everything will have that unrealistic feel.
We don’t stop at a photorealistic static grass rendering. Instead we apply an animated vertex shader to make the grass sway in the wind. By defining realistic ball behaviors — adding a slight deformation when the ball hits the ground and implementing a dynamic reaction to the grass so it goes flat as the ball rolls over each blade — we can achieve a realistic feel. Small and subtle details are important, and when you watch a fully dynamic scene like that in VR, you feel like you’re really there.
How do you utilize code reviews in the development culture?
Larger, more complex and time-consuming projects become impossible to maintain if the purity of the code is not taken into account. Our approach to how to ensure this is constantly changing and adapting, but we have come up with a solution that works for us. Each new task is done on a separate branch in the version control system. When the task is complete, the developer requests a code review. The code review is carried out by another developer working on the project, the team lead or me, depending on the size of the project. That person will check if everything has been done properly. If all goes well, we merge the task onto the main branch and the developer goes onto the next task. Non-compliance with the coding standard is unquestionably corrected. I believe that good application architecture and well-structured code are really important to ensuring the sustainability of a project.
This process has been working very well lately and, after some initial setbacks, everyone has accepted it. Now it is much less of a headache when something needs to be redone and upgraded after six months, and I certainly have a few less things to worry about.
You have often been picked out for being a fantastic mentor during previous interviews with our colleagues. What does the onboarding process look like and what can you tell us about your mentorship?
The most important thing for me is to show people that there is never just one solution to the problem they are working on. I approach everything that way; as soon as I come up with a solution, I put it aside and think some more until I find at least one more approach. Sometimes ten. Then I weigh up which one is best for the current situation.
I rarely give people a direct simple answer to how to do something, unless it’s just a simple thing. I like to sit them down, let them walk me through how they came up with the current solution that has caused the problem. I like to review each problem at its core. This is where I offer my suggestions, explain what I would have done differently, praise good decisions and suggest a better approach. Only then do I propose solutions to the current problem, listing the advantages and disadvantages of each approach that comes to mind. I ask them which approach seems best to them and how best to implement it. In this way, I believe, they get used to approaching problems from multiple sides, which makes them better developers.
Just like Vedran and Darian, every member of the Delta Reality family, whether former, present or future represents a significant puzzle piece when carving the new path in XR. We look forward to continuing to grow and forge that path, with fantastic people in our team, a warm and welcoming working atmosphere, and exciting new projects that will change how the future looks. We are looking forward to the next 10 years.
If Vedran’s story inspired you to join Delta Reality family, we have great news! At this moment we are looking for Unity 3D Engineers! More details about the open positions are available here.