Skip to content

Master's Thesis on Code Entry in VR built on TLabAtloh/TLabWebViewVR and NormalVR/CutieKeys

License

Notifications You must be signed in to change notification settings

DaphiFluffi/TLabWebViewVR

 
 

Repository files navigation

Master's Thesis on Code Entry in Virtual Reality

For my master's thesis I conducted a qualitative study to find out what an intutive and learnable text entry experience in VR should look like for programmers. As part of my thesis, I had to re-implement several VR text entry systems from the literature. The study took place in a custom coding environment displayed in an in-game web browser by TLabAtloh (TLabWebViewVR Browser). It can be moved using the MoveAndScale.cs by NormalVR/CutieKeys.

Project Structure (all forked from TLabAtloh, main branch: masterarbeit):

Materials:

  • HMD: Meta Quest Pro
  • Unity Version: 2022.3.48f1
  • Visual Studio Version: 2022
  • Main Scene: Assets/TLab/TLabWebViewVR/MetaXR/Samples/Scenes/MetaXR Sample.unity

Inspector Structure

Under the unpacked Prefab TLabWebView_MetaXR is the Screen object contraining the Browser Screen and the following keyboard implementations. The Study Manager contains the Browser Navigation Button Functions.

  • SimpleKeyborad = TLab's Virtual QWERTY Keyboard with layout adjustments [1]
  • Drum = NormalVR's CutieKeys Drum Keyboard with layout adjustments [2]
  • Eye = Eye-Shaped Keyboard re-implementation [5]
  • PizzaDone = PizzaText re-implementation [3]
  • Cube = Cubic Keyboard re-implementation [4]
fig-inspector

Unity Inspector Structure

Text Entry Systems

PizzaText

fig-pt-menu-of-pizzas

Menu of Pizzas for Layer Switching; Not in the Original

fig-pt-me

PizzaText; L–R: Lowercase, Uppercase, Symbol, Control Layers

Cubic Keyboard

fig-ck-me

Cubic Keyboard;L-R:Control Char Side Panel, Main Keyboard and Text Entry Field, Shift, Layer Change and Arrow keys side panel

fig-ck-lowercase fig-ck-uppercase fig-ck-numbers fig-ck-symbols

Four Layers Dissected: Lowercase and Uppercase Letters, Two Special Character Layers

Virtual Keyboard

fig-virtual-tlab

TLab's Virtual QWERTY Keyboard, added Tab and Arrow Keys, slightly different layout

vk-tlab-layout-letters vk-tlab-layout-symbols

(a) Lowercase letters, (b) numbers and special chars

Drum Keyboard

fig-env-unity

Modified Drum Keyboard Layout

Eye-Shaped Keyboard

modified-eye-keyboard

Modified Eye-Shaped Keyboard Layout

Custom Study Testing Environment Displayed in Browser with added Navigation Buttons

fig-env-unity fig-browser-unity-buttons

TLab's Browser with added navigaton bar displaying our custom coding env

Sources

  • [1] TLabAtloh: TLabWebViewVR. https://github.com/TLabAltoh/TLabWebViewVR
  • [2] NormalVR: CutieKeys. https://github.com/NormalVR/CutieKeys
  • [3] D. Yu, K. Fan, H. Zhang, D. Monteiro, W. Xu, and H. -N. Liang. “Pizza-Text: Text Entry for Virtual Reality Systems Using Dual Thumbsticks”. In: IEEE Transactions on Visualization and Computer Graphics 24.11 (Nov. 2018), pages 2927–2935. issn: 1941-0506. doi: 10.1109/TVCG.2018.2868581.
  • [4] N. Yanagihara and B. Shizuki. “Cubic Keyboard for Virtual Reality”. In: Proceedings of the 2018 ACM Symposium on Spatial User Interaction. SUI ’18. New York, NY, USA: Association for Computing Machinery, Oct. 2018, page 170. isbn: 978-1-4503-5708-1. doi: 10.1145/3267782.3274687.
  • [5] K. Wang, Y. Yan, H. Zhang, X. Liu, and L. Wang. “Eye-Shaped Keyboard for Dual-Hand Text Entry in Virtual Reality.” In: Virtual Reality & Intelligent Hardware, vol. 5, no. 5, Oct. 2023, pp. 451–469. issn: 2096-5796. doi: 10.1016/j.vrih.2023.07.001.

Legal Disclaimer

This repository contains the implementation developed as part of my Master's thesis.

The work is based on a fork of TLabWebViewVR by TLabAtloh, available at: https://github.com/TLabAltoh/TLabWebViewVR. Significant modifications and additions have been made to support the research described in the thesis.

Please note:

  • This repository reflects only the implementation part of the thesis and may not represent the full scope of the academic work.
  • All original work is © Daphna Beljavskij, 2025.
  • The code and materials are shared for academic and non-commercial use only, unless otherwise specified in the license.
  • The original project is licensed under the MIT license, and this fork complies with that license. See LICENSE for more details.

If you use this code or refer to this project in your own work, please contact me to cite the original project and my thesis appropriately.

Original README TLabWebViewVR

日本語版READMEはこちら

Sample project for using TLabWebView in OculusQuest. Includes Meta XR SDK and XR Interaction Toolkit implementation example.

Document is here

Snippets is here

Screenshot

Watch on Youtube

output

Operating Environment

Headset Oculus Quest 2
GPU Qualcomm Adreno 650
Unity 2021.37f1

Getting Started

Prerequisites

Installing

  • Clone the repository with the following command
git clone https://github.com/TLabAltoh/TLabWebViewVR.git

cd TLabWebViewVR

git submodule update --init

Set Up

Please see the setup section here

Sample Scene

Meta XR SDK

Assets/TLab/TLabWebViewVR/MetaXR/Samples/Scenes/MetaXR Sample.unity

XR Interaction Toolkit

Assets/TLab/TLabWebViewVR/XRInteractionToolkit/Samples/Scenes/XRInteractionToolkit Sample.unity

Sample Repository for Unity 2022

About

Master's Thesis on Code Entry in VR built on TLabAtloh/TLabWebViewVR and NormalVR/CutieKeys

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 79.7%
  • ShaderLab 17.5%
  • HLSL 2.8%