Useful Field of View Test - UFOV

Technical Manual

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

Background

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)

References

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)

Duration

10 minutes

Description

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

Procedure

(I) Subsetselection Screen: Optional (See Setting Of Parameters.Showsubtestselectionscreen);
by default it does not run

The subsetSelection screen provides test administrators access to select individual subtests to run.

(Ii) Subtest 1:
Main Task: Central stimulus: car or truck?

(A) Practice: max 16 trials
- the duration of the center stimulus is: 20 frames (on a 60Hz monitor: ~333ms)
- after 20 frames the center stimulus is erased by a mask for 500ms
- two response buttons provided: a truck (on the left) vs. a car (on the right)
- no accuracy feedback provided
- every 4 trials, accuracy is checked: if performance is 3/4 correct or higher,
the test will begin. Otherwise another round of 4 practice trials is started until all
16 trials have run. The test will start after 16 trials regardless of final practice
performance.

(B) Test: variable trial number
- duration of stimulus presentation is 17ms - 500ms
- the (75%) threshold is estimated using an adaptive staircase procedure (see below for more details)
- no accuracy feedback


(Iii) Subtest 2: ( Subtest 2 Is Only Run If Subtest 1 Yielded A Threshold Lower Than The Maximum Duration Of 500Ms)

Main Task: central stimulus check + peripheral stimulus on 8 possible radials
( the distance btw. peripheral stimulus and center is fixed)
- what was the center stimulus?
- on which radial was the peripheral stimulus (always a car) located?

(A) Practice: max 16 trials
- the duration of the center stimulus is: 20 frames (on a 60Hz monitor: ~333ms)
- after 20 frames the center stimulus is erased by a mask for 500ms
- two response buttons provided: a truck (on the left) vs. a car (on the right)
- no accuracy feedback provided
- every 4 trials, accuracy is checked: if performance is 3/4 = 0.75correct or higher,
the test will begin. Otherwise another round of 4 practice trials is started until all
16 trials have run. The test will start after 16 trials regardless of final practice
performance.
correct performance = getting the center stimulus correct AND getting the radial correct on which
the peripheral stimulus was located

(B) Test: variable trial number
- duration of stimulus presentation is 17ms - 500ms
- the (75%) threshold is estimated using an adaptive staircase procedure (see below for more details)
- no accuracy feedback


(Iv) Subtest 3: ( Subtest 3 Is Only Run If Subtest 1/2 Yielded A Threshold Lower Than The Maximum Duration Of 500Ms)

Main Task: central stimulus check + peripheral stimulus on 8 possible radials. Peripheral
stimulus is 'hidden' amongst 47 distractor triangles.
( the distance btw, peripheral stimulus and center is fixed)
- what was the center stimulus?
- on which radial was the peripheral stimulus (always a car) located?

(A) Practice: max 16 trials
- the duration of the center stimulus is: 20 frames (on a 60Hz monitor: ~333ms)
- after 20 frames the center stimulus is erased by a mask for 500ms
- two response buttons provided: a truck (on the left) vs. a car (on the right)
- no accuracy feedback provided
- every 4 trials, accuracy is checked: if performance is 3/4 = 0.75correct or higher,
the test will begin. Otherwise another round of 4 practice trials is started until all
16 trials have run. The test will start after 16 trials regardless of final practice
performance.
correct performance = getting the center stimulus correct AND getting the radial correct on which
the peripheral stimulus was located

(B) Test: variable trial number
- duration of stimulus presentation is 17ms - 500ms
- the (75%) threshold is estimated using an adaptive staircase procedure (see below for more details)
- no accuracy feedback


Implemented Staircase Procedure In This Script: Best Guess Effort By Millisecond

This script uses an adaptive staircase procedure (see UFOV Assessment Manual - June 20, 2018, p.10)
to estimate the threshold for each of the three subtests.
The stepsize adjustment procedure implemented in this script follows the description of the UFOV Manual (June 20, 2018)
and fills in missing information as best as possible.
Edwards et al (2005) describes the purpose of the UFOV staircase procedure to find
the intensity threshold at which participants are 75% correct.

• Adaptive Staircase Procedure:
Per UFOV Manual (June 20, 2018, p.10):
- the starting stepsize is 3 frames (50ms on a 60Hz monitor)
- after the first incorrect response (excluding the first response), the stepsize is reduced to 1 frame (16.67 ms on a 60 Hz monitor)
- 3 correct responses at the fastest presentation rate or 3 incorrect responses at
the slowest presentation rate (for the slowest: if more than 10 trials were run) will stop the procedure


• Starting Frames for Staircase: ( best guess effort by Millisecond)
Subtest1:
staircase ('down') starts at 20 frames (on a 60Hz monitor: ~333ms) unless practice performance < 75% after 16 trials.
In that case, staircase starts at 25 frames (on a 60Hz monitor: ~417ms)


From UFOV Manual Version 6.1.4 (p.8):
"Failure to adequately perform the Subtest after 16 practice trials indicates that the examinee's threshold is
above the practice level and will be measured by UFOV."

Subtest2:
staircase ('down') increases the subtest1 threshold by 5 frames (on a 60Hz monitor: ~84ms)

• if max/min frames are hit => use max/min frames
• if no subtest1 threshold were determined, use parameters.downward_startingFrames

Subtest3:
staircase ('down') increases the subtest3 threshold by 5 frames (on a 60Hz monitor: ~84ms)

• if max/min frames are hit => use max/min frames
• if no subtest2 threshold were determined, use parameters.downward_startingFrames


• Threshold Estimation IN THIS SCRIPT (best guess effort by Millisecond):
The staircase collects 9 (default) reversal points (reversal point = change of staircase direction).
The mean of these 9 reversals points is calculated in ms and used as the final threshold.

a quality/validity check of the three thresholds at the end of the script checks that
the thresholds increase from subtest to subtest (as they increase in difficulty).
If the threshold of a more difficult subtest is lower than the one from an easier one,
the lower threshold is assigned to the easier level as well.
(see UFOV Assessment Manual - June 20, 2018, p.6)

Stimuli

truck/car/triangle/mask example stimuli are provided by Millisecond.
These are just demo stimuli - Replace with your own under section Editable Stimuli

Stimuli Sizing:
The distance btw. peripheral stimulus and center of monitor as well as the size of the fixation box
and car/truck stimuli are proportionally sized (proportional to canvasheight) in this script.
By setting an absolute canvassize under section Defaults, the stimuli can be absolutely sized across monitors.
Go to section Defaults for an example.

Edwards et al (2005):
• distance btw. center and peripheral stimulus ~ 11cm
• fixation box ~ 3cm x 3cm
•car/truck ~ 1.5cm * 2cm ( in this script parameters.stimImageSize_percent = 2cm is used to size the image
size of the car/truck)

Participants are instructed to sit ~60cm from the screen (Edwards et al, 2005)
PC use a 15 inch viewing area (Edwards et al, 2005)

Instructions

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'

Summary Data

File Name: usefulfieldofview_summary*.iqdat

Data Fields

NameDescription
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

Raw Data

File Name: usefulfieldofview_raw*.iqdat

Data Fields

NameDescription
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)

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
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 canvasblack
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