Personal tools
You are here: Home Documentation Running JCT experiments JCT software user documentation

JCT software user documentation

Instructions for using the JCT software for running experiments, including descriptions of input and output file formats

Version 2.2

Joseph Eddy, 10 August 2005
Based upon original version 1.0 by Tim Taylor, 20 May 2005

Last update: Craig Nicol, 22 November 2005


Introduction

This document describes the configuration and use of the JAST Joint Action software and the format of the output data file.

Virtually every aspect of an experiment's behaviour and appearance can be easily specified in the configuration file passed to the program at start up.

When the program begins, it requests a configuration file. This is an experiment configuration file (an xml file of doctype JastExpt), the format of which is explained below. This JastExpt file specifies general details of the experiment, such as the names of the two computers, the text to be shown to the subjects in various situations, the appearance of the cursors, the time limit for the trials, etc.

At the end of the JastExpt file is a list of StimulusSet files. The StimulusSet files provide details of an individual trial; they define the set of shapes used in the trial, their initial layout on the screen and their target configuration.

For reference in the following sections, the main components on the experiment as they appear on screen are indicated in the following figures.

 userdoc_image001.jpg

userdoc_image002.jpg


General Interaction with the Software during an Experiment

When the program starts, it displays a message to say it is waiting for a connection from the other machine. When this message is displayed on both machines, click OK on both machines, and the connection is made. The experimenter is also asked to supply the name of a data file into which data will be recorded during the experiment. If the eye-tracker version of the program is being used, the software will go into eye-tracker configuration mode, in which the experimenter may set up and adjust the eye tracking cameras, and do calibration and validation of the calibration. To leave eye-tracker configuration mode, click the “Offline” button on the eye-tracker host machine. At the beginning of each trial in the eye-tracker version of the program, a screen will be displayed with a fixation point in the centre, this is for drift correction, and the experimenter should accept the fixation once the user fixates on the point. It is easiest if drift correction fixation is accepted on the client machine first (see description of ServerPC and ClientPC in the section "Experiment Configuration Files" for an explanation of the distinction between client and server machine), so the subject on the server machine can’t accidentally start the trial before the client subject is ready. Once these setup actions have been performed, the screen is initialised and a message appears asking the subject to prepare for the beginning of the trial (on the client machine), or to press any key to start the trial (on the server machine). At the start and end of each trial, a synchronisation signal is played consisting of an asterisk at the top of the screen, a beep from the internal speaker and the Windows "Asterisk" sound played once.

The subjects interact with the parts by left-clicking on a part to drag it, and right-clicking to rotate it. Parts rotate about a point of rotation indicated by a small circular graphic (the white dots on the parts in the figures above). Parts can be joined if both subjects drag a part each and they come into contact. Parts break if both users attempt to drag and/or rotate the same part at the same time. Parts also break if they are dragged into the New Part Area (specifically, if the point-of-rotation graphic on the part enters the New Part Area). When a part has been broken, a replacement part can be obtained by clicking on the appropriate New Part Button. The user must left-click on the button and keep the left button pressed while dragging the new part into the main working area of the screen. While this is happening, the new part is shown semi-transparent. The part only actually becomes a fully-functioning part when it is released (the user releases the left mouse button) in the working area (at which point the new part becomes fully opaque). If a new part collides with another part while it is still semi-transparent, or if it is released while still in the New Part Area, it is removed (although not counted as a break).

If a time limit has been specified for the trials (see below), the trial will end when the limit is reached, and the subjects will score zero for that trial if they have not already stopped the trial.

When a subject thinks that the model is complete, they should press the SPACE BAR on the keyboard. They then get a message to say that they should wait for the other subject to respond. The first subject cannot interact with the trial any further until the other subject has responded. The other subject gets a message to say the first subject has requested that the trial ends. The second subject should then press the Y key if they are happy for the trial to end, or the N key if they think the model is not ready. If they press Y, the trial end, both subjects are shown the score they achieved (if it is specified in the config file that this should happen), and the software prepares for the next trial (if any remain). If they press N, the messages on both subjects' screens disappear, and the trial continues (both subjects can interact with the trial again).

