Maintained by Jack Kolb ([email protected]), copyright (C) 2021 RAIL Lab @ Georgia Tech
This test quantifies a user's network inference cognitive skill, or their ability to learn and apply an understanding of a hidden network connecting nodes. The user plays a series of puzzles where they are given a set of nodes, they watch the network propagate color from several example starting nodes, and then they identify the starting node to propagate color through the network in the least time steps. This requires them to understand how nodes are connected to solve each puzzle.
We have previous found a link between performance in this test and performance in robot tasks involving a user's understanding of networked robots.
The test is browser-based, and this repository contains the HTML, CSS, and JavaScript files.
If you are looking to adapt this test for your own work, look into the adjustments below. We ask that you cite this GitHub repository if you use, modify, or create derivatives of our code for your own work.
Recommended adjustments:
- In index.html, make sure you are importing the CSS/JS scripts correctly as per your webserver, an example is provided for Flask.
- In index.html, several game parameters are followed by a comment starting with
//SET THIS
, change these as you see fit. - In puzzles.js, you can add additional functions to create more puzzles, just copy/paste/modify the
generatePuzzle1()
function. Make sure to add these functions in index.html (the networks.puzzles parameter) so they appear in the pre-test. - In utility.js, you can change the logging function to whatever suits your needs. We used POST requests to our webserver. You may want to go through the JS files if your logging system varies substantially from ours.
Optional adjustments:
- In Node.js, you can change the node (square/triangle) height and stroke width in Node.constructor().
- In sidePanel.js, you can change the side panel contents at the various game stages (introduction, observation, response, end puzzle, end game).
Click below to see a demonstration video (will open in YouTube):