Balloon Popping Task

Technical Manual

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond

Created: January 18, 2022

Last Modified: January 01, 2025 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements Millisecond's version of the Balloon Popping Task, an Extinction Learning Task described by Semmelmann et al (2016) for young children. Extinction learning refers to the decrease in a behavior after a period of non-reinforcement.

Note the script runs with proportional sizing by default. Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. See section Defaults for more info.

The task was used for children ages 1-3 (and adults as a control group).

References

Semmelmann et al (2016).U Can Touch This: How Tablets Can Be Used to Study Cognitive Development . Frontiers in Psychology, 7 URL=https://www.frontiersin.org/article/10.3389/fpsyg.2016.01021 DOI=10.3389/fpsyg.2016.01021

Duration

5 minutes

Description

The Balloon Popping Task runs in 3 stages:

1. Acquisition Stage: The screen shows a blue sky with clouds. 2-6 balloons of 2 different colors (e.g. red and yellow) fly from the bottom of the screen to the top. Participants are encouraged to pop as many balloons as they can. Whenever a balloon is touched, the balloon is popped and a new balloon appears on screen. At the acquisiton stage, participants can pop any colored balloon. By default the Acquisition Stage takes 1.5 minutes

2.Extinction Stage: The screen changes to an evening sky. 2-6 balloons of 2 different colors (e.g. red and yellow, same as during acquisition) fly from the bottom of the screen to the top. Participants are encouraged to pop as many balloons as they can. Whenever a balloon is touched, the balloon is popped and a new balloon appears on screen. During the extinction stage, participants can pop only balloons of one color (randomly decided). By default the Extinction Stage takes 1.5 minutes

3. Renewal Stage => same as Acquisition Stage The screen shows a blue sky with clouds (same as during acquisition). 2-6 balloons of 2 different colors (e.g. red and yellow, same as during acquisition) fly from the bottom of the screen to the top. Participants are encouraged to pop as many balloons as they can. Whenever a balloon is touched, the balloon is popped and a new balloon appears on screen. At the acquisiton stage, participants can pop any colored balloon. By default the Renewal Stage takes 1.5 minutes

Procedure

(1) Intro with option practice
Optional Practice: presents one balloon of a color not used during the actual task (purple).
The balloon flies from the bottom to top on a sky not used during the actual task
(same speed as used during the task).
Participants get 10s (editable parameter) to practice popping the flying balloon
(over and over again)

(2) Phase1: Acquisition Stage (blue sky with some clouds)
2-6 balloons (editable parameter) of two randomly selected colors
(e.g. red and green out of four possible: green, red, blue, yellow)
fly from the bottom to the top of the screen at a speed of 1/50 mm/ms (editable value).
The two colors are assigned randomly WITHOUT replacement for each balloon
(reset after 2 color assignments).
Participants get 90s (editable parameter) to pop as many of the flying balloons as they can.
Participants can pop balloons of any color.
Balloons are replaced if they are
a) popped
b) reached the screen top
In that case, a new balloon flies in from the bottom (color randomly determined WITHOUT
replacement).
=> half of the replaced balloons are color1 (color2)

(3) Phase2: Extinction Stage (evening sky with some clouds)
2-6 balloons (editable parameter) of two randomly selected colors (same colors as during phase1)
fly from the bottom to the top of the screen at a speed of 1/50 mm/ms (editable value).
The two colors are assigned randomly WITHOUT replacement for each balloon
(reset after 2 color assignments).
Participants get 90s (editable parameter) to pop as many of the flying balloons as they can.
Participants can only pop balloons of a randomly selected color.
Balloons are replaced if they are
a) popped
b) reached the screen top
In that case, a new balloon flies in from the bottom (color randomly determined WITHOUT
replacement).
=> half of the replaced balloons are color1 (color2)

(3) Phase3: Renewal Stage (blue sky with some clouds - same as during phase1)
2-6 balloons (editable parameter) of two randomly selected colors (same colors as during phase1)
fly from the bottom to the top of the screen at a speed of 1/50 mm/ms (editable value).
The two colors are assigned randomly WITHOUT replacement for each balloon
(reset after 2 color assignments).
Participants get 90s (editable parameter) to pop as many of the flying balloons as they can.
Participants can pop balloons of any color.
Balloons are replaced if they are
a) popped
b) reached the screen top
In that case, a new balloon flies in from the bottom (color randomly determined WITHOUT
replacement).
=> half of the replaced balloons are color1 (color2)

