| Reference | Downloads | Github

First steps in online experiments

Dear PsychoPy community,

I was really excited toward the announcement of PsychoPy3 and its support in online experiments but now I find myself a little bit lost.

The experiment I which to run seems to me too complicated to be built in the builder (a mix of priming and stop-signal task with tracking procedures), however, I do feel comfortable with writing scripts in the coder.

As far as I understand, PsychoPy3 is supporting transforming of python to HTML through the builder only, am I right?

If so, my basic question is: If I want to code my online experiment in PsychoPy, is that means that I’ll have to write it in JavaScript using PsychoJS?


Hi @S_H,

There are many complicated experiments that can be built using the Builder interface that may or may not need to take advantage of the code component. Take a look at the choice reaction time task, the dynamic selective inspect task, Corsi blocks, Posner cueing, and the balloon analogue risk task (BART) online at

In terms of writing the Javascript (JS) code, you do not need to worry as Builder will output the PsychoJS code for you, however the JS code in the code components will need to be written by yourself using the new dual view code component that allows you to view your Python and JS code side by side, making the transpiling from Python to JS a lot easier. Some of the tasks on Pavlovia use the code component in Builder (e.g., see Corsi blocks or BART) and will give you a good demonstration of how to convert the Python code to JS.

I would advise that in the first instance, you get your task running locally using PsychoPy3, thus confined to Python code. Then, when you are ready to convert to online testing, you can convert any code components used from Python to Javascript, and run the experiment from Pavlovia.

1 Like

Thank you very much for your answer!