At any stage during a trial, the experimenter can press the ESC key to break out of the experiment immediately (stopping the current trial and any ones still to be run).


Experiment Configuration Files (doctype JastExpt)

In the JAST distribution, four example JastExpt files are provided: ExampleJastExpt.xml, AeroplaneJastExpt.xml, ExampleJastExptBothCursors.xml, and AeroplaneJastExptBothCursors.xml. Look at these to get a general feel for what the JastExpt files contain. Most of the content of these files should be self-explanatory.

The individual elements available in the JastExpt file are as follows, and must be included in the order they are listed here. Recognised children of each element in the file are denoted by indentation of the header name. The structure here is also defined in the JastExpt.dtd file included in the JAST distribution.

Title

Provides a title for the configuration file. At present this title is not actually used in the software, although it does appear in the output data file.

ServerPC

Gives the name of the PC that will act as the server in the experiment. This machine keeps a definitive version of the state of the experiment at any instant. The Server PC is also responsible for recording data.

When the program runs, the software queries the PC on which it is running to request the PC's name. If this name matches the name specified in "ServerPC" then the PC adopts the role of Server. A message then appears to inform the user that the server is waiting for a connection from the client machine (unless the client is running in simulate="true" mode - see below).

HINT: this message contains the local PC's name, in square brackets; if you are not sure what names to use in ServerPC and ClientPC, look at the name that comes up in this message when the program begins.

ATTRIBUTES: timeout: time (in seconds) the server will wait for a connection from the ClientPC. If no connection is made in this time, the program quits.

ClientPC

Gives the name of the PC that will act as the client.

ATTRIBUTES: simulate (true|false): if true, the software runs on a single machine (in which parts join together when one is dragged into another even if no-one is holding the other part). This is mainly for testing purposes. Ordinarily simulate should be set to false.

Colours

This section defines a list of colours which can then be referred to in the rest of the file.

Colour

Defines a colour from specified Red, Green, Blue values, and gives it a name

ATTRIBUTES: name, r, g, b: name is any text. r, g, and b are numeric values between 0 and 255 to specify levels of red, green and blue.

NOTE: Because of an oddity in the way the graphics are implemented, you should not use a colour with RGB values of 0,0,0, as this may have unpredictable results (technically, 0,0,0 is used as the transparent "colour key"). If you want to define a colour black, you should use a different value, e.g. 1,1,1.

Display

Defines some general characteristics of the display

ATTRIBUTES: width, height: the resolution of the display (NOTE, this should be a resolution supported by your display and graphics card). fullscreen (true|false) if true, the software goes into fullscreen mode during trials; if false, the trial appears in a window (this should normally only be used for testing). colour: defines the background colour of the display. synccolour: defines the colour of the visual sync signal; this should be set to something with good contrast against colour.

Font

Specifies the name of a TrueType font to be used for displaying text on screen. A default font file, named font.ttf, is supplied, but other font files could be used if desired.

ATTRIBUTES: size, colour: specify the default font size and colour.

CursorOwn

Defines the appearance of the subject's own cursor on their screen.

ATTRIBUTES: diameter: the size of the cursor. colour: the normal colour. colourDrag: the colour of the cursor when the subject is dragging a part. colourRotate: the colour of the cursor when the subject is rotating a part.

CursorOther

Defines the appearance of the subject B's cursor on subject A's screen.

ATTRIBUTES: diameter: the size of the cursor. colour: the normal colour. colourDrag: the colour of the cursor when subject B is dragging a part. colourRotate: the colour of the cursor when subject B is rotating a part.

EyeCursorOwn

Defines the appearance of the subject's own eye-gaze cursor on their screen. This element only has an effect when using the eye-tracker version of the program. It is optional, as well: if it is left unspecified, then the subject’s own eye-gaze will not be tracked by a cursor on her screen.

ATTRIBUTES: diameter: the size of the cursor. colour: the colour of the cursor.

EyeCursorOther

Defines the appearance of the subject B's eye-gaze cursor on subject A's screen. This element only has an effect when using the eye-tracker version of the program. It is optional, as well: if it is left unspecified, then subject B’s eye-gaze will not be tracked by a cursor on subject A’s screen.

