PsychoJS Coding and Debugging

While PsychoPy is based on Python, PsychoJS is based on JavaScript (JS). Below are some tips on how to coding and debugging JavaScript.

Debugging PsychoJS experiments

Errors in you PsychoJS experiment can manifest in multiple ways. Below are tutorials for finding three different types of errors:

Once you’ve found the error, we recommend not to fix it by editing the generated JS experiment, but by making adjustments in the PsychoPy Builder.

Don’t change the generated JS file

When you export an experiment to HTML from the PsychoPy builder, it generates a JS file. We recommend not to edit this JS file, for the reasons below:

  • Changes you make in your .js file will not be reflected back in your builder file; it is a one way street.

  • It becomes more difficult to sync your experiment with pavlovia from the PsychoPy builder

  • Researchers that would like to replicate your experiment but aren’t very JavaScript-savvy might be better off using the PsychoPy Builder

Working with JS Code Components

Code components can automatically convert Python to JavaScript. However, this doesn’t always work. Below are some pointers to help you out:

Adding JS functions

If you have a function you want to use, and you find the equivalent on the crib sheet or stack overflow, add an ‘initialization’ code component to the start of your experiment. Set code type to be ‘JS’ and copy and paste the function(s) you want there in the ‘Begin experiment’ tab. These functions will then be available to be called throughout the rest of the task.


Back to top