Author:

Felix Völk
Supervisor:Prof. Gudrun Klinker
Advisor:David Plecher (@ne23mux)
Submission Date:15.05.2023

Abstract

Virtual Reality (VR) is conquering the mainstream entertainment market every day. More and more households and businesses use this technology for games, demos, training, and marketing. Used correctly, the player can enter digital worlds, that would otherwise be too dangerous or hard to reach. However, this more general approach to hardware, when one VR system is created to fit multiple applications also has its downsides. Often the controllers don’t represent the real-world equivalent, promoting an unnatural behavior by the player when performing tasks. By creating specialized hardware controllers, this could be counteracted, creating a more realistic and immersive experience. This thesis gives an overview of popular diving simulations and games, to assess their strengths and weaknesses. The two most important physical factors for diving, buoyancy and pressure, and their interaction is explained in detail. To select suitable hardware, that can improve the experience of VR diving simulations, computer hardware and diving equipment is presented, and a selection for a new controller is made. This new controller’s development is documented and two use cases for it are presented. A comparative study of a selected diving simulation with and without the hardware extension is described and it’s results discussed.

Implementation

If you want expand on this thesis, or want to build this controller, this section is the right place.

Software

This project is based on the "200 bar" Diving simulation ([21WS - BA] Virtual Reality Systems for Serious Games on the subject of dive simulation). The source code is stored using Plastic SCM. To gain access, please contact Leonard Keil to be added to the Unity team. SCM is a build in source control management for the Unity Game engine (https://www.plasticscm.com/).

The code to Buoyancy Bob developed during this project is hosted at github (https://github.com/flixabua/BuoyancyBob) and in the lrz git (https://gitlab.lrz.de/flixabua/buoyancy-bob). Assets in this repository are made publicly available or were devolped for the purpose of this game alone.

Both were made using Unity Version 2021.3.12f1. You can get this version from the Unity hub (https://unity.com/de/download).

If you want to program the microcontroller, you need the Arduino IDE (https://www.arduino.cc/en/software).

Hardware

The hardware configuration used for the first prototype:

  1. The regulator used was disasembled and provided for free by https://tauchbasis-ilsesee.de/ and is a APEX ATX Regulator (https://de.apeksdiving.com/at/tauchen/atemregler/atx-regulator-RG117.html).
  2. The 3D printed casing must fit the regulator, sensor and micro controller, so the size and fit were adapted for this setup. If you use another regultor or sensor, they might not fit together with this design. These .stl files contain 3D models for the two parts and a lid for the sensor. Platinenkorpus V2.stlSensoraufnahme V2.stlPlatinendeckel V2.stl. You also need 2 rubber bands to hold it together.
  3. The Micro controller used is an Arduino Uno V3 (https://store.arduino.cc/products/arduino-uno-rev3). It is programmed with this code (airfow_one.ino).
  4. The mass air flow sensor used (https://www.dfrobot.com/product-2066.html) must be compatible with the microcontroller and set up correctly.

Other Hardware used for this project is the Valve Index HMD (https://store.steampowered.com/valveindex). If you use other VR headsets, make sure it works in Unity.

Game Downloads

The build (BuildBB.zip) for "Buoyancy Bob" requires the previously described hardware setup, and won't run with out the controller attached. The build for the "BCD parcour" level of "200bar" is too big to be uploaded here. Please contact me, if you need those.

Screenshots & Videos

Prototype front view

Prototype back view

Prototype back view - VR mode

"BCD parcour" level start

"BCD parcour" mid game

"BCD parcour" finished

"Buoyancy Bob" start screen

"Buoyancy Bob" gameplaydemo_bb.mp4

"Buoyancy Bob" finished screen

Conclusion

The addition of hardware can increase the immersion of virtual reality diving simulations. The prototype presented in this thesis, in conjunction with software adaptions fulfill their purpose and add to the experience of virtual scuba diving. However, adaptions to the design should be made to improve the experience. First of all, a lighter design should be developed, as the current one is too heavy for longer sessions. Because the regulator is used mostly under water, the ergonomics for it are designed for a different environment. Measuring all the air was more tedious than anticipated, maybe a full seal with non toxic glue would have been better. However the ability to clean the regulator without the fear of damaging the electronics was a good choice, as the salivation was greater than anticipated. One big problem at the start of this thesis was the dependency of the 200bar prototype on external libraries. Specifically the problem was that between this thesis and Leonard Keils thesis ([21WS - BA] Virtual Reality Systems for Serious Games on the subject of dive simulation) the libraries changed and the code of 200bar had to be adapted before the real work of this thesis could begin. In conclusion the hardware extension  seemed to improve the immersive experience of players, while also giving more possibilities to be used in other contexts.

[Slides Kickoff/Final (optional)] 



Final-Presentation_felix_2.pdf