Skip to content

JashoBell/vr-experiments-resource-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VR Research Resource Repository

This repository is intended to be a curated repository of resources that are relevant to developing XR-based studies for experimental psychology or similar fields of research. Where possible, it is focused on free and open-source resources. If relevant, the resources should be actively maintained/updated, because this space moves relatively quickly and the changes tend to be substantive. It is not intended to be a list of all VR-related resources, but high-quality general resources that might be useful to VR experiments will be included. The goal is to provide a centralized location for all of the tools available to VR researchers, so the time normally spent searching for them can instead be spent developing, and development decisions can be made with all the relevant info available.

If you have any suggestions for additions, please feel free to open a discussion thread, issue or pull request (after checking CONTRIBUTING.md), or just reach out to the maintainer (@jashobell) via another platform. If you are building an experiment and would like to either ask for assistance or share your experiences, triumphs and frustrations, feel free to open a discussion.

Planned Additions:

  • Hardware platforms/Tracking systems
  • More content (esp. Unreal Engine)
  • A wiki (Started, see: Wiki)
    • Tutorials/Informational content
    • References

Table of Contents

Software Platforms

These are the applications you might use to build your experiment. Platform constraints on assets/resources will be noted via a preceding emoji.

PsychVRToolbox - A collection of functions for building VR experiments with MATLAB/GNU Octave.
PsychXR - A Python library for building VR experiments, could be considered a VR extension of PsychoPy (and uses PsychoPy for rendering).
🟢 Unity - A free cross-platform engine focused on game development but capable of VR experiments. Note: Requires a free Unity account to use.
🟧 Unreal Engine - A free and open-source cross-platform engine focused on game development, but also able to be used for VR experiments. Note: Requires a free Epic Games account to use.
🔷 Vizard - A VR application development platform focused on professional use that leverages Python as its scripting language. Note: Closed source, license fee involved.
⬜ Platform-agnostic/Multiplatform

Experimental Design

Frameworks

This section covers experimental "frameworks", or libraries that simplify the essential processes of conducting a behavioral experiment.

Data Collection

These resources augment the experimental design frameworks above with additional features for data collection.

  • 🟢 Rapid Sampling for Unity Experiments - Some custom UXF-based tracking scripts that use multithreading to sample motion data from a variety of tracking sources at a higher rate than Unity's framerate cap (currently, OpenVR and VRPN).
  • 🟢 VRQuestionnaireToolkit - A Unity toolkit for building and presenting questionnaires in VR (Paper).

3D Environment Development

This section is primarily focused on the creation of realistic 3D environments for VR experiments.

Applications

  • Blender - A free and open-source 3D creation suite.
    • (Recommended Add-on) Archimesh - Easy generation of rooms, doors, windows and some objects.
  • Materialize - A free and open-source application that allows you to create seamless tiles and texture maps from a single image.

Asset Collections

  • AmbientCG - A collection of high-quality CC0 assets, including textures, models, and HDRIs. Many textures are procedurally generated with Substance Designer.
  • Polyhaven - A collection of high-quality CC0 assets, including textures, models, and HDRIs. Most textures are based on photographs.
  • Sketchfab - A collection of assets varying in quality, licensing status, and price. Many assets are CC0, and many others are free to use in non-commercial settings with attribution.
  • Textures.com - A collection of high-quality 3D assets. A limited number of free downloads each day with an account, but assets are not redistributable.

Standardized Assets

  • OpenVirtualObjects (Tromp et al., 2020) - 124 realistic 3D models of commonly-used and encountered household objects, rated "for recognizability, familiarity, details (i.e., visual complexity), contact, and usage (i.e., frequency of usage in daily life)" by adult participants (Article).
  • Standardized Set of 3D Objects (Peeters, 2017) - 147 objects belonging to "several different semantic categories, including food items, furniture, clothing, toys, and vehicles". Objects "have been normed for name agreement, image agreement, familiarity, visual complexity, and corresponding lexical characteristics of the modal object names" (Article).

Avatars

  • 🟢 🟧 Microsoft Rocketbox (Gonzalez-Franco et al., 2020) - A large and relatively diverse collection of characters and avatars released under the MIT license, including children and animals. Avatars are rigged with Mixamo animations and facial blendshapes Article.
    • Note: If you intend to use them as self-avatars in Unity, see this pull request that fixes an issue with the avatar's construction on import.
    • (Relevant Utility) Movebox - A toolbox for animating the rocketbox avatars.
  • 🟢 🟧 Mixamo - A collection of humanoid models with animations. Also a system for adding animations to your own models.

Feature Development

Third-party libraries and tools that can be used to implement features in your VR experiment.

General

  • 🟢 🟧 Mixed Reality Toolkit - "MRTK is a Microsoft-driven project that provides a set of components and features, used to accelerate cross-platform MR app development in Unity or Unreal".
  • 🟢 QuickVR (Oliva et al., 2022) - A Unity library aimed at simplifying the integration of several VR features, with a focus on VR embodiment and avatar-related functionality (e.g. inverse kinematics; Article).

Inverse Kinematics (IK) Solvers

These resources enable the implementation of self-avatars for participants.

  • 🟢 FinalIK - A paid asset (often on sale) for Unity that includes a variety of IK solvers. VRIK in particular is useful in this context, and implements full-body IK.
  • 🟢 🟧 Manus Polygon - Free full-body motion capture software that can stream data into Unity or Unreal. Does not facilitate partial IK (i.e., you need enough trackers attached for full-body tracking).
  • 🟢 VRArmIK (Parger et al., 2018) - IK solver focused on recreating arm movements from the head and hand. Useful for implementing a self-avatar with only a head-mounted tracker and a hand tracker (Abstract).

Movement Smoothing

These resources can be used to smooth positional data in real-time. Useful if representing virtual objects with potentially noisy motion capture data (e.g., Infrared LED) that don't otherwise implement smoothing.