Unlike most packages it provides users with a choice of interface; generate experiments by writing Python scripts or through a graphical interface which will generate a script for them (or by a combination of the two).
Its platform independence is achieved through the use of the wxPython widget library for the application and OpenGL for graphics calls.
2003: 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).
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 (but with some bugs in the win32 installer)
September 2009: Version 1.50 released, including various bug fixes to the underlying library and preview of new GUI interface, to become PsychoPy2. This new interface, the Builder view, allowed users to generate a very wide range of experiments without a knowledge of programming.
April 2011: Used for both research and undergraduate teaching at various universities. Over 1500 users per month worldwide. Still at Version 1.64 (not yet v2.00), due to remaining issues especially with the Builder interface.