Algorithm To Place Balloons On Screen:
The computer calculates the horizontal coordinates for 6 tracks that can be used to fly
balloons. At the start of a phase, each balloon is randomly assigned to one of these tracks.
The y-coordinate is randomly jiggled to be somewhere from 105% to 120% (aka below the screen),
so starting balloons don't appear on screen at the same exact time.
Replacement balloons are randomly assigned to any track with the constraint that
a minimum distance (calculated based on image height) to another balloon in the same track
has to be maintained.

Stimuli

provided by Millisecond - can be edited under section 'Editable Stimuli'
images taken from: https://pixabay.com/images/ (free to use for commercial use - no attribution required)
applause sound taken from: https://freesound.org/ (Creative Commons license)

Instructions

provided by Millisecond - can be edited in script 'balloonpoppingtask_instructions_inc.iqjs'.
The instructions are not original to Semmelmann et al (2016)

Summary Data

File Name: balloonpoppingtask_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
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
canvasHeightMM The width of the play area in mm
canvasWidthMM The height of the play area in mm
numberBalloonsOnScreen The number of balloons to fly across the screen (parameter)
balloonTravelDurationMS The basic time (in ms) it should take a balloon starting from 100% bottom to 0% top of canvas (parameter)
balloonSpeedMMPerMS The calculated speed of a balloon in mm/ms
depending on canvas size the speed might differ to keep the balloon travel duration
constant across monitors
firstBalloonNumber Stores the first balloon itemnumber selected for the task
secondBalloonNumber Stores the second balloon itemnumber selected for the task
targetColor Stores the randomly assigned target itemnumber ('color')
propTargetColorPhase1 Overall proportion of target color balloons touched (exploded) during phase1
propTargetColorPhase2 Overall proportion of target color balloons touched (unexploded) during phase2
propTargetColorPhase3 Overall proportion of target color balloons touched (exploded) during phase3
phase1T1C1 Number of balloons of color1 popped during timeinterval t1 during phase1 (phase1 = acquisition)
phase1T1C2 Number of balloons of color2 popped during timeinterval t1 during phase1
phase1T2C1 Number of balloons of color1 popped during timeinterval t2 during phase1
phase1T2C2 Number of balloons of color2 popped during timeinterval t2 during phase1
phase1T3C1 Number of balloons of color1 popped during timeinterval t3 during phase1
phase1T3C2 Number of balloons of color2 popped during timeinterval t3 during phase1
phase2T1C1 Number of balloons of color1 popped during timeinterval t1 during phase2 (phase2 = extinction)
color1 = target color (the color that is unpoppable during stage2)
phase2T1C2 Number of balloons of color2 popped during timeinterval t1 during phase2
phase2T2C1 Number of balloons of color1 popped during timeinterval t2 during phase2
phase2T2C2 Number of balloons of color2 popped during timeinterval t2 during phase2
phase2T3C1 Number of balloons of color1 popped during timeinterval t3 during phase2
phase2T3C2 Number of balloons of color2 popped during timeinterval t3 during phase2
phase3T1C1 Number of balloons of color1 popped during timeinterval t1 during phase3 (phase3 = renewal)
phase3T1C2 Number of balloons of color2 popped during timeinterval t1 during phase3
phase3T2C1 Number of balloons of color1 popped during timeinterval t2 during phase3
phase3T2C2 Number of balloons of color2 popped during timeinterval t2 during phase3
phase3T3C1 Number of balloons of color1 popped during timeinterval t3 during phase3
phase3T3C2 Number of balloons of color2 popped during timeinterval t3 during phase3

Raw Data

