Skip to content

The Cybersickness Evaluation Testbed VR (or CET-VR) is a tool which helps to select the best suitable cybersickness mitigation technique to adopt in a given VR application scenario.

License

Notifications You must be signed in to change notification settings

VRatPolito/CET-VR

Repository files navigation

main

Cybersickness Evaluation Testbed VR

The Cybersickness Evaluation Testbed VR (or CET-VR) is a tool which helps to select and evaluate the best suitable cybersickness mitigation technique to adopt in a given VR application scenario.

Introduction

COMING SOON

Videos

Some videos showing tasks execution with and without a openly available mitigation technique (VR Tunnelling Pro) for each scenario are available at this Link

Experimental Material

Additional material to support the user-study can be found in the Experimental Material/ folder. In particular:

Builds

The application targets only Windows 10/11 and can be deployed to any VR system compatible with the OpenXR API, although minimum modifications may be necessary to support non-tested hand controllers

  • The builds have been tested with Meta Quest 2/Pro (via Link/AirLink)** w/ Touch/Touch Pro controllers and HTC Vive/Pro w/ Vive controllers.

Build CET-VR

Instructions to compile the project:

Infos

The project was developed and tested using Unity 2021.3.x (LTS) and requires the Windows Build Support (IL2CPP), which can be installed through Unity Hub as additional component.

The list of unity package dependencies is in the manifest file and will be automatically managed by the Unity editor. You will need also Blender to be installed (v2.8+), to have Unity correctly load the blend files in the project.

Before building, it is also necessary to import a set of free assets available in the Unity Asset Store. To facilitate integration, the corresponding .meta files have been provided. Upon opening the project, Unity will delete the .meta files related to missing files, so when importing the asset, you need to avoid overwriting the corresponding .meta files or restore the original version found in the repository. The list of required assets can be found in the Acknowledgements section.

Important: a Unity account is required to access the Unity Asset Store and to download free assets.

Note: After importing the MS Vehicle System (free version), the Bézier Path Creator, and the Viking Village assets, you need to apply a patch to ensure proper integration. Navigate with a command prompt to the main project directory containing the patch files (MSVehicleSystem(FreeVersion)_patch.diff, PathCreator_patch.diff, and VikingVillage_patch.diff), and run the following git commands to apply the necessary modifications:

git apply MSVehicleSystem_patch.diff
git apply PathCreator_patch.diff
git apply VikingVillage_patch.diff

Prepare to Build

  1. In Unity, open an existing project and select the UnityProject/ folder
    1. If package errors are reported, press Continue, open the Package Manager (Window -> Package Manager) and try updating the involved packages, after that restart the project
  2. Scene files for each scenario are placed inside the UnityProject/Assets/Scenes/ folder. Before building, open each scene file and perform the bake of the lighting (Window -> Lighting Tab -> Generate Lighting).
    1. NOTE: baking is a computationally intensive task, and the time required for completing it can vary based on the hardware. By default, Progressive GPU Lightmapper is selected, switch back to CPU in case of low-performance graphics adapters. Also, to pick a specific GPU device to be used for the baking please refer to the official Unity manual page

Project Build Instructions

To build the project in Unity, follow these steps (N.B. ensure the necessary scenes are correctly ordered and lighting has been baked for all scenarios):

  • Build for Windows Platform:

    • Open Build Settings from File > Build Settings.
    • Ensure the Windows platform is selected. If not, click Windows and then select Switch Platform.
    • All the the necessary scenes should be already selected and ordered correctly in the Scenes in Build list.
  • Build the Project:

    • Click Build and choose the destination folder for the build files.

Tool Usage

To use the tool, follow the steps outlined below:

Main Menu Selection

main

  • Select one of the four available scenarios from the main menu.
  • Optionally, choose one of the supported mitigation techniques.

You can interact with the interface using the mouse or via keyboard shortcuts:

  • Keyboard Shortcuts:
    • Each button has a highlighted letter that corresponds to a selectable key.
    • Toggle left-handed mode by pressing H.
    • Increase or decrease the value in the user ID input field using the + and - keys.
    • Cycle between mitigation techniques and controller configurations using the arrow keys:
      • Up/Down Arrows: Cycle through mitigation techniques.
      • Left/Right Arrows: Cycle through controller configurations (e.g., for Vive controller select Trackpad or Quest controller select Thumbstick).

Scenario Loading

Once the desired scenario is selected and loaded, the user will start in VR at the designated starting point, facing a panel with instructions for the experience.

To begin the experience, follow these steps in order:

  1. The experimenter must press CTRL+I to arm the start.
  2. The user must press one of the controller triggers.
    • Alternatively, the experimenter can force the start by pressing the SPACE key.

