Continuing off of the work I did for my independent study course with Dr. Walter F. Bischof, my thesis project required me to create a software framework (the SNaP Framework – Spatial Navigation Framework) that would enable psychologists to easy create, control, and deploy virtual reality-based spatial navigation experiments. My main goal was to eliminate the hardware and usability issues inherent in current VR systems and create a flexible system that is easy for novices to use. I also had a number of research goals that I wanted to investigate/achieve:
- Eliminate issues in using VR for spatial navigation research
- Simplify input and output peripheral usage
- Enable novice specification and deployment
- Decrease design and implementation time
- Reduce the volume of incomparable results
- Create environments with similar appearances
- Include universal interaction metaphors and behavioral recording techniques
The software framework contains a number of components (Chapter 1 and 4 of thesis):
- Parameter File
User-created XML file that specifies the spatial navigation experiment to be performed - VR Configuration Creator
Python module that transforms each trial specified in a parameter file into a configuration file; determines if a block of trials needs to be run again due to poor performance - Configuration Files
XML-based file that specifies the environmental and protocol configurations for a given experimental trial - VR Launcher
Python module that determines which deployment contexts and input devices are desired - VRPN Server
Open source virtual reality server/client that transforms input devices into generic device types; the data streaming from the server is used to control participant movement - Virtools VR Player
Virtools-provided component that renders virtual environments - Virtools Composition Files
Virtools file that contains a paradigm’s virtual world; contains custom scripts, 3D models, and universal modules to generate and render a paradigm’s virtual implementation - Result Files
Capture a participant’s performance (i.e., path traveled, camera frustum images, or overall experiment results)
There are a number of ways that different groups of users can use the SNaP framework in their research. Novices can use 3D Layout window to add, relocate, or retexture 3D elements, quickly specify desired input and output peripherals, and easily deploy experiments using the provided batch scripts. Expert users can extend the XML parameter and configuration file schemas, design and integrate new 3D models, modify or add new scripting or C++ SDK code, introduce new metrics, modify the VR Configuration Creator to handle new parameter and configuration files, establish new goal monitoring algorithms, navigation metaphors, or aids, and implement new paradigms using template environment. (Chapter 5 of thesis)To test the efficacy of the SNaP Framework, I implemented a number of popular spatial navigation paradigms using the framework (I also performed a pilot study using a small sample of individuals, those results were done after my thesis was completed so they are present in my publications but not thesis). (Chapter 3 of thesis)
Complex Maze
Scatter Hoarding Task
Cheng Task
Virtual Morris Water Maze