Class: PsychoJS

core.PsychoJS(options)

PsychoJS manages the lifecycle of an experiment. It initialises the PsychoJS library and its various components (e.g. the ServerManager, the EventManager), and is used by the experiment to schedule the various tasks.

Constructor

new PsychoJS(options)

Parameters:
Name Type Description
options Object
Properties
Name Type Attributes Default Description
debug boolean <optional>
true whether or not to log debug information in the browser console
collectIP boolean <optional>
false whether or not to collect the IP information of the participant
Source:

Members

(static, readonly) Status :Symbol

PsychoJS status.
Type:
  • Symbol
Properties:
Name Type Description
NOT_CONFIGURED Symbol
CONFIGURING Symbol
CONFIGURED Symbol
NOT_STARTED Symbol
STARTED Symbol
PAUSED Symbol
FINISHED Symbol
STOPPED Symbol
ERROR Symbol
Source:

status

Properties
Source:

Methods

(protected) _captureErrors()

Capture all errors and display them in a pop-up error box.
Source:

(async, protected) _configure(configURL, name)

Configure PsychoJS for the running experiment.
Parameters:
Name Type Description
configURL string the URL of the configuration file
name string the name of the experiment
Source:

(async, protected) _getParticipantIPInfo()

Get the IP information of the participant, asynchronously.

Note: we use http://www.geoplugin.net/json.gp.

Source:

getEnvironment() → {ExperimentHandler.Environment|undefined}

Get the experiment's environment.
Source:
Returns:
the environment of the experiment, or undefined
Type
ExperimentHandler.Environment | undefined

importAttributes(obj)

Make the attributes of the given object those of PsychoJS and those of the top level variable (e.g. window) as well.
Parameters:
Name Type Description
obj Object.<string, *> the object whose attributes we will mirror
Source:

openWindow(options)

Open a PsychoJS Window.

This opens a PIXI canvas.

Note: we can only open one window.

Parameters:
Name Type Description
options Object
Properties
Name Type Attributes Description
name string <optional>
the name of the window
fullscr boolean <optional>
whether or not to go fullscreen
color Color <optional>
the background color of the window
units string <optional>
the units of the window
autoLog boolean <optional>
whether or not to log
waitBlanking boolean <optional>
whether or not to wait for all rendering operations to be done before flipping
Source:
Throws:
exception if a window has already been opened
Type
Object.<string, *>

(async) quit(options)

Close everything and exit nicely at the end of the experiment, potentially redirecting to one of the URLs previously specified by setRedirectUrls.

Note: if the resource manager is busy, we inform the participant that he or she needs to wait for a bit.

Parameters:
Name Type Description
options Object
Properties
Name Type Attributes Default Description
message string <optional>
optional message to be displayed in a dialog box before quitting
isCompleted boolean <optional>
false whether or not the participant has completed the experiment
Source:

schedule(task, args)

Schedule a task.
Parameters:
Name Type Description
task the task to be scheduled
args arguments for that task
Source:

scheduleCondition(condition, thenScheduler, elseScheduler)

Schedule a series of task based on a condition.
Parameters:
Name Type Description
condition PsychoJS.condition
thenScheduler Scheduler scheduler to run if the condition is true
elseScheduler Scheduler scheduler to run if the condition is false
Source:

setRedirectUrls(completionUrl, cancellationUrl)

Set the completion and cancellation URL to which the participant will be redirect at the end of the experiment.
Parameters:
Name Type Description
completionUrl string the completion URL
cancellationUrl string the cancellation URL
Source:

(async) start(options, resourcesopt)

Start the experiment.

The resources are specified in the following fashion:

  • For an experiment running locally: the root directory for the specified resources is that of index.html unless they are prepended with a protocol, such as http:// or https://.
  • For an experiment running on the server: if no resources are specified, all files in the resources directory of the experiment are downloaded, otherwise we only download the specified resources. All resources are assumed local to index.html unless they are prepended with a protocol.
  • If resources is null: we do not download any resources.

Parameters:
Name Type Attributes Default Description
options Object
Properties
Name Type Attributes Default Description
configURL string <optional>
config.json the URL of the configuration file
expName string <optional>
UNKNOWN the name of the experiment
expInfo Object.<string, *> <optional>
additional information about the experiment
resources Array.<{name: string, path: string}> <optional>
[] the list of resources
Source:

waitForResources(resourcesopt)

Block the experiment until the specified resources have been downloaded.

Note: only those resources that have not already been downloaded at that point are considered.

  • For an experiment running locally: the root directory for the specified resources is that of index.html unless they are prepended with a protocol, such as http:// or https://.
  • For an experiment running on the server: if no resources are specified, all files in the resources directory of the experiment are downloaded, otherwise we only download the specified resources. All resources are assumed local to index.html unless they are prepended with a protocol.
Parameters:
Name Type Attributes Default Description
resources Array.<{name: string, path: string}> <optional>
[] the list of resources
Source: