Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: August 25, 2016
Last Modified: September 01, 2026 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Tangram script inspired by: www.abcya.com/tangrams.htm Tangram puzzles require spatial reasoning (e.g. Mental Rotation), visual-perceptual abilities, fine motor control and problem-solving skills.
15 minutes
Participants are given 7 individual geometric shapes and are asked to use them to create 6 complex figures. Shapes can be moved via drag and drop. Once a shape is moved, it moves into "rotation mode" and can be rotated via a rotation console that is located at the bottom right of the screen. During "rotation mode", no drag and drop can happen. The rotation mode is exited via a click anywhere on the canvas (with exceptions of the rotation arrows). By default, the task is self-paced.
• 1 practice tangram
• 6 tangrams are presented in predetermined order
(by default - order can be randomized/changed -> list.tangramPresentationOrder)
• the 7 shapes are presented in the same screen positions but with a randomly determined rotation angle
( start angle can be edited under list.selectStartitemnumber)
• no time limit for solution (self-paced)
• participants can either move the individual shapes around or rotate them in a 2D plane by
45degrees using a provided
"Rotation Console" on the lower right of the screen
• solution is submitted by clicking on a "submit" button
Algorithm to determine correct placement of shapes:
- the algorithm to determine the correct placement of shapes assumes that
the provided shapes are being used - it might not function properly with
a different assortment of tangrams nor a different assortment of simple shapes
- it compares the final rotated angle of each shape with all possible correct
rotations for this particular shape and then (if a match is found)
- checks whether the final shape coordinates are within the tolerated distance of the correct
coordinates for this particular rotation.
(algorithm doesn't check placement if the shape is not rotated to the/any correct angle)
- for identical shapes it is also checked if the shapes occupy different
areas of the tangram figure (as they cannot sit on top of each other)
6 tangrams and 5 different shapes are provided by Millisecond (www.abcya.com/tangrams.htm)-
if different tangrams are used, the lists for each tangram as well as the
algorithm for correct responses need to be adapted accordingly.
provided by Millisecond - see section Editable Instructions
File Name: tangrams_summary*.iqdat
| Name | Description |
|---|---|
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| 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 |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| nrCorrect | Number of correctly solved Tangrams |
| propCorrect | Proportion correctly solved Tangrams |
| meanRT | Mean latency (in ms) of correctly solving a Tangram |
| sdRT | Standard deviation (in ms) of the latencies of correctly solving a Tangram |
| tangram1Correct | 1 = tangram 1 was correctly solved; 0 = otherwise |
| tangram1Duration | Duration (in ms) of tangram1 solution (same for all 6 tangrams) |
File Name: tangrams_raw*.iqdat
| Name | Description |
|---|---|
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| 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 |
| 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. |
| practice | 1 = practice trial; 0 = test trial |
| countTangrams | Counts the number of Tangram test problems presented |
| selectAngle | Stores the rotation angle of the currently presented test tangram (1 = 0°, 2 = 45°, 3 = 90°, 4 = 135°, 5 = 180°, 6 = 225°, 7 = 270°, 8 = 315°) |
| lastDropped | Stores the index of the last dropped item |
| responseSelection | Trial.evaluateTamgram: stores 'submit' once the submit button was pressed |
| sumRT | Latency (in ms) of each tangram solution attempt. Measured from onset of tangram to pressing of "submit" button |
| acc | 1 = all 7 shapes were correctly placed; 0 = otherwise !!! the algorithm determineCorrectResponses may not work correctly if different tangrams are used. |
| correctPlacements | Number of correct placements (Max = 7) correct placement = orientation of shape is correct AND its center is within paramters.max_deviationTolerance (default: 5%) of the correct center coordinates !! the algorithm determineCorrectResponses may not work correctly if different tangrams are used. correct1- |
| correct7 | 1 = shape was correctly placed on tangram; 0 = otherwise (for each of the 7 shapes) !!! the algorithm determineCorrectResponses may not work correctly if different tangrams are used. |
| for shapes 1-7 | Shape 1/2: big, red triangles shape 3/4: small, yellow triangles shape 5: purple diamond shape 6: green triangle shape 7: orange parallelogram ! please keep in mind that shape1/2 and shape3/4 are interchangeable. Furthermore, for some configurations alternative angles (not stored in the datafile) for several shapes can be correct as well |
| correctRotation1ItemNumber | The correct angle number stored for the rotated stimuli for shape 1-7 (1 = 0°, 2 = 45°, 3 = 90°, 4 = 135°, 5 = 180°, 6 = 225°, 7 = 270°, 8 = 315°) |
| select1 | The selected itemnumber of the rotated stimuli for shape 1-7 |
| correctX1 | The correct horizontal percentage coordinates for shapes 1-7 |
| correctY1 | The correct vertical percentage coordinates for shapes 1-7 |
| finalX1 | The final horizonal percentage coordinates for shapes 1-7 ( if shape was NOT moved, the pixel converted percentages are off) |
| finalY1 | The final vertical percentage coordinates for shapes 1-7 (Note; if shape was NOT moved, the pixel converted percentages are off) (same for remaining shapes) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| maxDeviationTolerance | The acceptable percentage difference between the correct placement of the images and the final placement of images (=center of image) to still be evaluated as correct (if the shape is correctly rotated) 'correct' placement coordinates were determined by manually clicking on the centers of the correctly positioned shapes and recording the corresponding percentage coordinates in the data file. | 5 |