The Pavlovia environment§


What is PsychoJS?§

When we make an experiment in PsychoPy builder, it is writing our experiment in Python code under the hood. Now it also writes our experiment to JavaScript via PsychoPy’s sister library PsychoJS.


What is PsychoJS?§

If you prefer to write experiments in pure code, you can write experiments purely in Javascript using PsychoJS, but in general it will be more flexible, less bug prone and easier to share with non-coders if you use Builder.


What is Pavlovia?§

Once we have our experiment written in JS, we need a way to “host” it online. Pavlovia. is a secure server for running experiments and storing data but it is also a good way to share your experiments publically with other researchers! Pavlovia is fully GDPR complient.




What is free, what costs and why?§

There are many features that we can use for free in pavlovia such as :

But to support the ongoing development of PsychoPy (which has been developed for free for years by dedicated contributors) a small cost is introduced for storing data from experiments you run.


Finding openly shared experiments§

There are two ways we can find and use existing experiments from Pavlovia:


Finding shared experiments from Pavlovia itself§

In the explore. tab each experiment has it’s own icon. You can choose to run the experiment (if it is set to running) or view the code <>


Finding shared experiments from Pavlovia itself§

We can then fork the experiment to our own “namespace” or a selected “gitlab group”.


Finding shared experiments from Pavlovia itself§

Finally, we would use the search icon inside PsychoPy to search and sync:


Finding shared experiments from PsychoPy§

Alternatively, we could just search from inside PsychoPy itself and “Fork +Sync” all at once


Finding shared experiments from PsychoPy§

Since the second method is easier than the first, you might wonder “why bother” with the first approach?



Benefits of GitLab (the important bits):
  • Fork existing projects
  • Version control
  • Add lab members to projects to work on the same files
  • Easy sharing of your task (open science)

Version control§


You can see when the last changes were made to the task by looking at the commit history.


Version control§

If you click on the change you can see deletions (in red) and insertions (in green)


Version control§

You can browse the repository at that point in history:


Imagine you have a working task, you then make a bunch of changes, and it doesn’t work. If you commit little and often you can easily revert those changes.


Adding team members§

To add members to your own project, you can use the settings>members option where you can search and invite collaborators.


Making your task public§

You can change the visibility of your task at any time under permissions.


Making your task public§

One thing to note is that once you make your project “public” the data file stored there will also be public.
  • good as allows easy data sharing
  • Something to bare in mind if you are collecting protected data

Exercises (10-15 mins)§

Let’s get some practice using pavlovia.org!

  1. try forking a task you like (hint: those in the ‘demos’ group can be useful)
  2. try searching that project from your local psychopy
  3. make a small edit
  4. upload and see if the change shows on gitlab!
  5. add someone else in your breakout room as a team member

NB. don’t forget to give stars to the projects you like! this could help future researchers picking tasks!