 |
 |
 |
.png) |
ProVR Features
Some of the features ProVR currently provides:
- Account registration and login
- Creating multiplayer sessions
- Invite participants to your session
- Joining a selection of session though a server browser
- Browse between your uploaded CAD models
- Manipulate CAD models placed in the collaboration room
- Inverse kinematics
Why ProVR?
ProVR aims to make digital collaboration easier, more immersive and efficient. With ProVR, you are able to work remotely while seeing your colleagues in virtual reality. The use of hand controllers gives a more intuitive approach to interacting with your environment. To manipulate different models in the virtual reality environment, simply point, grab and manipulate, using your hand controllers. The immersive, interactive and social benefits of ProVR, makes it an application that you and your colleagues can enjoy to be a part of.
- Upgrading the way engineers can view CAD models. No more 2D screens, screen sharing, and collegues breathing down your neck!
- Making your deskjob more active by allowing you to stand and move while working
- Ergonomical work conditions
- Being able to tinker with and use the latest virtual reality technology
- Transforming the socially isolated home office situation into a more social experience
How to upload CAD models
To be able to upload CAD models that you can place inside the virtual reality collaboration room, a webpage can be accessed
here . From this webpage, you may upload your own selection of models. In addition to this, ProVR offers account registration inside of the ProVR environment. From here, the models are easily accessed
through our browse model interface.
Here is a view of the website after you have logged in with your ProVR account.
 |
The technologies
While working on the project, we have been extremely lucky to be able to learn and utilize a lot of varied and exiting technologies.
- Unreal Engine 4 is a state of the art game engine with C++ support, powerful enough to create virtual reality applications
- Google Cloud Platform offers powerful cloud computing and storage.
- Angular is a TypeScript based application that enables efficient creation of single-page web apps, a perfect fit for our upload website
- Protractor enables for automatic and efficient testing
- GitHub is an online code hosting and version control platform that has been invaluable for us while writing code
- Docker allows us to easily create, deploy and run applications using containers, perfect for creating multiplayer servers
- NodeJS and ExpressJS is an event-driven Javascript runtime system, specifically made to develop scalable network applications. We have used it to create the API's and API gateway
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
ProVR features a unique and layered software architecture. Modulating important functions into microservices that are easily maintained and future-proof.
 |
Data between all components of the application, ranging from the website, databases, Unreal Engine 4, and microservices are integrated to create a complete product. All changes in the virtual environment need to be shared with all participants. Authorization information from our express server, angular website and models from our CAD model repository is injected into the virtual reality environment rendered by Unreal Engine 4 in real-time. By careful and proper planning, we have created a seamless experience for the participants.
A rich selection of UIs for navigation within ProVR.
 |
Complex conceptual modelling with UML
Our use case diagram correlates to a software architecture that is usable for not only ProVR, it is reusable for all applications similar to ProVR. For our complete conceptual modelling, visit
this link.
 |
For the particularly interested. After a long conceptualization phase, where we jumped back and forth between use cases and sequence diagrams, we merged the sequence diagrams into a MVC pattern. The diagram is complex, and consists of a lot of data objects and clear data sharing patterns between the controllers and the data objects. Given that the application is a collaboration tool, data objects that are used to identify the participants is the most shared one. Data objects that are used to represent visual data in the virtual environment need to be shared with every participant, causing a lot of data sharing.
 |