A test in PsyPad is driven by either a customizable MOCS or staircase procedure based on image file names. Consider the example of measuring the coherence threshold for discriminating between concentric and radial global structure within Glass patterns (Glass,
1969; Wilson & Wilkinson,
1998). In this example task, the observer is required to determine, for each presentation, whether the stimulus is “radial” or “concentric” in structure. Glass patterns contain pairs of dots that are arranged as dipoles to create a particular global structure. Other dots are placed as “noise” at random, to decrease the signal coherence. The threshold measure is typically the percentage of dipoles (coherence threshold) in the signal orientation required to discriminate the global form. Hence, for our PsyPad task, the level of a stimulus is the percentage of dots that are signal dipoles. For example, in
Figure 1c, 98% of dots are oriented radially, while in
Figure 1b, 30% of dots are oriented concentrically. If we want to determine the coherence threshold, then we need to present images containing various levels of signal. PsyPad expects images of a given signal level to be in folders with a positive integer name, and so we will put images with
x% signal in a folder named
x. This is shown in the subcaptions in
Figure 1.
The staircase and MOCS algorithms within PsyPad operate on the integer domain, choosing a random image from the folder that is named at the signal level required. For example, the internal staircase might call for a stimulus at level 36, and so a random stimulus is taken from the folder named 36. Thus, within each folder, one can have any number of stimuli of the appropriate level which are randomly sampled. Since PsyPad's staircases work on integer signal levels, you may have to be a little creative in mapping your thresholding domain onto integer file names. For example, if you are thresholding in log units with a step size of 0.2, you might convert a stimulus level ℓ ∈ {0, 0.2, 0.4, …, 2.2} to the integer ⌊1,000 × 10−ℓ⌋, giving integer signal levels of {6, 10, 15, 25, 39, 63, 100, 158, 251, 398, 630, 1,000}.
Responses to a stimulus are gathered with on-screen rectangular buttons whose position and size are customizable with parameters. The first two characters of the file names of the images themselves are also important: The first is the button number that would correspond to a correct answer, and the second is an underscore.
Figure 1b shows the image that will elicit a correct response if button 1 is pressed, and similarly button 2 is correct in
Figure 1c. Therefore, this task will have two buttons defined: button 1 labeled “Concentric” and button 2 labeled “Radial.”
Assume, for the sake of exposition, that we have created 50 folders of Glass pattern images of varying signal level named 0, 2, 4, …,100, and each folder contains 10 concentric images, named 1_x.png, and 10 radial images, named 2_x.png, where x is a number in the range 1 … 10. These images are uploaded to the server in a single zip file. If we want to perform a MOCS to determine thresholds, we would specify the folder numbers (signal level) and the number of trials from each folder. For example, if we wanted seven levels centered on 20% coherence and 20 trials in each, we would specify “14:20, 16:20, 18:20, 20:20, 22:20, 24:20, 26:20.” PsyPad would then randomly choose from this set of folders and images, present each, and record the button pressed in the log files as a test.
For stimuli with a temporal component, there is an extra level of subfolders in the file-naming convention. The first level is named as for static stimuli, with an integer signal level. The second is named as for the static case, but now the name is of a subfolder rather than a single image file. The third level then contains image files that are frames of the temporal stimulus, which are presented in lexicographic name order. For example, if we wanted a stimulus that had eight frames at stimulus level 40 and pressing button number 1 was a correct response, then the files could be named 40/1_x/frame1.png, 40/1_x/frame2.png, …, 40/1_x/frame8.png. The frame rate and looping behavior of the stimulus presentation are controlled by configurable PsyPad parameters.
If we wanted to run two interleaved staircases on the same task, we would specify:
The numbers in parentheses after each item specify an example of two interleaved, 2-down, 1-up staircases with six reversals. Note that an incorrect response causes the staircase to add the current step level to the stimulus level, and a correct response to subtract the current step level from the stimulus level, both subject to the appropriate up/down rules.
Apart from specifying the details of the MOCS or staircase, one must also specify the appearance of the test screen. Each image is presented centered on the iPad screen. If the image has dimensions of 2048×1536 pixels, then it will fill an iPad 3 screen and overflow a iPad 2 screen (which is half the resolution). If it is smaller than the screen (advised to save memory and transfer times), then the screen is filled with a configurable background color or image.
Response buttons for the task are placed over the image. Each button is a rectangle with customizable (
x,
y) location, width, height, text, text color, and background color. There can be up to four buttons.
Figure 4 shows an example where the four buttons are present. It is also possible to place an Exit button, which renders as a small cross at a position, size, and color of your choosing, that will, when pressed, stop the current test and move to the next.
There are various other configuration options for tests, such as the time between each stimulus (specified as a mean and variation for a uniform distribution), the presentation time of each stimulus, whether facial feature extraction should be attempted, and finally a fixed seed that can be specified for the random stimulus choice, allowing the same stimulus choices for different runs of the same tests.