Class project to prove Fitt's Law, archived
Find a file
2024-02-20 21:57:12 -06:00
data upload data 2024-02-19 15:06:01 -06:00
.gitignore create executable and add gitignore 2024-02-13 14:43:33 -06:00
completed_page.py donezo 2024-02-13 16:06:30 -06:00
csv_data_collector.py allow script to create data folder 2024-02-13 15:08:30 -06:00
Fitts' Law Informed Consent.pdf Create Fitts' Law Informed Consent.pdf 2024-02-13 17:35:13 -06:00
FittsLawRegression.xlsx add statistics computation 2024-02-20 15:18:08 -06:00
FittsLawReport.pdf update report 2024-02-20 20:15:44 -06:00
main.exe readd executable 2024-02-20 21:57:12 -06:00
main.py donezo 2024-02-13 16:06:30 -06:00
README.md update README and fix path 2024-02-13 14:55:24 -06:00
requirements.txt move to main.py and add requirements 2024-02-06 16:07:16 -06:00
stats.py add statistics computation 2024-02-20 15:18:08 -06:00

Fitts' Law Experiment

This is the repository and data for a class project (CS 470: Topics in Human Computer Interaction).

What is Fitts' Law?

Fitts law states that the amount of time required for a person to move a pointer (e.g., mouse cursor) to a target area is a function of the distance to the target divided by the size of the target. Thus, the longer the distance and the smaller the targets size, the longer it takes.

Taken from interaction-design.org

Run the experiment

First, you need to install the dependencies:

pip install -r requirements.txt

Then, you just need to run the main script:

python main.py

Alternatively, there is an executable provided (created with pyInstaller).

The Data

Snippet from the example

Distance ,Size ,Direction ,Time               ,Distance Traveled   ,Errors
     300 , 128 ,1         ,1.3636281490325928 , 68.4470598345904   ,     0
     500 , 128 ,1         ,1.9782507419586182 , 57.982756057296896 ,     1
     300 ,  64 ,1         ,0.9403584003448486 , 33.83784863137726  ,     0
     300 , 196 ,1         ,1.4766018390655518 ,123.5556554755791   ,     2
     400 , 256 ,-1        ,0.5160679817199707 ,117.18361660232202  ,     0
...

The distance and size (in pixels) columns are each selected from a list of 4 options defined at the top of main.py. The next option, direction, denotes which side of the screen the button appeared on, -1 means left, 1 means right. The distance traveled is measured by its Euclidean distance from the center. Finally, errors is the amount of misclicks before correctly clicking the button.