ATTRIBUTES: diameter: the size of the cursor. colour: the colour of the cursor.

TargetConfigBox

Defines the appearance of the Target Configuration Box

ATTRIBUTES: drawborder (true|false): if true, a border is drawn around the box (of width "linewidth", colour "colour"). shadebackground (true|false): if true, the whole box area is drawn in colour "colour".

NewPartBox

Defines the appearance of the New Part Area Box

ATTRIBUTES: drawborder (true|false): if true, a border is drawn around the box (of width "linewidth", colour "colour"). shadebackground (true|false): if true, the whole box area is drawn in colour "colour". indicatePartAvailable (true|false): if true, the individual part buttons are drawn opaque if the user can create a new part of that type at that time, otherwise it is drawn semi-transparent to indicate that new parts of that type are currently unavailable. If indicatePartAvailable is set to false, part buttons are always opaque, so the subjects get no hint as to whether a part is available or not.

PartOptions

Defines the appearance and behaviour of movable parts on screen.

ATTRIBUTES: rotatable (true|false): if false, parts cannot be rotated (NOTE: this is not implemented at present: parts can always be rotated, regardless of the option specified here). hsSize: defines the size of the "Hot Spot" graphics that represents the point of rotation of a part. The precise interpretation of hsSize depends upon the value of hsAsPercentage (true|false); if true, hsSize is interpretted as a percentage of the part's total area (e.g. is hsSize=20, the area of the Hot Spot graphic will be 20% of the area of the part - with a minimum diameter specified by hsMinSize, expressed in number of pixels). if hsAsPercentage is false, hsSize is interpretted as an absolute diameter (in pixels) that will be used for Hot Spot graphics on any part. The Hot Spot graphic is drawn in colour "colour".

Score

Defines aspects of the scoring of a model when the subjects complete the task, and whether the score is displayed to the subjects.

ATTRIBUTES: display (true|false): if true, the score is shown on screen to both subjects when they have completed the trial. If false, and end of trial message (see "NoScoreMessage") is shown instead. displayDuration: defines how long (in seconds) the score is displayed on screen. scoreIncompleteModels (true|false): if true, the software attempts to give a score to a model even if it is incomplete (i.e. has parts missing). NOTE: there a various tricky issues involved in scoring incomplete models, and the current implementation is not perfect. It is much safer to stick to "false" for this option, in which case all incomplete models get a score of zero.

Time

Defines whether a time limit is put on trials, and the appearance of the clock on the screen.

ATTRIBUTES: limit: defines the time limit to each trial (in seconds). limit=0 means no time limit. display (true|false): if true, a clock is shown on screen to show how much time remains. direction (up|down) if up, the clock counts up from zero, if down, it counts down from the time limit. size: defines the font size in which the clock is displayed. style (normal|bold|italic|underline): defines the font style for the clock. x: defines the x position at which the clock is drawn on screen (if x=-1, the clock is positioned half-way across the screen). y defines the y position at which the clock is drawn. fgColour defines the foreground colour of the clock text. bgColour defines the colour of the box on which the clock text is written.

Cost

Defines whether a count of number of broken parts is displayed, and its appearance on the screen.

ATTRIBUTES: display (true|false): if true, a count is shown on screen to show the number of broken parts. size: defines the font size in which the count is displayed. style (normal|bold|italic|underline): defines the font style for the count. x: defines the x position at which the count is drawn on screen (if x=-1, the clock is positioned half-way across the screen). y defines the y position at which the count is drawn. fgColour defines the foreground colour of the count text. bgColour defines the colour of the box on which the count text is written.

Output

Defines aspects of saving data to the output file.

ATTRIBUTES: savePeriodMS: defines the period (in milliseconds) between writing current cursor positions to the file. NOTE: all other events (part moving, joining, breaking, etc.) get recorded to the file as and when they occur.

Text

This section defines the content and appearance of any text that is presented to the subject during the experiments. It can therefore be easily changed (e.g. a change of language). For most text, you can also control the font size, style, position etc. You can also define an artibrary number of "Label"s to add any text anywhere on the screen.

ReadyToStartServer

Defines the message that appears on the server machine to prompt the user to press any key to start. This text appears in the default font size and colour.

