Perception Toolbox for Virtual Reality

PTVR is a free and open-source library for creating visual perception experiments in virtual reality using high-level Python script programming. It aims at helping behavioral science researchers leverage virtual reality’s power for their research without the need to learn how virtual reality programming works. The philosophy of PTVR is thus very close to the approach of PsychoPy that has been so important and influential since 2007 for Vision Science researchers displaying stimuli on 2D monitors.

Some of PTVR assets are:

  • Researchers can create VR experiments rapidly and succinctly thanks to clearly structured high-level python scripts.
  • The use of such scripts, along with the transparency of the PTVR open-source code, is one of the necessary components to address the ‘reproducibility crisis’ in science and foster Open Science.
  • Researchers can learn PTVR quite quickly thanks to two primary resources:
    • The rich online documentation with many animated figures in 3D to visualize 3D subtleties.
    • Demo scripts with didactic 3D and interactive features.
  • The terminology used in the PTVR code is familiar to vision scientists. For instance, researchers can use an intuitive “Perimetric” coordinate system, allowing them to place their 3D stimuli with eccentricity and half-meridian coordinates easily.
  • Intuitive ways of dealing with visual angles in 3D.
  • Intuitive ways of dealing with the notorious difficulty of rotating 3D objects.
  • An implementation of “flat screens” to replicate and extend standard experiments made on 2D screens of monitors.
  • Easy ways of recording experimental results.
  • Easy Gaze tracking and recording.
  • Easy Head tracking and recording.
  • Focus on implementing the standard and innovative clinical tools for visuomotor testing and visuomotor readaptation (notably for low vision).
  • Great care to create accurately controlled text stimuli in the spirit of the psychophysics of Reading.


  • An HTC Vive Pro Series VR system
    • Other systems such as the Meta Quest headsets, or the Valve Index, have been reported to function with PTVR, but this has not been systematically tested by the PTVR team.
  • A Windows computer with HTC Vive already set-up. See HTC Vive setup for help with this.
  • Python >3.6. We recommend Spyder, a nice integrated development environment (IDE).


  • Future PTVR versions will rely more on OpenXR to ensure as much as possible that PTVR “will behave similarly on all conformant devices”.
  • PTVR is built using the Unity game engine as a backend (you will however not have to install Unity yourself).
  • For those who want to know more about the internal PTVR functionning, The PTVR project folder can easily be opened as a Unity project (in this case, logically, you will have to install Unity).

Comments are closed.