Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 28, 2019
Last Modified: January 12, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Millisecond's computerized version of the Useful Field of View Test (UFOV, Ball et al, 1988; Edwards et al, 2005), a measure of processing speed and attention that is said to predict driving performance in older adults.
This script can be run with absolute screen/stimuli sizing. The default version of this script uses proportional sizing. To use absolute sizing, go to section Defaults and follow instructions. Note that the screen sizes need to be set larger to run the suggested sizes by Edwards et al (2005) (more info under sections Editable Parameters/Defaults)
Ball, K., Beard, B., Roenker, D., Miller, R., & Griggs, D. (1988). Age and visual search: Expanding the useful field of view. Journal of the Optical Society of America. A, Optics and Image Science, 5(12), 2210-9.
Edwards, J. D., Vance, D. E., Wadley, V. G., Cissell, G. M., Roenker, D. L., & Ball, K. K. (2005). Reliability and validity of useful field of view test scores as administered by personal computer. Journal of Clinical and Experimental Neuropsychology, 27, 529–543.
UFOV Manual Version 6.1.4 (revised 6/09)
UFOV Assessment Manual: https://www.visualawareness.com/wp-content/uploads/2019/04/UFOV-Assessment-Manual.pdf (version 6.20.2018)
10 minutes
This tests runs a Useful Field of View Procedure. The test consists of 3 subtests:
Subtest1: Processing Speed This 2 forced-choice task estimates the processing threshold for the presentation of stimuli in the center of the screen. Participants are asked: "what object was located in the center?"
Subtest2: Divided Attention This choice task estimates the processing threshold for the presentation of stimuli in the center of the screen while also having to pay attention to the location of a peripheral stimulus. Task1: which object was presented in the center? Task2: where was the peripheral object located?
Subtest3: Selective Attention This choice task is similar to subtest2 but 'hides' the peripheral object within 47 distractor triangles. This choice task estimates the processing threshold for the presentation of stimuli in the center of the screen while also having to pay attention to the location of a peripheral stimulus that is hidden amongst distractor items. Task1: which object was presented in the center? Task2: where was the peripheral object located?
the implemented procedure assumes a monitor refreshrate of 60 Hz
truck/car/triangle/mask example stimuli are provided by Millisecond.
These are just demo stimuli - Replace with your own under section Editable Stimuli
The instructions are provided by Millisecond and based on the ones provided
in the UFOV Manual Version 6.1.4.
They can be edited under section 'Editable Instructions'
File Name: usefulfieldofview_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| display.refreshRate | The refreshrate (in Hz) of the current monitor/display |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| display.refreshRate | The refreshrate of the current monitor ( default timings are based on a 60Hz refreshrate) |
| display.refreshInterval | The ms a frame is presented before it is refreshed ( for a 60Hz monitor, the refreshinterval is 16.67ms) |
| circleRadiusPercent | The radius of the circle (in canvas height percent) around the center used on the current monitor (= distance from peripheral stimulus to center) |
| stimImageSizePercent | The image size of the car/truck stimuli (in canvas height percent) used on the current monitor |
| fixationBoxSizePercent | The image size of fixation box (in canvas height percent) used on the current monitor |
Practice Performance |
|
| practicePropCorrectSubTest1 | Proportion correct of the last 4 practice trials for subtest1 |
| practiceTrialCountSubTest1 | Number of practice trials run for subtest1 (4-16) |
| practicePropCorrectSubTest2 | Proportion correct of the last 4 practice trials for subtest2 |
| practiceTrialCountSubTest2 | Number of practice trials run for subtest2 (4-16) |
| practicePropCorrectSubTest3 | Proportion correct of the last 4 practice trials for subtest3 |
| practiceTrialCountSubTest3 | Number of practice trials run for subtest3 (4-16) |
Test Performance |
|
| subTest1Threshold | The estimated intensity thresholds (in ms) of subtest1 |
| subTest2Threshold | The estimated intensity thresholds (in ms) of subtest2 |
| subTest3Threshold | The estimated intensity thresholds (in ms) of subtest3 |
File Name: usefulfieldofview_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| display.refreshRate | The refreshrate (in Hz) of the current monitor/display |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| display.refreshRate | The refreshrate of the current monitor ( default timings are based on a 60Hz refreshrate) |
| display.refreshInterval | The ms a frame is presented before it is refreshed ( for a 60Hz monitor, the refreshinterval is 16.67ms) |
| circleRadiusPercent | The radius of the circle (in canvas height percent) around the center used on the current monitor (= distance from peripheral stimulus to center) |
| stimImageSizePercent | The image size of the car/truck stimuli (in canvas height percent) used on the current monitor |
| fixationBoxSizePercent | The image size of fixation box (in canvas height percent) used on the current monitor |
| trialCount | Block trial counter |
| centerStim | 1 = car 2 = truck |
| peripheralPosition | 1-8 (position of '1' is at 12 0'clock; positioning clockwise) |
| targetFrames | The current frame number with which the staircase stimuli are presented |
| staircaseCurrentDirection | "down" or "up" |
| response | Stores the response of the current trial center Stim trials: "car" vs. "truck" (the center stim selected by participant) peripheral position trials: "number1" - "number8" (the peripheral position selected by participant) |
| correct | 1 = current response was evaluated to be correct 0 = current response was evaluated to be incorrect |
| finalCorrect | Subtest1: 1 = correct center stim was selected; 0 = otherwise subtest2/3: 1 = correct center stim AND correct peripheral position was selected; 0 = otherwise |
| latency | The response latency in ms (measured from onset of response buttons) |
| reversal | 1 = the current response indicates a reversal of the direction of the staircase 0 = the current response does not indicate a reversal of the direction of the staircase |
| stopProcedure | 1 = staircase will stop running; 0 = staircase has not reached stop criterium yet |
| threshold | The estimated stimulus duration (in ms) threshold (in most cases: mean of all collected thresholds by staircase) |
| list.reversalPoints.itemCount | Stores the number of reversal points collected by staircase procedure |
| targetOnsetMS | Stores the timing of the centerStim onset in ms |
| maskOnsetMS | Stores the timing of the mask onset in ms |
| maskOffsetMS | Stores the timing of the mask offset in ms (= onset of response buttons) |
| countConsecutiveMaxFrames | Counts the number of frames that run the maxium frames (500ms) |
| countConsecutiveMinFrames | Counts the number of frames that run the minimum frames (500ms) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| screenColor | Color of the screen not used by the canvas ('inactive screen') | white |
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, the active canvas appears 'anchored' on the screen regardless of monitor size | white |
| defaultTextColor | Default color of text items presented on active canvas | black |
Ui |
||
| circleRadiusPercent | Defines the distance btw. the center of the screen and the peripheral stimulus. The peripheral stimulus is located on a circle around the center. The radius of this circle can be set by parameters.circleRadius_percent. By default, the radius is 40% of the canvas height (by default in this script: the canvas height is the largest 4:3 rectangle that can be found on the current screen.) Edwards et al (2005): ~11cm | 40% |
| fixationBoxSizePercent | The size of the fixation box in percent canvas height Edwards et al (2005): ~3cm (p.531) on | 12% |
| stimImageSizePercent | The size of the truck/car image file in percent canvas height Edwards et al (2005): targets are ~2cm * ~1.5cm silhouettes of a truck/car on a black background (p.531) | 8% |
General Test Procedure |
||
| showSubTestSelectionScreen | True (1) = the script provides a selection screen from which the test administrator can select specific subtests to run false (0) = the script does not provide a selection screen and runs all three subtests in order (default) | false |
Staircase Procedure Parameters |
||
| startingStepSize | The starting stepsize for each staircase procedure in vertical refreshrates on a 60Hz monitor, one vertical refreshrate lasts about 16.67ms | 3 |
| minFrame | Minimum number of vertical frames a stimulus is presented | 1 |
| maxFrame | Maximum number of vertical frames a stimulus is presented | 30 |
| fixationFrames | Number of frames that the fixation box is presented at the start of each trial | 30 |
| maskDuration | The duration (in ms) that the mask is presented | 500 |
| practiceStimFrames | Number of frames that the practice stimuli are presented | 20 |
| downwardStaircaseStartFrames | Number of frames that the downwardStaircase trials present the stimuli during subtest1 Notes a) this frame number is adjusted upwards if practice results in less than 75% correct performance after practice b) this frame number is also used for subtest2/subtest3 if they run as individual subtests | 20 |
| maxReversals | Number of reversals before staircase procedure stops | 9 |
| maxTrials | Just in case: if participants does not get 9 reversals within 100 trials, the staircase stops automatically after 100 trials | 100 |
Other Timing Parameters |
||
| iti | The duration of the inter trial interval in ms | 500 |
Debug Parameter: (Only Relevant For Debugging Purposes) |
||
| debugmode | True (1): script runs in debugmode and presents additional debug information on the screen false (0): script runs in testmode (default) | 0 |