ExpLookitGeometryAlternation Class
Frame to implement specific test trial structure for geometry alternation experiment. Includes announcement, calibration, and alternation (test) phases. During "alternation," two streams of triangles are shown, in rectangles on the left and right of the screen: one one side both size and shape change, on the other only size changes. Frame is displayed fullscreen and video recording is conducted during calibration/test.
The geometry randomizer generates a series of ExpLookitGeometryAlternation frames.
These frames extend ExpFrameBaseUnsafe because they are displayed fullscreen and expected to be repeated.
"frames": {
"alt-trial": {
"kind": "exp-lookit-geometry-alternation",
"triangleLineWidth": 8,
"calibrationVideoSources": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/webm/attention.webm",
"type": "video/webm"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp4/attention.mp4",
"type": "video/mp4"
}
],
"trialLength": 60,
"attnLength": 10,
"calibrationLength": 3000,
"fsAudio": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/fullscreen.mp3",
"type": "audio/mp3"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/fullscreen.ogg",
"type": "audio/ogg"
}
],
"triangleColor": "#056090",
"unpauseAudio": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/return_after_pause.mp3",
"type": "audio/mp3"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/return_after_pause.ogg",
"type": "audio/ogg"
}
],
"pauseAudio": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/pause.mp3",
"type": "audio/mp3"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/pause.ogg",
"type": "audio/ogg"
}
],
"videoSources": [
{
"src": "https://s3.amazonaws.com/lookitcontents/exp-physics-final/stimuli/attention/webm/attentiongrabber.webm",
"type": "video/webm"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/exp-physics-final/stimuli/attention/mp4/attentiongrabber.mp4",
"type": "video/mp4"
}
],
"musicSources": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/happy-stroll.mp3",
"type": "audio/mp3"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/happy-stroll.ogg",
"type": "audio/ogg"
}
],
"calibrationAudioSources": [
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/chimes.mp3",
"type": "audio/mp3"
},
{
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/chimes.ogg",
"type": "audio/ogg"
}
],
"altOnLeft": true,
"context": true,
"audioSources": [
{
"type": "audio/mp3",
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/video_01.mp3"
},
{
"type": "audio/ogg",
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/video_01.ogg"
}
],
"endAudioSources": [
{
"type": 'audio/mp3',
"src": "https://s3.amazonaws.com/lookitcontents/geometry/mp3/all_done.mp3"
},
{
"type": "audio/ogg",
"src": "https://s3.amazonaws.com/lookitcontents/geometry/ogg/all_done.ogg"
}
]
}
}
Item Index
Properties
Methods
exitFullscreen
()
serializeContent
-
context -
altOnLeft -
videoID -
hasBeenPaused -
eventTimings
Parameters captured and sent to the server
Parameters:
-
contextBooleanTrue to use big fat triangle as context figure, or false to use small skinny triangle as context. [same as passed to this frame]
-
altOnLeftBooleanWhether to put the shape+size alternating stream on the left (other stream alternates only in size) [same as passed to this frame]
-
videoIDStringThe ID of any video recorded during this frame
-
hasBeenPausedBooleanwhether this trial was paused
-
eventTimingsObject
Returns:
The payload sent to the server
showFullscreen
()
Properties
altOnLeft
Boolean
Whether to put the shape+size alternating stream on the left (other stream alternates only in size)
Default: true
audioSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for instructions during attention-getter video
calibrationAudioSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for calibration audio (played 4 times during calibration)
calibrationVideoSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for calibration video (played from start 4 times during calibration)
context
Boolean
True to use big fat triangle as context figure, or false to use small skinny triangle as context.
Default: true
endAudioSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for audio after completion of trial (optional; used for last trial "okay to open your eyes now" announcement)
fsAudio
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for audio played when study is paused due to not being fullscreen
fullScreenElementId
String
musicSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for music during trial
pauseAudio
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for audio played upon pausing study
triangleColor
String
color of triangle outline (3 or 6 char hex, starting with #)
Default: '#056090'
triangleLineWidth
Integer
triangle line width in pixels
Default: 5
unpauseAudio
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for audio played upon unpausing study
videoSources
Object[]
Sources Array of {src: 'url', type: 'MIMEtype'} objects for attention-getter video (should be loopable)
Events
clearTriangles
Records each time triangles are cleared from display
enteredFullscreen
When change to fullscreen is detected
leftFullscreen
When change to non-fullscreen is detected
nextFrame
Move to next frame
pauseVideo
When pausing study, immediately before request to pause webcam recording
startCalibration
Start of EACH calibration segment
Event Payload:
-
locationStringlocation of calibration ball, relative to child: 'left', 'right', or 'center'
startIntro
Immediately before starting intro/announcement segment
startTestTrial
Immediately before starting test trial segment
stoppingCapture
Just before stopping webcam video capture
unpauseVideo
When unpausing study, immediately before request to resume webcam recording
videoStreamConnection
When recorder detects a change in video stream connection status
Event Payload:
-
statusStringstatus of video stream connection, e.g. 'NetConnection.Connect.Success' if successful
videoStreamConnection
records EACH triangle presentation during test trial
Event Payload:
-
LshapeStringshape of left triangle: 'skinny' or 'fat'
-
RshapeStringshape of right triangle: 'skinny' or 'fat'
-
LXNumberHorizontal offset of left triangle from rectangle center, in units where rectangle width = 70; positive = to right
-
LYNumberVertical offset of left triangle from rectangle center, in units where rectangle height = 100.8; positive = down
-
RXNumberHorizontal offset of right triangle from rectangle center, in units where screen width = 200 and rectangle width = 70; positive = to right
-
RYNumberVertical offset of right triangle from rectangle center, in units where rectangle height = 100.8; positive = down
-
LRotNumberrotation of left triangle in degrees. 0 degrees has long side horizontal and 15 degree angle (skinny triangle) or 60 degree angle (fat triangle) on left.
-
RRotNumberrotation of right triangle in degrees. 0 degrees has long side horizontal and 15 degree angle (skinny triangle) or 60 degree angle (fat triangle) on left.
-
LFlipNumberwhether left triangle is flipped (1 = no, -1 = yes)
-
RFlipNumberwhether right triangle is flipped (1 = no, -1 = yes)
-
LSizeNumbersize of left triangle, relative to standard ('standard' sizes are set so that areas of skinny & fat triangles are equal), in terms of side length (e.g. for a rectangle, 2 would mean take a 1x3 rectangle and make it a 2x6 rectangle, quadrupling the area)
-
RSizeNumbersize of right triangle, relative to standard ('standard' sizes are set so that areas of skinny & fat triangles are equal), in terms of side length (e.g. for a rectangle, 2 would mean take a 1x3 rectangle and make it a 2x6 rectangle, quadrupling the area)
