ExpyVR

Description

ExpyVR Logo

What is it?

ExpyVR is a Framework for Designing and Running Experiments in Virtual-Reality.

ExpyVR was originally inspired by psychopy but the execution pipeline was entirely redesigned to be based on OpenGL rendering. The code of ExpyVR is in Python, but it uses C/C++ shared libraries for multimedia I/O. It is essentially developped for MS Windows (XP or 7) but the core engine is in itself non-OS specific (multi-platform Python modules).

ExpyVR allows users to easily design an experiment timeline with loops and randomization using a graphical user interface. Modules for 2D and 3D display, audio, or user input are integrated into the timeline with few clics. Once an experiment is described and saved, a set of execution instances can be generated with randomization for testing with subjects (e.g. factorial design).

Design principles 

1. Separation of the experiment design GUI and the experiment controller for execution

  • GUI allows to design experiment as a set of modules instances + a flow with time-lines (XML)
  • GUI generates instances (XML)
  • Controller reads XML and executes instances

2. Components are developed and added easily

  • Grouped by directories (default components, lncocomponents, etc.)
  • Structure of a component is defined in OOP: fix set of methods (init, start, stop, clean), subclass of generic classes: basic, drawable, HUD, etc.
  • Programming of components and scripting is done in Python

3. No external dependencies

  • NO installation procedure for libraries (only for drivers if not possible otherwise)
  • Runtime execution environment is provided with full set of dependencies

Usage and development policy

ExpyVR is provided as-is, with no support. A documentation is provided for learning to use and to develop new components. It is shared with the hope that it can be useful to researchers who, like us, need a high flexibility in the design and programming of their behavioral experiments.

Feel free to contact Florian Lance for more information or collaborations.