.. _overview:

Overview
=====================================

|PsychoPy| is an `open-source <https://en.wikipedia.org/wiki/Open_source>`_ package for running experiments in `Python`_ (a real and free alternative to Matlab). |PsychoPy| combines the graphical strengths of `OpenGL <https://www.opengl.org/>`_ with simple Python syntax to give scientists a free and simple stimulus presentation and control package. It is used by many labs worldwide for psychophysics, cognitive neuroscience and experimental psychology.

.. raw:: html

    <iframe width="560" height="315" src="https://www.youtube.com/embed/aZ00WchEbdw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

You can now use |PsychoPy| to run studies online! Thanks to it's Javascript sister library `PsychoJS <https://psychopy.github.io/psychojs/>`_ the easiest way to launch studies online from |PsychoPy| is using |Pavlovia|. You can see the large number of institutes using |Pavlovia| for their research on the `Pavlovia Licensees <https://pavlovia.org/licensees>`_ page.

Features
----------------
There are many advantages to using |PsychoPy|, but here are some of the key ones

- Simple install process (a standalone environment)
- A wide variety of `learning resources <https://workshops.psychopy.org/teaching/index.html>`_
- An active `user forum <https://discourse.psychopy.org/>`_ for help and support
- Precise timing `(Bridges et al., 2021) <https://peerj.com/articles/9414/>`_
- :ref:`builder` interface to guide experiment creation with minimal coding
- :ref:`coder` interface for those that like to program from scratch (see :ref:`code` for the best of both worlds! Make experiments quickly using Builder and add code snippets for maximum flexibility)
- take experiments online with `Pavlovia.org <https://pavlovia.org/>`_ (see :ref:`online`)
- Platform independent - run the same script on Win, macOS or Linux
- Flexible :ref:`stimulus units <units>` (degrees, cm, or pixels)
- Wide variety of stimuli (images, text, gratings, random dots, noise, movies, sounds)
- Input from keyboard, mouse, microphone or button boxes
- Compatible with a range of hardware (EEG, Eyetracking, fMRI, Spectrascan, Minolta, Cambridge Research Systems Bits++, Cedrus response boxes (RB7xx series))
- Multi-monitor support
- Automated monitor calibration (for supported photometers)


A sustainable open-source model
--------------------------------
`Open-source <https://en.wikipedia.org/wiki/Open_source>`_  and `Open Science <https://en.wikipedia.org/wiki/Open_science>`_ is at the heart of our community. Because |PsychoPy| is open source, you can download it and modify the package if you don't like it. And if you make changes that others might use then please consider giving them back to the community via the `github page <https://github.com/psychopy/psychopy>`_. |PsychoPy| has been written and provided to you absolutely for free and it is thanks to a large number of `dedicated contributors <https://github.com/psychopy/psychopy/graphs/contributors>`_ that is can keep getting better and better - so please do contribute!

As |PsychoPy| grew in popularity, it became clear that developing it "as a side project" in researchers spare time was not going to be sustainable. `Pavlovia.org <https://pavlovia.org/>`_ provides a revenue to sustain ongoing development. We have been very careful with our `pricing <https://pavlovia.org/docs/store/pricing>`_ to ensure a cost that is as accessible as possible whilst still providing sufficient revenue to keep developing professional tools. The aim is that we can keep developing great research software, that is still free for most users (you can still run your study offline and share your experiment with other researchers using |Pavlovia| for free), but now we have funding support to employ full-time `staff <https://opensciencetools.org/#people>`_ to work on it!


System requirements
----------------------
Although |PsychoPy| runs on a wide variety of hardware, and on Windows, macOS or Linux, it really does benefit from a decent graphics card. Get an ATI or nVidia card that supports OpenGL 2.0. *Avoid built-in Intel graphics chips (e.g. GMA 950)*

.. _Python: https://www.python.org