Shortcuts Information

All available shortcuts are displayed on the experimenter's monitor interface.

  • The interface can be hidden using CTRL+H.
  • Note: Shortcuts may vary between different scenarios.

Discomfort Scale Monitoring

  • Every minute, a highly visible indicator will prompt the experimenter to update the Discomfort Scale value (from 1 to 10) by asking the user how they feel.
  • If the score reaches 10, the simulation will be interrupted automatically (equivalent to using the CTRL+L combination for cybersickness withdrawal).
  • Always use CTRL+L to terminate the experience in case of extreme cybersickness symptoms (Important: Do not use CTRL+Q, as it does not ensure an orderly termination of the logging component).

Cybersickness Mitigation Techniques

The CET-VR testbed includes a variety of cybersickness mitigation techniques from different sources, including the GingerVR repository and other well-known works in the literature.

Integrated Techniques

  1. GingerVR Repository:

  2. VR Tunnelling Pro:

    • The free VR Tunnelling Pro Unity asset was integrated into the testbed. This asset allows for variations and customizations of the original Dynamic FOV technique, and, in particular, the Masked Dynamic FOV evaluated in the paper. More details can be found here.
  3. Additional Techniques from Literature:

Advanced Configuration

COMING SOON

Forking Policies

Please contact Davide Calandra BEFORE forking the Project

Citation

Please cite this paper in your publications if it helps your research.

@ARTICLE{cetvr,
author={Calandra, Davide and Lamberti, Fabrizio},
journal={IEEE Transactions on Visualization and Computer Graphics}, 
title={A Testbed for Studying Cybersickness and its Mitigation in Immersive Virtual Reality}, 
year={2024},
volume={},
number={},
pages={1--18},
keywords={Prevention and mitigation;Visualization;Measurement;Dynamics;Task analysis;Standards;Taxonomy;cybersickness;testbed;virtual reality;evaluation;virtual environments;simulator sickness;taxonomy},
doi={10.1109/TVCG.2024.3448203}}

The CET-VR design is detailed in:

  • A Testbed for Studying Cybersickness and its Mitigation in Immersive Virtual Reality

Contact

Maintained by Davide Calandra - feel free to contact me!

License

Experimental material and Unity project are licensed under MIT License

Acknowledgements

The project requires the following repositories and assets:

Known Issues

  1. Missing Asset - Race Tracks: The "Race Tracks" asset was recently removed from the Unity Asset Store, making it unavailable for direct download. We will try reaching out to the original author to request that the asset be made available outside of the Unity Asset Store. In the meantime, as a temporary solution, the necessary asset package, extracted from the complete project, can be downloaded here: Race Tracks Asset Package. If we are unable to resolve this issue, we will replicate the scenario (i.e., the track used in the testbed) from scratch in the long term.

  2. Viking Village Asset Update: The "Viking Village" asset was recently updated on the Asset Store to an optimized version compatible with Unity's Universal Render Pipeline (URP). However, our testbed uses an earlier version designed for Unity 5 and the Built-In Render Pipeline. Since the current version is no longer compatible with the Built-In pipeline, we are providing the previous version, also extracted from the full project, as a temporary download here: Viking Village Previous Version. In the near future, we plan to update the testbed to be compatible with the latest URP version of the Viking Village asset, available here.

  3. GingerVR Compatibility Adjustments: The GingerVR asset was originally designed for Oculus Integration and the older UnityEngine.XR framework. It has been modified to ensure compatibility with OpenXR and the new Unity XR Plugin Management. However, there are still some unresolved issues, such as:

    • Compatibility with Single Pass Rendering mode, which currently might cause unexpected visual behaviors.
    • Proper stereo management for visual techniques applied to the entire frame, resulting in incorrect or inconsistent effects across both eyes in VR.

    Additionally, one of the techniques from GingerVR, the VirtualCAVE effect, was missing a crucial component (i.e., the management script). This script had to be recreated from scratch by following the description provided in the original paper to ensure proper functionality.

    The implementation of the VisionLock technique was also modified. Previously, it required parenting the entire scene's content to the user’s Camera during activation, which made it incompatible with scenarios involving physics, gravity, or lighting from the skybox. These limitations have been addressed to improve compatibility and functionality within the testbed environment.

Related Projects by VR@POLITO

Check out other related projects from VR@POLITO:

About

The Cybersickness Evaluation Testbed VR (or CET-VR) is a tool which helps to select the best suitable cybersickness mitigation technique to adopt in a given VR application scenario.

Resources

License

Stars

Watchers

Forks

Packages

No packages published