Giter VIP home page Giter VIP logo

cyclical-tapping's Introduction

Test environment for cyclical pointing tasks

This is a simple test environment for logging cyclical pointing task trials, as described in the ISO 9241-9 standard. The provided configuration file sets up a reciprocal (cyclical) task with nine targets. Mouse movement and clicks as well as information about the used (randomized) test setup are logged in a timestamped, uniquely named log file.

All targets in the trial are drawn on screen at the beginning of the trial. Targets are highlighted in succession. The next target always highlights after a mouseclick.

(Written for a research project at Helsinki Institute for Information Technology.)

Requirements and usage

  • Python 2.7
  • installed libraries: Tkinter, pygame
  • should work on Linux, Windows and OS X (Ubuntu and Windows 7 tested)

Usage: run main.py (e.g. python main.py on Linux)

Test setups

Test setups are pre-defined in config. The comment lines in the config file assist in editing test setups if required. The test environment passes through all D, W combinations in a randomized order. After all combinations have been used, the test setups are randomized again.

A trial with nine targets always ends after 27 left mouseclicks (three rounds are done). Logging only starts after the first mouseclick is registered.

Index of difficulty values covered by the default test setups

D / W 100 80 60 40 20
700 3.0 3.3 3.6 4.2 5.2
600 2.8 3.1 3.4 4.0 4.9
500 2.6 2.8 3.2 3.7 4.7
400 2.3 2.6 2.9 3.4 4.4
300 2.0 2.2 2.5 3.0 4.0

(D values approximate and ID values calculated using the MacKenzie formulation.)

Log files

Log files will be written into a subdirectory named logs. Test setup data and the name of the test subject (filled in at the startup prompt) are logged at the beginning of the file. The rest of the lines consist of a timestamp (in seconds after the start of logging), x and y coordinates of the mouse cursor and x and y coordinates of the center of the current target. Current target gets updated after a mouseclick. Mouseclick lines are otherwise identical to normal position lines but have a CLICK identifier at the end of the line. The sampling rate is roughly 100 fps.

Example log file

# Subject name: Test Subject
# Target width: 20
# Target distance: 689

0.0000	636	48	520	729
0.0102	636	48	520	729
0.0204	636	48	520	729
0.0306	635	49	520	729
0.0408	635	49	520	729
0.0510	635	49	520	729
...
1.2612	516	731	520	729
1.2714	515	731	520	729
1.2815	515	731	520	729
1.2917	515	731	520	729
1.2918	515	731	520	729	CLICK
1.3019	515	731	865	132
1.3121	515	731	865	132
...

A note on operating systems

On OS X and Linux systems filenames are timestamps in the following format:

yyyy-mm-dd-hh:mm:ss.microsec.log

On Windows systems, colon symbols (:) are replaced with full stops (.):

yyyy-mm-dd-hh.mm.ss.microsec.log

On Windows, log files also use CR + LF newlines instead of the simple LF newlines used on Unix based systems.

cyclical-tapping's People

Contributors

lateks avatar

Watchers

James Cloos avatar Kaj Van der Hallen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.