ReadyToStartClient

Defines the message that appears on the client machine to prompt the user to prepare for the start of the trial. This text appears in the default font size and colour.

TrialEndWaitingForResponse

Defines the message that appears when a subject presses the space bar to request the end of a trial.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

TrialEndRequestYNResponse

Defines the message that appears on Subject B's screen when subject A has pressed the space bar to request the end of the trial.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

ScoreMessage

Defines the text that is prefixed to the score when it is displayed at the end of the trial.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

NoScoreMessage

Defines the text that is displayed at the end of the trial when score is not displayed.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

TimeoutMessage

Defines the message that is displayed when the time limit of the trial is reached.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

AfterTrialMessage

Defines the format for any alert messages displayed after a trial ends.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

Label

Defines an arbitrary text message that will appear on the screen throughout the trial. Zero, one or more of these labels may be specified in the configuration file. In the screenshot at the top of this document, a Label displaying the message "New Parts" appears at the bottom left of the screen. Similar labels could be added to label the clock and the number of breaks, for example.

ATTRIBUTES: size: defines the font size in which the message is displayed. style (normal|bold|italic|underline): defines the font style in which the message is displayed. x: defines the x position at which the message is drawn on screen (if x=-1, the message is positioned half-way across the screen). y defines the y position at which the messageis drawn. fgColour defines the foreground colour of the message text. bgColour defines the colour of the box on which the message text is written.

StimulusSetFile

Specifies a Stimulus Set File to be loaded in. One or more StimulusSetFile elements must appear in the configuration file.

ATTRIBUTES: numTrials: specifies how many consecutive trials should be run using this stimulus set. timeLimit: defines the time limit for this trial (in seconds). This attribute is optional, if it is omitted or set to zero, then the value of the limit attribute in the experiment’s Time element will be used instead. showOtherEyeCursor (true|false): show the other person's eye cursor for this trial. showOtherCursor (true|false): show the other person's mouse cursor for this trial. timeDisplay (defaults to value of <Time display="">): show the clock for this trial. The timeLimit applies whether or not the time is shown. timeDirection (defaults to value of <Time direction="">): define the clock direction for this trial.

Alert

Produces an alert message between trials, using the format specified by AfterTrialMessage in the Text section, which must be defined before using an Alert. The Alert is displayed after the StimulusSetFile trial is complete.

ATTRIBUTES: timeLimit: defines the minimum time the message will be displayed (in seconds). A key must be pressed to remove the message, but any key pressed during the timeLimit will be queued until the timer has finished. This attribute is optional, if it is omitted or set to zero, then the message can be removed immediately via a key press. bmpfile: Defines an image to be displayed as an alert. The image will be centered on the screen. The file must be in BMP format and should be in the same directory as the XML file. If bmpfile is omitted or the file cannot be found, the text inside this element will be displayed instead.


Stimulus Set Configuration Files (doctype StimulusSet)

The StimulusSet files define the parts used in an individual trial, how they are arranged in the target configuration, and how they are arranged initially on screen.

In the JAST distribution, some example stimulus set files are provided: SimpleStimulusSet1.xml, SimpleStimulusSet2.xml, AeroplaneStimulusSet.xml. There is also a file called library.xml, which contains example definitions of a circle and two semi-circles.

StimulusSet

ATTRIBUTES: scale: defines a global scaling factor for all coordinates given in the file. This will normally be set to 1, but can be changed to make all parts larger or smaller.

Title

Provides a title for the stimulus set file. At present this title is not actually used in the software, although it does appear in the output data file.

Colours

Defines a list of colours to be used throughout the rest of the file. For details, see the explanation in the section "Experiment Configuration Files". NOTE: to avoid confusion, you should never define a colour with the same name but different RGB values in the JastExpt and StimulusSet config files. If you use the same names, make sure you have given them the same RGB values across all files. Alternatively use different names for colours in each different file.

PartSet

This section defines each unique type of shape to be used in the trial. NOTE: a new part button is created for each Polygon listed in this section, even if that Polygon is not listed in the TargetConfig section! NOTE: the orientation of each New Part Button will be same as defined in this section.

Polygon

