Project Implicit Player

Project Implicit Player (PIP)

PI Player builds and runs experiments with time-sensitive tasks over the Internet. The primary way to learn how to use the PIP is through the documentation site. You will find full documentation of the player, tutorials on how to use it, and some examples. You should go through the tutorials to get a sense of how things work.

PIP is written in JavaScript. Researchers can program their own studies by writing scripts in a language that PIP can understand. Those scripts are written as JavaScript objects. This format allows writing simple and straightforward scripts using a constrained scripting language. The format also allows advanced users to easily create complex and dynamic scripts using in-line JavaScript.

Learn how to use PIP

The first place to look is the documentation site. You will find full documentation of the player, tutorials on how to use it, and some examples. You should go through the tutorials to get a sense of how things work.

IMPORTANT: the documentation site is a general site for using PIP. There are some PI-specific issues that you should know about. For instance, it is better to use the examples under user/yba/pipexample (see below), than to use most of the examples in the general documentaiton site. See more about it in the next section.

(Note 01/11/16: The information below may be outdated. For the most up-to-date information, check out the documentation site.)

Using PIP on PI's website

To see examples how to use PIP in project implicit, browse the folder /user/yba/pipexample to see a few examples.

The simplest script is under /user/yba/pipexample/stroop. PIP's script file that creates the task is stroop.js. It might help to read it.

Look at the expt file to see how we currently define a PIP task:

<Task id="stroop" file="stroop.js">/common/all/js/pip/0.2/dist/piindex.jsp</Task>

In addition, you should always add the variables condition, block and score to the data object of each trial you log. The condition is stored as block_pairing_def and the score is stored as trial_error. 

PIP's recommended version right now is 0.2 (see the path above). This might change as PIP updates.

If you want to run PIP on dev2, all you need to do is create your own js file and then include it with the expt line shown above. Well, you also might need to change a few settings in your js script: define the base_url and the logger settings. And also define what PIP should do at the end of the task. See the first few lines and the last few lines in stroop.js (under /user/yba/pipexample/stroop) to learn how this is done. In fact, you can create your own js script by copying the stroop.js (under /user/yba/pipexample/stroop) and then replace the task's code with your own code.

More PIP examples

Two more advanced examples for PIP scripts can be found under /user/yba/pipexample/amp and /user/yba/pipexample/eptemplate. /user/yba/pipexample/amp: the amp.js is an AMP task. Among other things, you can learn from that code how to compute your own feedback using javascript code.  /user/yba/pipexample/eptemplate:  the ep.js is an example of evaluative priming. Among other things, you can learn from that code how to use the Scorer component to compute a D score and get the feedback message the matches the score. 

PIP Extensions for Implicit measures 

You can use extensions for most implicit measures. These extensions require only modifying some parameters for use. You can also copy them and modify the actual code (although the code is usually a bit advanced). Read more about the extensions for the IATBrief-IAT, SPF, EPT, ST-IAT.

Implicit Association Test (IAT)

I think that it is best to use the IAT extension created by me (Yoav), as explained here. But, there are other options as well:

Under /user/yba/pipexample/iattemplate, you will find a script that was created for building and running an IAT. You can copy that script for your own study, and only change the stimuli.  

You can also use the IAT component that Elad developed for PIP. The IAT component is another extension of PIP that was created for easily configuring and running IATs. You can see two examples for how that extension can be used under /user/yba/pipexample/iatcomponent. The file iat_component_simple.js shows a very simple way to use that component: only set the stimuli. The file iat_component_advanced.js shows you more options that you can use when creating an IAT with the IAT component. For full documentation of the this extension see here

Affect Misattribution Procedure (AMP)

You can copy the amp.js script from the amp example and then modify it for your own purposes. The examples folder in the documentation site also has examples for other measures, but make sure you know what you should add to those examples so that they would work on PI.


Because PIP is in its early stages, you should test your studies with great care before launching them.