# PsychoPy

PsychoPy is an open source software package written in the Python programming language primarily for use in neuroscience and experimental psychology research. Developed initially as a Python library and then as an application with a graphical interface, it now also supports JavaScript outputs to run studies online and on mobile devices. Unlike most packages, it provides users with a choice of interface - they can generate experiments by writing Python scripts, use a graphical interface that will generate a script for them, or combine both methods. Its platform independence is achieved through use of the wxPython widget library for the application and OpenGL for graphics calls. It is also capable of generating and delivering auditory stimuli.
The project was initially supported only by volunteer code and forum contributions alongside grants from The Royal Society, The University of Nottingham, Wellcome Trust, and BBSRC project. A 2018 grant from the Wellcome Trust allowed for hiring of a full-time staff.
According to its usage statistics page, Psychopy was launched on more than 20,000 different computers in November, 2018, and has gained relative usage by month every year since its initial release in 2003.

## History and versions

PsychoPy is continually updated with 5-10 releases each year, containing new features and bug fixes. Here are some major releases in the history of PsychoPy:
* PsychoPy : library and code editor
** 2002: PsychoPy was originally written by Peirce as a proof of concept - that a high-level scripting language could generate experimental stimuli in real time (existing solutions, such as Psychtoolbox, had to pre-generate movies or use CLUT animation techniques). The project was initially registered on sourceforge.net under the name "psychpy" on 14 March 2002.
** 2003-2005: this was extended to be able to generate experiments in the author's lab at Nottingham University and made available as an open source project on the internet. At this time PsychoPy was a library (Python package) that could be imported by Python scripts. Installing was complex because of the dependencies.
** 2006: An editor was added, so that users could use PsychoPy as an 'application' rather than a library
** April 2009: Version 1.0 released, including all main features of the library
* PsychoPy2 : addition of the graphical Builder interface. Note that, although this phase of development gave the application the name PsychoPy2, version 2.0 itself was never released.
** September 2009: Version 1.50 released, including a preview of new GUI interface. This new interface, the Builder view, allowed users to generate a very wide range of experiments without a knowledge of programming.
** April 2011: Version 1.64 Used for both research and undergraduate teaching at various universities. Over 1500 users per month worldwide.
** June 2013: Version 1.77 released, including ioHub for faster (asynchronous) polling of hardware.
** September 2014: Version 1.81 released, including the ability to specify PsychoPy version in the experiment. PsychoPy will then load this version during run-time, regardless of the version installed - including future versions.
** July 2016: User support forum migrated to hosted service by Discourse.com (from googlegroups)
** March 2018: Version 1.90 released, first version with Python 3 support.
* PsychoPy3 : running studies online
** Jan 2018: Wellcome Trust Technology Development Grant awarded to fund development of online experiment support
** August 2018: Official launch of PsychoPy3 (several beta releases followed) and pavlovia.org website to support hosting and sharing of studies
** Jan 2019: Support for PC connected Oculus VR headsets.

## Key people

A large number of people have contributed to the project over the years, in terms of code, but also by supporting users on the community forum. A few of the major contributors are listed below:
* Jonathan Peirce
* Jeremy Gray
* Michael MacAskill
* Sol Simpson
* Richard Höchenberger
* Alain Pitiot
* David Bridges
* Jonas Lindeløv
* Erik Kastman
* Hiroyuki Sogo
* Matthew Cutone
* Damien Mannion
* Yaroslav Halchenko