Defines a single part type, as a list of vertices. Note that the vertices should be listed in a clockwise manner. Also note that all vertices should have positive x and y coordinates (i.e. do not centre the Polygon at position (0,0), but treat (0,0) as the position of the top-left corner of the bounding box around the Polygon).

ATTRIBUTES: id: a name for the Polygon, which must be unique. This is used to refer to the Polygon elsewhere in the file. scale: defines a scaling factor for all Vertex x, y coordinates for this Polygon. This will normally be 1, but can be changed to easily produce a larger or smaller part. rotSymAngle: defines the angle of rotational symmetry (between 0 and 359) for the part. This is only actually required for the root part in the TargetConfig (see below). An angle of 0 indicates the part has no rotational symmetry. Otherwise the angle is that through which the part must be rotated to attain a symmetrical orientation (e.g. 90 for a square, 180 for a rectangle). colour: defines the colour in which the part is drawn.

Vertex

Defines the x and y position of an individual vertex in the polygon. (NOTE these are defined in a local coordinate system for this specific Polygon. x and y must both be positive).

InitialConfig

This section defines how the inidividual parts are laid out on the screen at the start of a trial.

ConfigArea

Defines the width and height of the area on the screen in which the initial parts are laid out at the start of an experiment. This area is always positioned on the right of the screen, between the New Part Area Box and the Target Configuration Box.

PartAbsPos

Specifies the placement of an individual part relative to the top-left point of the initial ConfigArea. Any individual type of Polygon can be used more than once in the InitialConfig section (apart from the root part, which must only appear once - see TargetConfig below), but it should also appear the same number of times in the TargetConfig section.

ATTRIBUTES: type: the id of a Polygon defined in the PartSet section. x,y the position at which the geometric centre of the part will be placed (relative to the top-left point of the initial ConfigArea - so x and y should be positive). rotation (in degrees, 0-359) defines the rotation of the part in the initial ConfigArea, relative to its orientation as defined in the PartSet section.

TargetConfig

