pperuzzo@pperuzzo:~$ cat openlabvr

openlabvr - a vr software for the oculus quest headset that provides interactive fully-equipped science laboratories for high school and university students.

project status: active, in continuous development

project team: team of 2

tags: unity, c#, c++, vr, oculus, blender

tldr

overview

the covid-19 pandemic has more clearly exposed the need for better training for stem students.
stem laboratories in schools are highly inaccessible due to safety concerns, limited equipment, and lack of materials.
for these reasons, i created openlabvr, a platform that provides fully equipped science laboratories in vr.
leveraging hand-tracking technology, openlab provides realistic interactions with lab objects, helping students build up confidence before entering a real laboratory.

as the cto for the project, i wrote the majority of the code in unity c#, focusing on creating modular and reusable components for the vr software.
i also developed a custom parser to generate vr experiences from json files to allow for faster experience development, and to maximize code reutilization.
another key component of the software that i wrote was the integration with unmanaged libraries that i wrote in c++. through the integration of dlls, i was able to bring the power and efficiency of c++ code directly into the c# unity codebase.
additionally, i managed different unity versions throughout the project to maintain compatibility and streamline development.

seamless interactions are a fundamental part of openlab.
i implemented all the vr interactions using hand-tracking and the oculus sdk. this ensured an immersive and familiar user experience for students.

to provide relevant analytics about virtual lab experiences to professors and educators, i also implemented a system for the unity client software to communicate with the web server.
i achieved this by adding logic to post data and communicate with the openlab's web server api.

i worked extensively on optimizing and debugging the unity software project to target quest 1/2 headsets.
to ensure optimal cpu and gpu performance, i used various tools such as performance analyzer, frame debugger, vrapi, systrace, renderdoc (meta fork), and perfetto, managing to bring complex environments to standalone vr in under 60 draw calls.

as part of my role, i coordinated a team of 3d modelers and programmers, providing detailed instructions on how to develop optimized and performant models and code.

technologies used

media

software promo video

full gameplay

machines interactions

micropipette interactions

code

the source code for this project is proprietary and not publicly available; however, it can be made available for review upon request.

links

back