Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 732 commits ahead of dicarlolab:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A purely web-based psychophysics tool for neuroscience and psychology


We are happy to share the mkturk software and hardware and hope it helps with your project. Should this repository help in a substantitive way toward a publication, we would appreciate a brief acknowledgement: "Issa Lab for sharing their web based behavior system (mkturk)."

Getting started

For getting the web app up and running, see Then see the general guide & detailed guide Full list of task parameter definitions

Hosting the web app

Running mkturk is as simple as loading a web page since mkturk is purely a client-side piece of code. This requires a server capable of loading an html. Dropbox and Google Drive have stopped serving html, so other options have to be considered such as GitHub, GitLab, Google Firebase or Amazon S3.

Local hosting of the web app

Even before publishing to the world wide web, mkturk can be run on a local host which is useful for development, debugging, and demo purposes.

Configuring mkturk_installsettings.js

Compared to a regular app, a web app technically doesn't need to be installed in the traditional sense of the word. However, there are still some deployment-specific options to configure, and these are all found in mkturk_installsettings.js.

Browser Compatibility

Although as a web app, mkturk should run on any browser on any device, in reality, we rely on Google Chrome which implements the latest APIs such as the WebUSB API. MkTurk will also run on Safari and Firefox browsers if not using an Arduino (which would require Chrome's WebUSB API).

Setting up the touchscreen device

Depending on the device and which version of Android, you may have control over various settings and will want to adjust the Settings such as touch sensitivity, screen brightness, hiding home menus, disabling side or top swipe menus, disabling automatic dimming of screen, etc.

A very important feature to add is a way to keep the screen on so that it doesn't shut off in the middle of the task. Rather than use an app, we found that by enabling Developer Options, we unlock a feature to keep the screen on. On the latest Android, navigate to Settings -> System -> Developer Options, and enable "Stay awake - Screen will never sleep while charging." Alternatively, you can download an app such as Keep Screen On. Unfortunately, besides Developer Mode or an app, there is no setting in native Android to prevent the screen from shutting off.


Wireless touchscreen behavioral training






No releases published


No packages published


  • JavaScript 63.1%
  • TypeScript 14.1%
  • CSS 11.1%
  • HTML 7.3%
  • Python 2.2%
  • C++ 1.1%
  • SCSS 1.1%