From 21539845af628332f2457a1d9ceec4afad49f6bc Mon Sep 17 00:00:00 2001 From: Jon Peirce Date: Wed, 22 Jul 2026 17:42:35 +0100 Subject: [PATCH 1/3] Added comparison pages for 5 other packages --- .../about/comparing_PsychoPy_and_EPrime.rst | 59 +++++++++++++++++++ .../about/comparing_PsychoPy_and_Gorilla.rst | 40 +++++++++++++ .../comparing_PsychoPy_and_OpenSesame.rst | 51 ++++++++++++++++ .../comparing_PsychoPy_and_Psychtoolbox.rst | 55 +++++++++++++++++ .../about/comparing_PsychoPy_and_jsPsych.rst | 41 +++++++++++++ source/about/index.rst | 13 +++- 6 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 source/about/comparing_PsychoPy_and_EPrime.rst create mode 100644 source/about/comparing_PsychoPy_and_Gorilla.rst create mode 100644 source/about/comparing_PsychoPy_and_OpenSesame.rst create mode 100644 source/about/comparing_PsychoPy_and_Psychtoolbox.rst create mode 100644 source/about/comparing_PsychoPy_and_jsPsych.rst diff --git a/source/about/comparing_PsychoPy_and_EPrime.rst b/source/about/comparing_PsychoPy_and_EPrime.rst new file mode 100644 index 0000000..d484175 --- /dev/null +++ b/source/about/comparing_PsychoPy_and_EPrime.rst @@ -0,0 +1,59 @@ +.. _psychopyVersusEPrime: + +Comparing PsychoPy with E-Prime +===================================== + +If you're looking for an alternative to E-Prime then PsychoPy is an excellent option! + +Both applications provide a graphical user interface, where you can add code snippets if you wish, and both will output the entire script for you to view and learn from. E-Prime's script is based on Visual Basic programming language, whereas PsychoPy is built on the more modern Python language. + +Both offer millisecond-precise timing and a range of stimuli, although PsychoPy has a slightly wider range and the option for stimulus updates to be every screen refresh. + +But the big key difference is price. PsychoPy is free and open source (despite having a professional full-time developer team) whereas E-Prime charges $995.00 for a single-user license. + +Flexible dynamic stimulus parameters +------------------------------------ + +PsychoPy offers a wider range of stimuli: like drifting gratings, “brush” components for drawing inputs, random dot kinematograms, as well as the standard images and movies that E-Prime offers. + +PsychoPy also makes it very easy to manipulate stimulus attributes frame-by-frame within its graphical interface. You can simply set almost any parameter to update “on every frame”. If this is possible in E-Prime at all (from looking at the documentation it appears not to be!) then it would certainly be “non-trivial”. + +Lab-based studies +------------------ + +Both PsychoPy and E-Prime were designed firstly for in-lab studies and can interact with a range of hardware including EEG, fMRI and eye tracking devices, although for E-Prime most of these devices require a plugin and incur an additional $1,995.00 charge per plugin. + +Timing +------ + +Both E-Prime and PsychoPy have excellent timing, as can be seen in the `Timing megastudy (Bridges et al, 2020)`_. +PsychoPy is also unique in providing `Timing Validator`_ components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. + +.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ +.. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine + +Surveys +------- + +E-Prime isn't really suited to creating surveys. Although one could manually create each question on its own page, this wouldn't be as powerful as dedicated tools, such as Qualtrics. + +PsychoPy's Python library also has somewhat limited built-in support for survey-style studies but, when used in web-based studies, PsychoPy has the added benefit of being able to connect with Pavlovia surveys which are purpose built for this and do have roughly feature parity with Qualtrics. You can create a survey using Pavlovia Survey creator in the browser and even import a Qualtrics .qsf file. + +Updates +------- + +New versions of PsychoPy are released frequently, with major versions twice per year and bug-fix updates frequently in between. E-Prime, by comparison, has major releases very rarely indeed and its `last bug-fix release was in 2024 `__ although there is a `list of known issues `__. + +Pricing and vendor lock-in +-------------------------- + +E-Prime costs roughly $995 per concurrent license, and adds a further $1,995.00 if you want to use a plug-in for EEG or eye-tracking extensions (for each extension). Its experiment file formats are proprietary and its programming language (Visual Basic) is no longer widely used in any other context. + +PsychoPy is free and open-source software. Running studies online using Pavlovia does incur a small charge but even that is small compared to standard lab use of E-Prime (£0.26 per respondent or £2000 for an unlimited institutional licence). PsychoPy also offers paid consultancy and training options. PsychoPy uses the Python language which is widely used in many other contexts, and its experiment file formats are open and human-readable (XML-based and with a public format description). + +Community +--------- + +E-Prime is historically the more widely-used option, having been very much the dominant package in the early 2000s, when PsychoPy was just being conceived. + +While it isn't clear how many users E-Prime still has now, `PsychoPy has over 50,000 monthly active users `_ and a very active `users forum `_ with over 15,000 members. \ No newline at end of file diff --git a/source/about/comparing_PsychoPy_and_Gorilla.rst b/source/about/comparing_PsychoPy_and_Gorilla.rst new file mode 100644 index 0000000..89d00b6 --- /dev/null +++ b/source/about/comparing_PsychoPy_and_Gorilla.rst @@ -0,0 +1,40 @@ +.. _psychopyVersusGorilla: + +Comparing PsychoPy with Gorilla +===================================== + +Gorilla is a comparable experiment builder, in some ways, to PsychoPy. It's very easy to use for simple experiments. It has the added convenience that it can be used entirely online without installing any software, but it is less suitable for lab-based studies, especially where millisecond-precise timing, or external hardware, are needed. Gorilla is also considerably more expensive. + +Flexible dynamic parameters +--------------------------- + +PsychoPy allows you to control every aspect of every stimulus. For instance, while Gorilla and PsychoPy both support images as stimuli, in PsychoPy you can rotate, flip, stretch your image, or even set its transparency or contrast, all without writing a line of code. None of those are possible in Gorilla's Image Node settings. + +Not only do PsychoPy stimuli support a very rich set of parameters, but these can be updated on every trial or even every screen refresh! That means stimuli can be made to move, resize, bounce, or alter their transparency constantly, making for more dynamic interactive experiments. + +Lab-based studies +----------------- + +Because PsychoPy is a Python-based desktop app, you can connect with external devices such as EEG, eye trackers, fMRI and photometers relatively easily (anything possible with Python code can be done in PsychoPy). Because Gorilla is a browser based tool it cannot directly communicate with external devices like serial ports without an additional bridge (e.g. a local application that connects the web browser with the hardware device via websockets). + +Conversely PsychoPy can generate either a web-based JavaScript study, which has similar limitations to Gorilla, it can also generate a Python script that runs entirely locally and can easily be connected to devices such as eyetrackers (including Tobii, SR Research, Pupil Labs, EyeLogic devices), brain imaging equipment (such as EEG, fMRI, and fNIRS studies), physiology hardware (such as BIOPAC devices) and calibration devices such as photometers. + +The timing of Gorilla (and any web-based experiments, including when you use PsychoPy in web-based studies via Pavlovia) is also less precise. Gorilla staff sometimes claim “millisecond precision” but while most JavaScript packages use a millisecond precise timer that does not equate with millisecond-precise timing. The critical issue is that web-based packages cannot very precisely detect when a screen refresh occurred or when a sound actually reached the speakers. If you measure a reaction time but don't really know when the stimulus started, then it doesn't matter how precise your timer is. For analogy, consider measuring a sprint race with a stopwatch. The stopwatch may have incredible precision, but if you hit the button with your thumb the precision is lost. See the `Timing Megastudy`_ for details of what is actually possible with online and desktop packages. + +.. _Timing Megastudy: https://peerj.com/articles/9414/ + +Surveys +------- + +Both PsychoPy and Gorilla have solutions to present surveys and questionnaires online. For PsychoPy the easiest approach is to use a Pavlovia Survey. Both Pavlovia Surveys and Gorillas questionnaire builder support a range of question types including free-text, rating scales, multiple choice grids and rankings. Pavlovia Surveys offer some question types not available in Gorilla Questionnaire builder such as dynamic matrices, signature responses and file uploads. Both platforms offer the option to directly import a .qsf file from Qualtrics. + +For local PsychoPy experiments (not using Pavlovia surveys) there is a form component, but the range of question types here are more limited. You can still use type responses, radio choice options and sliders. + +Pricing +------- + +PsychoPy is completely free and always will be. That means you can build an experiment, run it on your local machine and gather data at no cost. + +If you want to run a study _online_ you can host the study using Pavlovia.org. Pavlovia is a paid-for service, but very low cost (£0.26 per participant or £2000 for a whole institution with unlimited use). By comparison, with Gorilla you can build your experiment for free, but you can't run it and collect data without credits or a licence (£1.09 per participant or options ranging up to £11340 for a department licence with unlimited use - see this page for updates on Gorilla's pricing). + +Both Pavlovia and Gorilla teams can provide training via onboarding sessions and private webinars. To buy the unlimited Pavlovia license including private webinars costs £5,200 compared with £20,470 for Gorilla. diff --git a/source/about/comparing_PsychoPy_and_OpenSesame.rst b/source/about/comparing_PsychoPy_and_OpenSesame.rst new file mode 100644 index 0000000..3f25079 --- /dev/null +++ b/source/about/comparing_PsychoPy_and_OpenSesame.rst @@ -0,0 +1,51 @@ +.. _psychopyVersusPsychtoolbox: + +Comparing PsychoPy with Open Sesame +===================================== + +PsychoPy and Open Sesame are both python based. In fact, Open Sesame uses PsychoPy as one of its “backend” options (the Open Sesame documentation recommends the PsychoPy backend if good timing is required, although this is still not as good as PsychoPy itself, as explained below). + +Both applications provide a graphical user interface, where you can add code snippets if you wish. PsychoPy provides the option to view the code that the Builder interface generates and to write experiments by hand using Python using the “Coder” interface, if desired, neither of which are possible in Open Sesame. + +Flexible dynamic parameters +---------------------------- + +PsychoPy and Open Sesame differ in their focus for the user, PsychoPy is very temporal in nature (everything follows a time line or “flow”) whereas in Open Sesame the user visualises their experiment more spatially similar to a set of slides. + +Because of the temporal focus of the PsychoPy builder interface, it is very easy to manipulate stimulus attributes frame-by-frame via drop-down with no code needed. You can simply set almost any parameter to update “on every frame”. In Open Sesame, setting stimuli to be dynamic is not built-in but requires the addition of a “coroutines” plugin and has a more limited range of uses. + +Lab-based studies +------------------ + +Both PsychoPy and Open Sesame were designed firstly for in-lab studies and can therefore interact with a range of hardware including EEG, fMRI and eye tracking devices. + +Timing +------ + +PsychoPy has the more precise timing, as can be seen in the `Timing megastudy (Bridges et al, 2020)`_. Although Open Sesame is using the PsychoPy library as its recommended backend, it uses outdated functions within that library that have been superseded for timing reasons. As a result the keyboard timing and audio stimulus presentation, in particular, have notably poorer performance than PsychoPy itself and that can be seen in the above measurements. + +PsychoPy is also unique in providing `Timing Validator` components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. + +.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ +.. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine + +Surveys +------------------ + +It is possible to present survey-style questions in Open Sesame, much like you would in PsychoPy, through presenting text and different response types (e.g. rating scales and sliders). PsychoPy has the added benefit of Pavlovia surveys which run on survey.js, you can create a survey using pavlovia survey creator in browser and even import and Qualtrics .qsf file. This is not possible with Open Sesame. + +Pricing +------------------ + +Both PsychoPy and Open Sesame are free for building and running studies. For in lab studies they won't cost you anything. Both platforms also have community user forums and benefit from communities of enthusiastic open-source users. + +If you want to run a study online then PsychoPy offers a hosting service, pavlovia.org (costing £0.26 per respondent or £2000 for an unlimited institutional licence). Open Sesame has the option of JATOS or MindProbe servers, which are free but don't offer the security certification that Pavlovia does. Both PsychoPy and Open Sesame offer paid consultancy support for users needing help creating their experiments. + +Community +------------------ + +PsychoPy has a `larger developer/contributor team `__, a larger more active user community, and a proven business model where Open Science Tools is supported by related services (hosting of Pavlovia studies and provision of consultancy services) which is how PsychoPy itself remains free while employing several full-time developers. + +Open Sesame has seen much less recent development and is `almost entirely written by Sebastiaan Mathôt `__ (it has a “Bus Factor” of roughly “1” as a result). + +Both packages have a user forum. PsychoPy's forum has over 15,000 members and is very active, with 5-10 posts per day, whereas the `Open Sesame forum `__ typically has around 5 posts per month. diff --git a/source/about/comparing_PsychoPy_and_Psychtoolbox.rst b/source/about/comparing_PsychoPy_and_Psychtoolbox.rst new file mode 100644 index 0000000..f7696e1 --- /dev/null +++ b/source/about/comparing_PsychoPy_and_Psychtoolbox.rst @@ -0,0 +1,55 @@ +.. _psychopyVersusPsychtoolbox: + +Comparing PsychoPy with Psychtoolbox +===================================== + +Both PsychoPy and Psychophysics Toolbox (aka Psychtoolbox, PTB) are open-source software packages used to design and run experiments in neuroscience and psychology. PsychoPy is built on Python and provides a choice of either hand-writing the code (in nicely-formatted Python scripts) or the widely-used graphical "Builder" user interface. That makes it more accessible to users with limited programming experience, and also results in faster, more bug-free experiment creation for experienced programmers. + +Psychtoolbox experiments are created using MATLAB scripts. These are highly susceptible to user error, as the scripts are long and MATLAB is not well-designed for error-free programming methods. Psychtoolbox code is not object-oriented, for instance, and doesn't support named arguments to functions so all function calls contain long lists of arguments that are very hard to read and debug (was size the 3rd or the 4th parameter here?). + +Psychtoolbox also depends on the researcher having a MATLAB license (or using Gnu Octave) and now adds its own annual license fee on top, whereas PsychoPy is free, now and always, supported by a financially sustainable business model. + +Flexible dynamic parameters +---------------------------- + +Both PsychoPy and Psychtoolbox provide frame-by-frame control over stimulus attributes. This allows you to change many attributes of a stimulus (position, size, color and more) in a dynamic fashion. + +Lab-based studies +------------------ + +Both PsychoPy and Psychtoolbox were designed firstly for in-lab studies and can therefore interact with a range of hardware including EEG, fMRI and eye tracking. + +Some people, certainly Mario Kleiner, consider timing precision to be considerably better in Psychtoolbox, but measurements of that using Blackbox Toolkit hardware in the `Timing Megastudy (Bridges et al 2020)`_ found very little difference between them for lab-based studies. + +PsychoPy is also unique in providing `Timing Validator` components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. + +.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ +.. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine + +Online studies +------------------ + +PsychoPy can output its Builder-generated experiments to JavaScript and run them in a web browser. This allows you to run your experiments online, for instance using the Pavlovia.org platform. The timing of PsychoPy experiments in web browsers is not as precise as when they are run locally, and can't connect with local hardware, but is a useful option for many experiments. + +MATLAB doesn't run in browsers and nobody has made a Psychtoolbox port for JavaScript, so Psychtoolbox isn't suitable for online studies. + +Surveys +------------------ + +At present Psychtoolbox is not commonly used for surveys and questionnaires - it is possible to present survey style questions through presenting text and rating responses for example, but this isn't “out-of-box”. It has no built-in tools like Sliders or Radio buttons, for instance. + +PsychoPy was initially not created for surveys either, but does have a form component to present a range of basic question types in a survey style for local experiments. More recently, PsychoPy can be combined with Pavlovia surveys to present rich surveys and questionnaires online for remote testing. + +Pricing +------------------ + +PsychoPy is completely free and always will be, that means you can build an experiment, run it on as many local machines as you need and gather data at no cost. Recent releases of Psychtoolbox (3.2.20 or later) require a subscription model of 50 Euros per year for a single user on a single device or 250 Euros per year for 6 machines (This is currently the Early Bird rate advertised as of June 2026 `here `__). + +Community +------------------ + +PsychoPy has a larger `developer/contributor team `__ and a proven business model where Open Science Tools is supported by related services (hosting of Pavlovia studies and provision of consultancy services) which is how PsychoPy itself remains free despite having professional developer support. + +Psychtoolbox is `almost entirely written by Mario Kleiner `__, and therefore has a much lower “Bus Factor” (possibly just “1”). There have been frequent discussions in the vision science community and `calls on the website itself `__ about how to "save" Psychtoolbox. + +Both have a user forum (both using Discourse for the purpose) although PsychoPy's forum has over 15,000 members, compared with under 1000 for Psychtoolbox. diff --git a/source/about/comparing_PsychoPy_and_jsPsych.rst b/source/about/comparing_PsychoPy_and_jsPsych.rst new file mode 100644 index 0000000..1e79b3f --- /dev/null +++ b/source/about/comparing_PsychoPy_and_jsPsych.rst @@ -0,0 +1,41 @@ +.. _psychopyVersusJsPsych: + +Comparing PsychoPy with jsPsych +===================================== + +jsPsych is a JavaScript-based library for creating web-based experiments. PsychoPy is designed to run studies either in web-based environments (using JavaScript) or in the lab (using Python), where you benefit from millisecond timing and hardware connections (e.g. for neuroimaging, or eyetracking studies) that jsPsych can't provide. + +Unlike PsychoPy, jsPsych doesn't have a graphic user interface, so you do need to be comfortable with coding in JavaScript. PsychoPy allows you to choose to hand-write your scripts, to use the Builder graphical interface , or to combine snippets of code with Builder which is what most people do to maximise ease and flexibility. + +Flexible, dynamic parameters +---------------------------- + +jsPsych offers a range of “plugins” that allow you to create your study at the level of, essentially, a trial. For instance, if you want to collect the response of a participant to an image using the keyboard you would insert the `image-button-response` plugin and set the 14 or so settings for that plugin, such as stimulus size and position. What if you want two stimuli presented one after the other? Then you would use the `same-different-image`. What if you wanted to present a fixation point before, or in between, the two images… ah. Now you need to write your own code. What if you want to parametrically vary the orientation of the stimulus? Unfortunately, orientation isn't a setting, so you'll need to write your own. + +In PsychoPy the researcher gets to manipulate a more granular level, with settings for every stimulus and every response object. There are no "types" of trials (although there are some handy built-in templates) because the researcher is in control of what each routine is doing. PsychoPy stimuli support a very rich set of parameters (contrast, opacity, dimensions, orientation), all of which can be controlled independently. So, if you want multiple stimuli in your trial, just add them, as many as you like, and you can choose whether they come one after the other or one next to the other on screen. Not only that, nearly all PsychoPy parameters can also be updated not only on every trial but on every screen refresh! That means stimuli can be made to move, resize, bounce, or alter their transparency constantly, making for more dynamic interactive experiments. Unlike jsPsych, the stimuli being rendered by PsychoPy are also rendered in high-performance hardware-accelerated graphics (WebGL), which is why everything can be updated constantly, between screen refreshes. + +In short, in jsPsych you very quickly have to write the code to your own stimuli and you are probably limited in what can be achieved. In +PsychoPy, even advanced experiments can be created with very little (if any) code. + +Lab-based studies +------------------ + +PsychoPy is a Python-based desktop app so, for local lab-based experiments, you can connect with external devices such as EEG, eye trackers, fMRI and photometers relatively easily (anything possible with python code can be done in PsychoPy). +jsPsych is a browser based tool so it typically cannot directly communicate with external device ports like serial ports without an additional bridge software to connect the browser and the hardware. +Timing is also less good in browser-based studies, because JavaScript has poorer knowledge of when the screen has refreshed, as detailed in the `Timing Megastudy (Bridges et al 2020)`_. + +.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ + +Surveys +-------- + +Both PsychoPy and jsPsych have options for presenting surveys and questionnaires and both are based on the survey.js library. That means that the range of question types available in both platforms are very similar. Pavlovia.org provides an in-browser user interface to create and deploy surveys and questionnaires without the need for direct coding (although direct editing of the .json file is possible) whereas survey implementation with jsPsych would typically be code-based and require a hosting method (see pricing section). + +Pricing +-------- + +Both PsychoPy and jsPsych are free and open-source, meaning you can run in-lab studies for free with both platforms. For online studies requiring a server, you can host studies made on either platform on Pavlovia.org. Pavlovia is a paid for service, but with minimal costs (£0.26 per participant or £2000 for a whole institute unlimited use). + +With jsPsych, there is an option for free with Jatos and MindProbe (although this comes with no security certifications, whereas Pavlovia is ISO 27001 certified for institutions that need secure data collection). jsPsych studies can also run on cognition.run where unlimited task uploads costs $2990/per year. Or you can self-host a Jatos server, but then the staff time required might be more expensive and, again, the security would likely be less strong if you aren't very highly trained in server security maintenance (independent penetration testing, for instance, costs thousands of pounds). + +Both PsychoPy and jsPsych have free community support forums and benefit from an enthusiastic community of open-source supporters, amd there are also options with both platforms to pay for professional support if desired. For PsychoPy and Pavlovia we charge £70 an hour or support can be added onto your Pavlovia institute licence, and for jsPsych you can contact the creators directly for a quote or you can purchase organisation level support with Mindprobe for 5000 Euros per year. diff --git a/source/about/index.rst b/source/about/index.rst index 1db4838..3695618 100755 --- a/source/about/index.rst +++ b/source/about/index.rst @@ -21,7 +21,18 @@ About |PsychoPy| overview credits contributing - + +Comparisons with other packages: + +.. toctree:: + :maxdepth: 1 + + comparing_PsychoPy_and_EPrime + comparing_PsychoPy_and_Gorilla + comparing_PsychoPy_and_jsPsych + comparing_PsychoPy_and_OpenSesame + comparing_PsychoPy_and_Psychtoolbox + .. _citingPsychoPy: Citing |PsychoPy| From 4a9ce3770baba044be3b16f227c0e345bf5e15d6 Mon Sep 17 00:00:00 2001 From: Jon Peirce Date: Thu, 23 Jul 2026 11:51:48 +0100 Subject: [PATCH 2/3] Updates to comparison pages (tweaks and formatting) --- .../about/comparing_PsychoPy_and_EPrime.rst | 17 +++++++++---- .../about/comparing_PsychoPy_and_Gorilla.rst | 3 +++ .../comparing_PsychoPy_and_OpenSesame.rst | 24 +++++++++++-------- .../comparing_PsychoPy_and_Psychtoolbox.rst | 4 ++-- .../about/comparing_PsychoPy_and_jsPsych.rst | 7 +++--- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/source/about/comparing_PsychoPy_and_EPrime.rst b/source/about/comparing_PsychoPy_and_EPrime.rst index d484175..54d0ff0 100644 --- a/source/about/comparing_PsychoPy_and_EPrime.rst +++ b/source/about/comparing_PsychoPy_and_EPrime.rst @@ -9,19 +9,28 @@ Both applications provide a graphical user interface, where you can add code sni Both offer millisecond-precise timing and a range of stimuli, although PsychoPy has a slightly wider range and the option for stimulus updates to be every screen refresh. -But the big key difference is price. PsychoPy is free and open source (despite having a professional full-time developer team) whereas E-Prime charges $995.00 for a single-user license. +Another key difference is price. PsychoPy is free and open source, despite having a professional full-time developer team, whereas E-Prime charges $995.00 for a single-user license, and much more if you need hardware plugins. Flexible dynamic stimulus parameters ------------------------------------ -PsychoPy offers a wider range of stimuli: like drifting gratings, “brush” components for drawing inputs, random dot kinematograms, as well as the standard images and movies that E-Prime offers. +PsychoPy offers a wider range of stimuli: like drifting gratings, “brush” components for drawing inputs, and Random Dot Kinematograms (RDKs), as well as the standard images and movies that E-Prime offers. PsychoPy also makes it very easy to manipulate stimulus attributes frame-by-frame within its graphical interface. You can simply set almost any parameter to update “on every frame”. If this is possible in E-Prime at all (from looking at the documentation it appears not to be!) then it would certainly be “non-trivial”. Lab-based studies ------------------ -Both PsychoPy and E-Prime were designed firstly for in-lab studies and can interact with a range of hardware including EEG, fMRI and eye tracking devices, although for E-Prime most of these devices require a plugin and incur an additional $1,995.00 charge per plugin. +Both PsychoPy and E-Prime were designed for in-lab studies and can interact with a range of hardware including EEG, fMRI and eye tracking devices although, for E-Prime, most of these devices require a plugin and incur an additional $1,995.00 charge for each. + +Note also that E-Prime only runs on Windows, whereas PsychoPy runs on Windows, Mac and Linux (or any device with a browser, if you use the JavaScript/Pavlovia output option). + +Web-based studies +------------------ + +PsychoPy experiments can output either Python (for local studies) or JavaScript scripts (for web-based studies). These can run in any device with a modern browser, including Windows, Mac, Linux, iOS, Android, and ChromeOS. When PsychoPy studies run on the web, using Pavlovia.org, you send participants a link to the study, they open it in their browser and the data files are automatically sent back to your Pavlovia account. These web-based studies can also connect seamlessly to Pavlovia Surveys, for Qualtrics-style surveys and questionnaires. + +E-Prime is Windows-only and doesn't have a JavaScript output option, so it can't be used for browser-based studies. During the pandemic of 2020, PSTNet did introduce E-Prime Go, which allows E-Prime experiments to be compiled into self-contained apps that can be sent to participants to run on their own machines. Again, the participant must be running Windows and when the study is completed the must follow whatever instructions you give them to send the data back to you. This is a much more cumbersome process than the automatic data collection that Pavlovia provides. Timing ------ @@ -29,7 +38,7 @@ Timing Both E-Prime and PsychoPy have excellent timing, as can be seen in the `Timing megastudy (Bridges et al, 2020)`_. PsychoPy is also unique in providing `Timing Validator`_ components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. -.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ +.. _Timing Megastudy (Bridges et al, 2020): https://peerj.com/articles/9414/ .. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine Surveys diff --git a/source/about/comparing_PsychoPy_and_Gorilla.rst b/source/about/comparing_PsychoPy_and_Gorilla.rst index 89d00b6..8132239 100644 --- a/source/about/comparing_PsychoPy_and_Gorilla.rst +++ b/source/about/comparing_PsychoPy_and_Gorilla.rst @@ -5,6 +5,8 @@ Comparing PsychoPy with Gorilla Gorilla is a comparable experiment builder, in some ways, to PsychoPy. It's very easy to use for simple experiments. It has the added convenience that it can be used entirely online without installing any software, but it is less suitable for lab-based studies, especially where millisecond-precise timing, or external hardware, are needed. Gorilla is also considerably more expensive. +PsychoPy provides the option to run the same study locally in the lab using Python, or online using JavaScript. + Flexible dynamic parameters --------------------------- @@ -23,6 +25,7 @@ The timing of Gorilla (and any web-based experiments, including when you use Psy .. _Timing Megastudy: https://peerj.com/articles/9414/ + Surveys ------- diff --git a/source/about/comparing_PsychoPy_and_OpenSesame.rst b/source/about/comparing_PsychoPy_and_OpenSesame.rst index 3f25079..df95857 100644 --- a/source/about/comparing_PsychoPy_and_OpenSesame.rst +++ b/source/about/comparing_PsychoPy_and_OpenSesame.rst @@ -3,7 +3,7 @@ Comparing PsychoPy with Open Sesame ===================================== -PsychoPy and Open Sesame are both python based. In fact, Open Sesame uses PsychoPy as one of its “backend” options (the Open Sesame documentation recommends the PsychoPy backend if good timing is required, although this is still not as good as PsychoPy itself, as explained below). +PsychoPy and Open Sesame are both python based. In fact, Open Sesame uses PsychoPy as one of its “backend” options and the Open Sesame documentation recommends the PsychoPy backend if good timing is required, but this is still _not_ as good as PsychoPy itself, as explained below. Both applications provide a graphical user interface, where you can add code snippets if you wish. PsychoPy provides the option to view the code that the Builder interface generates and to write experiments by hand using Python using the “Coder” interface, if desired, neither of which are possible in Open Sesame. @@ -22,30 +22,34 @@ Both PsychoPy and Open Sesame were designed firstly for in-lab studies and can t Timing ------ -PsychoPy has the more precise timing, as can be seen in the `Timing megastudy (Bridges et al, 2020)`_. Although Open Sesame is using the PsychoPy library as its recommended backend, it uses outdated functions within that library that have been superseded for timing reasons. As a result the keyboard timing and audio stimulus presentation, in particular, have notably poorer performance than PsychoPy itself and that can be seen in the above measurements. +PsychoPy has the more precise timing, as can be seen in the `Timing Megastudy (Bridges et al, 2020)`_. Although Open Sesame is using the PsychoPy library as its recommended backend, it uses outdated functions within that library that have been superseded for timing reasons. As a result the keyboard timing and audio stimulus presentation, in particular, have notably poorer performance than PsychoPy itself and that can be seen in the above measurements. -PsychoPy is also unique in providing `Timing Validator` components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. - -.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ -.. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine +PsychoPy is also unique in providing `Timing Validator`_ components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. Surveys ------------------ -It is possible to present survey-style questions in Open Sesame, much like you would in PsychoPy, through presenting text and different response types (e.g. rating scales and sliders). PsychoPy has the added benefit of Pavlovia surveys which run on survey.js, you can create a survey using pavlovia survey creator in browser and even import and Qualtrics .qsf file. This is not possible with Open Sesame. +It is possible to present survey-style questions in Open Sesame, much like you would in PsychoPy, through presenting text and different response types (e.g. rating scales and sliders). + +PsychoPy has the added benefit of Pavlovia surveys which run on survey.js. You can create a survey using Pavlovia survey creator in browser (no need to install software) and you can even import a Qualtrics .qsf file. This is not possible with Open Sesame. Pricing ------------------ -Both PsychoPy and Open Sesame are free for building and running studies. For in lab studies they won't cost you anything. Both platforms also have community user forums and benefit from communities of enthusiastic open-source users. +Both PsychoPy and Open Sesame are free for building and running studies. For in-lab studies they won't cost you anything. If you want to run a study online then PsychoPy offers a hosting service, pavlovia.org (costing £0.26 per respondent or £2000 for an unlimited institutional licence). Open Sesame has the option of JATOS or MindProbe servers, which are free but don't offer the security certification that Pavlovia does. Both PsychoPy and Open Sesame offer paid consultancy support for users needing help creating their experiments. Community ------------------ +Both platforms also have community user forums and benefit from communities of enthusiastic open-source users. + PsychoPy has a `larger developer/contributor team `__, a larger more active user community, and a proven business model where Open Science Tools is supported by related services (hosting of Pavlovia studies and provision of consultancy services) which is how PsychoPy itself remains free while employing several full-time developers. -Open Sesame has seen much less recent development and is `almost entirely written by Sebastiaan Mathôt `__ (it has a “Bus Factor” of roughly “1” as a result). +Open Sesame has seen much less recent development and is `almost entirely written by Sebastiaan Mathôt `__. It has a “Bus Factor” of roughly “1” as a result, meaning that if Sebastiaan stops work on it he project will likely not be maintained any further. + +Both packages have a user forum. `PsychoPy's forum `__ has over 15,000 members and is very active, with 5-10 posts per day, whereas the `Open Sesame forum `__ typically has around 5 posts per month. -Both packages have a user forum. PsychoPy's forum has over 15,000 members and is very active, with 5-10 posts per day, whereas the `Open Sesame forum `__ typically has around 5 posts per month. +.. _Timing Megastudy (Bridges et al, 2020): https://peerj.com/articles/9414/ +.. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine \ No newline at end of file diff --git a/source/about/comparing_PsychoPy_and_Psychtoolbox.rst b/source/about/comparing_PsychoPy_and_Psychtoolbox.rst index f7696e1..a1d1e87 100644 --- a/source/about/comparing_PsychoPy_and_Psychtoolbox.rst +++ b/source/about/comparing_PsychoPy_and_Psychtoolbox.rst @@ -21,7 +21,7 @@ Both PsychoPy and Psychtoolbox were designed firstly for in-lab studies and can Some people, certainly Mario Kleiner, consider timing precision to be considerably better in Psychtoolbox, but measurements of that using Blackbox Toolkit hardware in the `Timing Megastudy (Bridges et al 2020)`_ found very little difference between them for lab-based studies. -PsychoPy is also unique in providing `Timing Validator` components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. +PsychoPy is also unique in providing `Timing Validator`_ components to allow easy checking of stimulus timing during experiment execution, on relatively cheap hardware such as the Cedrus Riponda button box. This means that, even if your operating system or monitor causes timing issues that the software cannot know about, these can be automatically detected by the PsychoPy using the validator hardware. .. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ .. _Timing Validator: https://psychopy.org/builder/components/VisualValidatorRoutine.html#visualvalidatorroutine @@ -29,7 +29,7 @@ PsychoPy is also unique in providing `Timing Validator` components to allow easy Online studies ------------------ -PsychoPy can output its Builder-generated experiments to JavaScript and run them in a web browser. This allows you to run your experiments online, for instance using the Pavlovia.org platform. The timing of PsychoPy experiments in web browsers is not as precise as when they are run locally, and can't connect with local hardware, but is a useful option for many experiments. +PsychoPy can output its Builder-generated experiments to JavaScript and run them in a web browser. This allows you to run your experiments online, for instance using the Pavlovia.org platform. The timing of experiments in web browsers is never going to be as precise as when they are run locally (despite what some online vendors will tell you), and can't connect with local hardware. Nonetheless online deployment is a useful option for many studies and has other advantages such as a more diverseand automated recruitment. MATLAB doesn't run in browsers and nobody has made a Psychtoolbox port for JavaScript, so Psychtoolbox isn't suitable for online studies. diff --git a/source/about/comparing_PsychoPy_and_jsPsych.rst b/source/about/comparing_PsychoPy_and_jsPsych.rst index 1e79b3f..a896263 100644 --- a/source/about/comparing_PsychoPy_and_jsPsych.rst +++ b/source/about/comparing_PsychoPy_and_jsPsych.rst @@ -14,17 +14,16 @@ jsPsych offers a range of “plugins” that allow you to create your study at t In PsychoPy the researcher gets to manipulate a more granular level, with settings for every stimulus and every response object. There are no "types" of trials (although there are some handy built-in templates) because the researcher is in control of what each routine is doing. PsychoPy stimuli support a very rich set of parameters (contrast, opacity, dimensions, orientation), all of which can be controlled independently. So, if you want multiple stimuli in your trial, just add them, as many as you like, and you can choose whether they come one after the other or one next to the other on screen. Not only that, nearly all PsychoPy parameters can also be updated not only on every trial but on every screen refresh! That means stimuli can be made to move, resize, bounce, or alter their transparency constantly, making for more dynamic interactive experiments. Unlike jsPsych, the stimuli being rendered by PsychoPy are also rendered in high-performance hardware-accelerated graphics (WebGL), which is why everything can be updated constantly, between screen refreshes. -In short, in jsPsych you very quickly have to write the code to your own stimuli and you are probably limited in what can be achieved. In -PsychoPy, even advanced experiments can be created with very little (if any) code. +In short, in jsPsych you largely have to write the code to your own stimuli and you are probably limited in what can be achieved. In PsychoPy, even advanced experiments can be created with very little (if any) code, and these are more easy to share and re-use because other researchers (and "future you") can see exactly what was done in the Builder interface, rather than having to read and understand a long script. Lab-based studies ------------------ PsychoPy is a Python-based desktop app so, for local lab-based experiments, you can connect with external devices such as EEG, eye trackers, fMRI and photometers relatively easily (anything possible with python code can be done in PsychoPy). jsPsych is a browser based tool so it typically cannot directly communicate with external device ports like serial ports without an additional bridge software to connect the browser and the hardware. -Timing is also less good in browser-based studies, because JavaScript has poorer knowledge of when the screen has refreshed, as detailed in the `Timing Megastudy (Bridges et al 2020)`_. +Timing is also less good in browser-based studies, because JavaScript has poorer knowledge of when the screen has refreshed, as detailed in the `Timing Megastudy (Bridges et al, 2020)`_. -.. _Timing Megastudy (Bridges et al 2020): https://peerj.com/articles/9414/ +.. _Timing Megastudy (Bridges et al, 2020): https://peerj.com/articles/9414/ Surveys -------- From c38cf14dafc85ebb06dff476ed3b0db42ef55b5f Mon Sep 17 00:00:00 2001 From: Jon Peirce Date: Thu, 23 Jul 2026 11:52:31 +0100 Subject: [PATCH 3/3] How to turn off api (avoid seg fault) when building on mac --- source/conf.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/conf.py b/source/conf.py index 7c20e21..94550bc 100755 --- a/source/conf.py +++ b/source/conf.py @@ -110,8 +110,10 @@ # List of directories, relative to source directory, that shouldn't be searched # for source files. -exclude_trees = [] - +# exclude_patterns=['api/**/*'] # doesn't work! :shrug: +# can include on commandline like -D "exclude_patterns=['api', 'api/*', 'api/*/*', 'api/*/*/*']" (BUT no spaces around the = sign) +# exclude_patterns=['api', 'api/*', 'api/*/*', 'api/*/*/*'] + # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None