File Name: balloonpoppingtask_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
date Date the session was run
time Time the session was run
subject Participant ID
group Group number
session Session number
canvasHeightMM The width of the play area in mm
canvasWidthMM The height of the play area in mm
numberBalloonsOnScreen: the number of balloons to fly across the screen (parameter)
balloonTravelDurationMS The basic time (in ms) it should take a balloon starting from 100% bottom to 0% top of canvas (parameter)
balloonSpeedMMPerMS The calculated speed of a balloon in mm/ms
depending on canvas size the speed might differ to keep the balloon travel duration
constant across monitors
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.
response The response of participant (which balloon was touched)
correct 1 = correct response; 0 = otherwise
latency Response latency (in ms); measured from: onset of trial
firstBalloonNumber Stores the first balloon itemnumber selected for the task
secondBalloonNumber Stores the second balloon itemnumber selected for the task
targetColor Stores the randomly assigned target itemnumber ('color')
balloon1 Stores the itemnumber of the balloon image to use for balloon1
balloon2 Stores the itemnumber of the balloon image to use for balloon2
balloon3 Stores the itemnumber of the balloon image to use for balloon3
balloon4 Stores the itemnumber of the balloon image to use for balloon4
balloon5 Stores the itemnumber of the balloon image to use for balloon5
balloon6 Stores the itemnumber of the balloon image to use for balloon6
the numbering does not refer to the track that balloon is flying in
the numbering is simply used to distinguish between 6 possible balloons
adjust Stores the balloon number of the balloon that needs to be adjusted next
(either if it was popped OR if it reached the top first)
'-1' => used during phase2 if a balloon was touched that should not explode,
in this case, the trial ends as if it had popped but not adjustments are made to the balloon
t1C1 Stores the number of times that a color1 balloon was touched during time period t1 (0-30s)
t1C2 Stores the number of times that a color2 balloon was touched during time period t1 (0-30s)
t2C1 Stores the number of times that a color1 balloon was touched during time period t2 (30-60s)
t2C2 Stores the number of times that a color2 balloon was touched during time period t2 (30-60s)
t3C1 Stores the number of times that a color1 balloon was touched during time period t3 (60-90s)
t3C2 Stores the number of times that a color2 balloon was touched during time period t3 (60-90s)
t1 Marks the end of time period t1 (in scriptelapsedtime)
t2 Marks the end of time period t2 (in scriptelapsedtime)
script.elapsedTime Measures the time the script has been running from beginning
trialTimeout Stores the current trialtimeout (in ms) => if no balloon is popped, the trial should end after this time
because that means a balloon has reached the top
balloon1Duration The current duration (in ms) that balloon1 should be flying
balloon2Duration The current duration (in ms) that balloon2 should be flying
balloon3Duration The current duration (in ms) that balloon3 should be on screen
balloon4Duration The current duration (in ms) that balloon4 should be on screen
balloon5Duration The current duration (in ms) that balloon5 should be on screen
balloon6Duration The current duration (in ms) that balloon6 should be on screen

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
runAdjustmentRoutine True: at script onset the script runs a procedure that allows test
administrators to adjust
a) the number of balloons on screen
b) the balloon travel time across the screen
false: adjustment procedure is not run
true
skipPractice False: the script runs a practice session (can be repeated)
true: no practice phase is run
false
numberBalloonsOnScreen Suggested: 2,4,6 (to show the same number of balloons of both colors)
Range: 2-6
if parameters.runAdjustmentRoutine = true, this number can
be adjusted after the practice (if practice is run)
6
Timing Parameters
practiceDuration The duration (in ms) of the optional practice10000
phase1Duration The duration (in ms) of the acquisition stage (phase1)90000
phase2Duration The duration (in ms) of the extinction stage (phase2)90000
phase3Duration The duration (in ms) of the renewal stage (phase3)90000
balloonTravelDurationMS The time (in ms) that a balloon takes to travel from bottom to top of screen
the balloonTravelDuration is kept constant across differently sized monitors
to allow each participant the same time to pop balloons on the screen
7000
Color Parameter
canvasColor Display color of the actively used portion of the screen (the 'canvas')
if set to a color other than the screenColor, you can distinguish the active canvas
from the inactive portion of the screen
black
screenColor Color of the screen not used by the canvas ('inactive screen')black
defaultTextColor Default color of text itemswhite
Sizing Parameters
balloonSizePct Proportional height of the image file (not the balloon)30%