This section defines how the individual parts are laid out in the target configuration. In contrast to the InitialConfig specification (where the position of each part was defined relative to the top-left of the InitialConfig area, the position of parts in the TargetConfig are defined relative to a root part. The root part is used for matching a model built by the subjects during a trial with the Target configuration defined in this file - before the model is compared to the target, the position and orientation of their root parts are aligned. For this reason, the Polygon specified as a root part cannot be used for any other part. Also, care must be taken to specify the correct rotational symmetry for this root part Polygon (see the rotSymAngle attribute of Polygon above) - this is essential so the software can treat rotationally symmetric orientations as identical when matching the model with the target.

ConfigArea

Defines the width and height of the area on the screen in which the target configuration is laid out. This area is always positioned at the top right of the screen.

PartAbsPos

This element must appear once and only once in the TargetConfig spec. The part specified here is the root part. The Polygon used for the root part cannot be used by any other part in the TargetConfig. The position of the root part is defined relative to the top-left point of the TargetConfig Area. Take care to specify the correct rotational symmetry angle for the Polygon used as the root part.

ATTRIBUTES: type: the id of a Polygon defined in the PartSet section. x,y the position at which the geometric centre of the part will be placed (relative to the top-left point of the target ConfigArea - so x and y should be positive). rotation (in degrees, 0-359) defines the rotation of the part in the targetConfigArea, relative to its orientation as defined in the PartSet section.

PartRelPos

In the TargetConfig, each part apart from the root part has its position defined relative to the geometric centre of the root part (NOTE: orientations are, however, still defined in absolute terms). So there must be one PartRelPos element in the TargetConfig section for each part listed in the InitialConfig section (apart from the Root Part, which is defined in PartAbsPos above).

ATTRIBUTES: type: the id of a Polygon defined in the PartSet section. x,y the position at which the geometric centre of the part will be placed (defined relative to the geometric centre of the root part, so x and y can be positive or negative). rotation (in degrees, 0-359) defines the rotation of the part in the targetConfigArea, relative to its orientation as defined in the PartSet section.

NewPartArea

Defines some aspects of the appearance of the New Part Area Box

ATTRIBUTES: width: defines the width of the box (in pixels). If width is not specified, the box will take up the whole width of the screen. height: defines the height of the box (in pixels). rows: defines the number of rows of buttons (normally set to 1, but can be more). NOTE: if the capacity of the New Part Area Box (as defined by its width, height and number of rows) is too small to fit in the graphics for all the New Part Buttons, the buttons are scaled so that they do fit in the specified area. If you don't like this, try specifying a larger height for the box. NOTE: the New Part Box area will always contain the number of rows specified here, even if that number of rows is not required to show all the parts. Only use a number of rows > 1 if you have lots of parts.

The ellipsegen utility

Arbitrary Polygons can be specified using the scheme outlined above. Defining Polygons for shapes with straight sides is easy, but defining a set of Vertices to represent a curve is more tricky. To help, a small utility program, called ellipsegen, is provided, which will create a set of Vertices to represent an ellipse of specified dimensions.

This is a command-line program (run it from a DOS prompt), and is called as follows:

ellipsegen a b n outfile

where

a is the radius of the major axis of the ellipse

b is the raidus of the minor axis of the ellipse

n is the number of Vertices of be generated to approximate the ellipse

outfile is the name of a file into which the Vertices will be written.


Further Configuration: The globals.h file

The JastExpt and StimulusSet files allow the experimenter to configure the experiments in a rich variety of ways. This should be sufficient for all forseeable cases. However, just about every other arbitrary choice made when desiging the software can be changed easily in the globals.h source file. NOTE: this should only be done if absolutely necessary, and will require the source code to be recompiled. Make sure you have a backup copy of the original source code before making changes!

Inspect the globals.h file for more information. Briefly, though, the sorts of things that can be changed here include the text used in the output data file, the keys that the subject has to press to stop a trial etc., the duration of the breaking part "fade" effect, the transparency of newly created parts, the number of digits allowed for in the "Number of Breaks" box, etc.


Format of the Output Data File

Data from the experiment is written to the file specified by the experimenter. If the eye-tracker version of the software is being used, a file with an “.edf” extension (EyeLink Data File) will be created. In this case, the experimenter will have to use SR Research’s EDF2ASC converter program to create an ASCII version of the file for post-processing. If the non-eye-tracker version of the software is being used, a file with an “.asc” extension (ASCII Data File) will be created. This is a flat file format written in plain text, designed to match the flat files created by AR Research’s EDF2ASC program.

The following is a description of the contents of the file that the JAST software records. If the eye-tracker version of the software is being used, this data will also be interspersed with automatically-logged data from the EyeLink II host machine, the format of which is discussed briefly further below, and in more detail in the user manuals provided by SR Research.

The first line of the file gives the date and time at which the experiment began.

The file then lists the name of the JastExpt configuration file and each StimulusSet files used in the experiment. The previous version of the software also listed the contents of these files, but this has been removed because of compatibility issues with EyeLink II data logging, be sure to keep unaltered copies of the JastExpt and StimulusSet files used for the experiment, they will be needed for video creation and data post-processing!

Next, there is a message that records the screen coordinates of the trial, left, top, right, and bottom.

Next, there is a message that records the display’s frame-rate, if the software is able to determine it.

Next, if the eye-tracker version of the software is being used, there is a message that records the gaze coordinates of the trial, left, top, right, and bottom.

Next, data from the first trial begins. This starts as follows:

A COMMENCING_TRIAL tag shows which trial number of which StimulusSet file is about to begin.

For each new part created in the initial configuration, a NEW_PART_INIT tag shows the part's id, type, position and rotation.

These tags are followed by time-stamped entries for all significant events during a trial. The different types of tags are listed in the following table.

The data logged by the JAST software will show up in the log file in the following format:

MSG 2428731 DISPLAY_COORDS 0 0 1023 767

“MSG” followed by a tab, then space-delimited values of a timestamp, the data file tag for the event that has occurred, and then any other extra data that needs to be recorded for the event.

TAG IN DATA FILE

EVENT

EXTRA DATA AFTER TAG

DISPLAY_COORDS

 


left top right bottom

FRAMERATE

 


rate units

GAZE_COORDS

 


left top right bottom (NOTE: this is only recorded if the eye-tracker version of the program is being used)

NEW_PART_INIT

JDF_PART_CREATE_INITIAL

id type x y rot

START

JDF_EXPT_START

n (n:1=recorded on server machine, 0=recorded on client machine)

SYNCTIME

 


synchronized trial time

END

JDF_EXPT_END

 


ABORT_BY_SUBJECT

JDF_EXPT_ABORT_BY_SUBJECT

n (n:1=subject on server machine, 0=subject on client machine)

END_BY_SUBJ_REQUESTED

JDF_EXPT_END_BY_SUBJECT_REQUESTED

n (n:1=subject on server machine, 0=subject on client machine)

END_BY_SUBJ_CONFIRMED

JDF_EXPT_END_BY_SUBJECT_CONFIRMED

n score cost [ascore] (n:1=subject on server machine, 0=subject on client machine) if ascore exists, score has been transformed from ascore (pixel overlap) to a new range

END_BY_SUBJ_REJECTED

JDF_EXPT_END_BY_SUBJECT_REJECTED

n (n:1=subject on server machine, 0=subject on client machine)

END_TIMEOUT

JDF_EXPT_END_TIMEOUT

 


FATAL_ERROR

JDF_ABORT_FATAL_ERROR

error

MS_BTN_DN_L

JDF_MOUSE_BUTTON_DOWN_LEFT

(NOTE: mouse button events are only recorded on the machine on which they occur)

MS_BTN_DN_R

JDF_MOUSE_BUTTON_DOWN_RIGHT

(NOTE: mouse button events are only recorded on the machine on which they occur)

MS_BTN_UP_L

JDF_MOUSE_BUTTON_UP_LEFT

(NOTE: mouse button events are only recorded on the machine on which they occur)

MS_BTN_UP_R

JDF_MOUSE_BUTTON_UP_RIGHT

(NOTE: mouse button events are only recorded on the machine on which they occur)

MP

JDF_MOUSE_POSITION

n x y (n:1=server mouse pos, 0=client mouse pos) (NOTE: these are recorded at a frequency defined by savePeriodMS in the Output section of the JastExpt config file)

EGP

JDF_EYE_GAZE_POSITION

x y (NOTE: these are recorded at a frequency defined by savePeriodMS in the Output section of the JastExpt config file, and are only recorded by the JAST software for the other subject and only if the eye-tracker version of the program is being used, the machine’s own eye-gaze data is automatically logged by the EyeLink II server)

PT_BREAK

JDF_PART_BREAK

id reason

PT_REMOVE

JDF_PART_REMOVE

id break (break:T=counts as break,F=does not count)

PT_DRAG_START

JDF_PART_DRAG_START

id n (n:1=dragged on server machine, 0=dragged on client machine)

PT_DRAG_STOP

JDF_PART_DRAG_STOP

id n (n:1=dragged on server machine, 0=dragged on client machine)

PT_ROT_START

JDF_PART_ROTATE_START

id n (n:1=rotated on server machine, 0=rotated on client machine)

PT_ROT_STOP

JDF_PART_ROTATE_STOP

id n (n:1=rotated on server machine, 0=rotated on client machine)

PT_JOIN

JDF_PART_JOIN

id1 id2 newid x1 y1 rot1 x2 y2 rot2

NEW_PART_FROM_BTN

JDF_PART_CREATE_FROM_BTN

id type x y rot

PT_SET_NEW

JDF_PART_SET_NEW_FLAG

id new (new:T=true,F=false)

PT_COLL_PART

JDF_PART_COLLISION_PART

id1 id2

PT_COLL_BOUNDARY

JDF_PART_COLLISION_BOUNDARY

id

PT_MV

JDF_PART_MOVE

id x y (multiple PT_MV events occur between PT_DRAG_START and PT_DRAG_END events, with an accuracy of about 1 PT_MV event per pixel moved, but sampling rate affects this accuracy)

PT_MV_RESET

JDF_PART_MOVE_RESET

id x y

PT_ROT

JDF_PART_ROTATE

id rot

PT_ROT_RESET

JDF_PART_ROTATE_RESET

id rot

NUM_BREAKS

JDF_NUM_BREAKS

num

Some of the important data lines that are automatically logged by the EyeLink II host machine (if the eye-tracker version of the program is being used), and their format, are described below:

MSG 2447824 !CAL

Calibration messages, these will appear wherever eye-tracker calibration is done. There are a few different types of calibration messages, described in more detail in the SR Research documentation.

START    2940064   RIGHT     SAMPLES   EVENTS
END  3090923  SAMPLES   EVENTS    RES   25.39     21.82

Block Start and End. START lines mark the beginning of a block of recorded samples, events, or both. In this example, we began recording samples and events for the right eye at time 2940064. END lines mark the end of a block of data. In this example, we ended recording of gaze samples and events at time 3090923, and during the recording block there was an average x resolution of 25.39 and an average y resolution of 21.82.

PRESCALER 1
VPRESCALER    1
EVENTS    GAZE RIGHT    RATE  500.00   TRACKING  P   FILTER   2
SAMPLES   GAZE RIGHT    RATE  500.00   TRACKING  P   FILTER   2

Data-Specification Lines. The PRESCALER line gives a value that gaze-position data and gaze-position resolution must be divided by, if they are used saccades and events. The VPRESCALER line gives a value that velocity data must be divided by. When EDF2ASC is used, PRESCALER and VPRESCALER values are always 1, so they can be ignored for JAST purposes. The EVENTS line specifies what types of data is present in event lines, as a sequence of keywords. In this case, GAZE events are recorded for the RIGHT eye, and are sampled at a RATE of 500.00 Hz (one sample every 2 milliseconds). The eye gaze is being tracked using the pupil (TRACKING P), and we are using the “extra” filter level (FILTER 2). The SAMPLES line specifies what types of data is present in sample lines, as a sequence of keywords. In this case, GAZE samples are recorded for the RIGHT eye, and are sampled at a RATE of 500.00 Hz (one sample every 2 milliseconds). The eye gaze is being tracked using the pupil (TRACKING P), and we are using the “extra” filter level (FILTER 2).

2940064    469.7     233.7    293.0   .

Sample line that contains time, position, and pupil size data. In this case, the eye being tracked was at (x,y) position (469.7,233.7) at time 2940064, with a pupil size of 293.0. The dot (.) at the end means that the sample was not interpolated, if it was interpolated, there would be an “I” as the last element of the line, instead.

SFIX R  2940072
EFIX R  2940072   2940294   224   468.3     240.0  289

Fixations. The start of fixations are reported with a SFIX line. In this case, a fixation of the right eye began at time 2940072. The end of and summary data on the fixation is reported with the EFIX line. This reports the time of the first and last sample in the fixation, and computes the duration of the fixation in milliseconds. The average X and Y eye position and the average pupil size are reported. In this case, a fixation of the right eye began at time 2940072 and ended at time 2940294, with duration of 224 milliseconds. The average X position was 468.3 and the average Y position was 240.0. The average pupil size was 289.

SSACC R  2940296
ESACC R  2940296   2940338   44    467.4     212.6    462.5    135.8       3.44      124

Saccades. The start of saccades are reported with a SSACC line. In this case, a saccade of the right eye started at time 2940296. The end of and summary data on the saccade are reported with the ESACC line. This reports the time of the first and last sample in the saccade, and computes its duration in milliseconds. The X and Y eye position at the start and end of the saccade are listed. The total visual angle coveres in the saccade is reported, which can be divided by the duration/1000 to obtain the average velocity. Peak velocity is given, as well. In this case, a saccade of the right eye started at time 2940296 and ended at time 2940338, with duration of 44 milliseconds. The saccade started at (x,y) position (467.4,212.6) and ended at (x,y) position (462.5,135.8). The total visual angle covered by the saccade was 3.44, and the peak velocity was 124.

SBLINK R 2946212
EBLINK R 2946212   2946246   36

Blinks. Blinks (periods of data where the pupil is missing) are reported by the SBLINK and EBLINK lines. The time of the start of the blink is indicated by the SBLINK line. In this case, a blink of the right eye started at time 2946212. The end and duration are given in the EBLINK event. In this case, the blink of the right eye started at time 2946212, and ended at time 2946246, with duration of 36 milliseconds.

When a trial ends, data for the next trial commences, following the same format.

Document Actions