# IMPORTANT
In case, this toolbox doesn't works as intended or you find some issues, create an issue in the tracker (https://github.com/VinayIN/EyeTrackerAnalyzer/issues) and I will try to resolve it. (Please attach errors & log)
# EyeTrackerAnalyzer
- This provides a real-time eyetracking metric (especially fixation & Saccades).
- This tool also provides for validation of the eye-tracker performance on a user.
- The tool provides `22 channels`, following table describes the EEG channel information in order:
| No. | Channel Name | Type | Unit |
|-----|-----------------------------|----------------|------------|
| | **Left Eye** | | |
| 1 | `left_gaze_x` | gaze | normalized |
| 2 | `left_gaze_y` | gaze | normalized |
| 3 | `left_pupil_diameter` | pupil | mm |
| 4 | `left_fixated` | fixation | boolean |
| 5 | `left_velocity` | velocity | px |
| 6 | `left_fixation_timestamp` | timestamp | s |
| 7 | `left_fixation_elapsed` | duration | s |
| 8 | `left_filtered_gaze_x` | filtered_gaze | normalized |
| 9 | `left_filtered_gaze_y` | filtered_gaze | normalized |
| | **Right Eye** | | |
| 10 | `right_gaze_x` | gaze | normalized |
| 11 | `right_gaze_y` | gaze | normalized |
| 12 | `right_pupil_diameter` | pupil | mm |
| 13 | `right_fixated` | fixation | boolean |
| 14 | `right_velocity` | velocity | px |
| 15 | `right_fixation_timestamp` | timestamp | s |
| 16 | `right_fixation_elapsed` | duration | s |
| 17 | `right_filtered_gaze_x` | filtered_gaze | normalized |
| 18 | `right_filtered_gaze_y` | filtered_gaze | normalized |
| | **Screen Data** | | |
| 19 | `screen_width` | screen | px |
| 20 | `screen_height` | screen | px |
| 21 | `timestamp` | timestamp | s |
| 22 | `local_clock` | timestamp | s |
## Installation
Download the `pyeta-<version>-py3-none-any.whl` file from here: https://github.com/VinayIN/EyeTrackerAnalyzer/releases and install using `pip`
```bash
# move the .whl file to your workspace
# once moved verify using ls bash command, if found
# replace .whl file with the one just downloaded. it should have this format with a different <version>
pip install pyeta-<version>-py3-none-any.whl
```
or
`CAUTION: This below method installs the developement version and might have bugs`
```bash
pip install git+https://github.com/VinayIN/EyeTrackerAnalyzer.git
```
## Usage
There are 2 ways this tool can be used (CLI - `track/window/validate` & GUI - `browser/application`), both are showed below:
*prerequisite: `pyETA needs to be installed`*
### 1. CLI
#### Command:
```bash
pyETA track
```
#### Parameters:
- `--push_stream:` Pushes the data to an LSL stream.
- `--data_rate:` Specifies the rate of the data stream.
- `--use_mock:` Uses a mock service for the eye tracker.
- `--fixation:` Adds fixation duration to the data stream.
- `--velocity:` Specifies the velocity threshold for fixation.
- `--accept_screen_nans:` Avoids correcting for NaNs.
- `--save_data:` Saves the data to a file.
- `--verbose:` Displays debug statements.
- `--duration:` Specifies the duration for which to track the data.
- `--screen_index:` for multi-screen execution, use the index to capture the data from a specific screen with the resolution
An example with tracker running with fixation and a mock service that runs for a duration of 10sec and stops (if --use_mock is not provided, it searches for the eye tracker)
```bash
pyETA track --fixation --use_mock --duration 10
```
------
##### Command:
```bash
pyETA window
```
#### Parameters:
- `--use_mock:` Use mockup tracker
- `--screen_index:` Screen index to display the validation window
- `--verbose:` Enable verbose logging
Example with parameters to run the validation window
```bash
pyETA window --use_mock --screen_index=0
```
_____
##### Command:
```bash
pyETA validate
```
#### Parameters:
- `--csv:` Name of the output CSV file. (example: myfile.csv)
Example with parameters to fetch the metrics
```bash
pyETA validate --csv=myfile.csv
```
_____
#### 2. GUI
##### Command:
```bash
pyETA browser
```
##### Parameters:
- `--debug:` Enables debug mode.
- `--port:` Specifies the port number for the Dash application.
Example with debug mode and starting at port 8050 (Access it here: http://localhost:8050)
```bash
pyETA browser --debug --port 8050
```
-------
##### Command:
```bash
pyETA application
```
Raw data
{
"_id": null,
"home_page": "https://github.com/VinayIN/EyeTrackerAnalyzer.git",
"name": "pyETA-toolbox",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.11,>=3.10",
"maintainer_email": null,
"keywords": "eyetracker, tobii, mock tobii, passiveBCI",
"author": "Binay Kumar Pradhan",
"author_email": "bpradhan.asli@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/58/6e/0df00a7f5f56fa426532b20712a12f9fa5f5b2243baa7c90f26783b8e41f/pyeta_toolbox-0.0.8.tar.gz",
"platform": null,
"description": "# IMPORTANT\nIn case, this toolbox doesn't works as intended or you find some issues, create an issue in the tracker (https://github.com/VinayIN/EyeTrackerAnalyzer/issues) and I will try to resolve it. (Please attach errors & log)\n\n# EyeTrackerAnalyzer\n- This provides a real-time eyetracking metric (especially fixation & Saccades).\n- This tool also provides for validation of the eye-tracker performance on a user.\n- The tool provides `22 channels`, following table describes the EEG channel information in order:\n\n| No. | Channel Name | Type | Unit |\n|-----|-----------------------------|----------------|------------|\n| | **Left Eye** | | |\n| 1 | `left_gaze_x` | gaze | normalized |\n| 2 | `left_gaze_y` | gaze | normalized |\n| 3 | `left_pupil_diameter` | pupil | mm |\n| 4 | `left_fixated` | fixation | boolean |\n| 5 | `left_velocity` | velocity | px |\n| 6 | `left_fixation_timestamp` | timestamp | s |\n| 7 | `left_fixation_elapsed` | duration | s |\n| 8 | `left_filtered_gaze_x` | filtered_gaze | normalized |\n| 9 | `left_filtered_gaze_y` | filtered_gaze | normalized |\n| | **Right Eye** | | |\n| 10 | `right_gaze_x` | gaze | normalized |\n| 11 | `right_gaze_y` | gaze | normalized |\n| 12 | `right_pupil_diameter` | pupil | mm |\n| 13 | `right_fixated` | fixation | boolean |\n| 14 | `right_velocity` | velocity | px |\n| 15 | `right_fixation_timestamp` | timestamp | s |\n| 16 | `right_fixation_elapsed` | duration | s |\n| 17 | `right_filtered_gaze_x` | filtered_gaze | normalized |\n| 18 | `right_filtered_gaze_y` | filtered_gaze | normalized |\n| | **Screen Data** | | |\n| 19 | `screen_width` | screen | px |\n| 20 | `screen_height` | screen | px |\n| 21 | `timestamp` | timestamp | s |\n| 22 | `local_clock` | timestamp | s |\n\n## Installation\nDownload the `pyeta-<version>-py3-none-any.whl` file from here: https://github.com/VinayIN/EyeTrackerAnalyzer/releases and install using `pip`\n```bash\n# move the .whl file to your workspace\n# once moved verify using ls bash command, if found\n# replace .whl file with the one just downloaded. it should have this format with a different <version> \npip install pyeta-<version>-py3-none-any.whl\n```\nor\n\n`CAUTION: This below method installs the developement version and might have bugs`\n```bash\npip install git+https://github.com/VinayIN/EyeTrackerAnalyzer.git\n```\n\n## Usage\nThere are 2 ways this tool can be used (CLI - `track/window/validate` & GUI - `browser/application`), both are showed below:\n\n*prerequisite: `pyETA needs to be installed`*\n\n### 1. CLI\n#### Command:\n```bash\npyETA track\n```\n#### Parameters:\n- `--push_stream:` Pushes the data to an LSL stream.\n- `--data_rate:` Specifies the rate of the data stream.\n- `--use_mock:` Uses a mock service for the eye tracker.\n- `--fixation:` Adds fixation duration to the data stream.\n- `--velocity:` Specifies the velocity threshold for fixation.\n- `--accept_screen_nans:` Avoids correcting for NaNs.\n- `--save_data:` Saves the data to a file.\n- `--verbose:` Displays debug statements.\n- `--duration:` Specifies the duration for which to track the data.\n- `--screen_index:` for multi-screen execution, use the index to capture the data from a specific screen with the resolution\n\nAn example with tracker running with fixation and a mock service that runs for a duration of 10sec and stops (if --use_mock is not provided, it searches for the eye tracker)\n```bash\npyETA track --fixation --use_mock --duration 10\n```\n------\n##### Command:\n```bash\npyETA window\n```\n#### Parameters:\n- `--use_mock:` Use mockup tracker\n- `--screen_index:` Screen index to display the validation window\n- `--verbose:` Enable verbose logging\n\nExample with parameters to run the validation window\n```bash\n pyETA window --use_mock --screen_index=0 \n```\n_____\n##### Command:\n```bash\npyETA validate\n```\n#### Parameters:\n- `--csv:` Name of the output CSV file. (example: myfile.csv)\n\nExample with parameters to fetch the metrics\n```bash\n pyETA validate --csv=myfile.csv\n```\n_____\n\n#### 2. GUI\n##### Command:\n```bash\npyETA browser\n```\n##### Parameters:\n- `--debug:` Enables debug mode.\n- `--port:` Specifies the port number for the Dash application.\n\nExample with debug mode and starting at port 8050 (Access it here: http://localhost:8050)\n```bash\n pyETA browser --debug --port 8050\n```\n-------\n##### Command:\n```bash\npyETA application\n```\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "This toolbox provides a realtime visualization of eye tracking data to be used for designing passive BCI system.",
"version": "0.0.8",
"project_urls": {
"Homepage": "https://github.com/VinayIN/EyeTrackerAnalyzer.git",
"Repository": "https://github.com/VinayIN/EyeTrackerAnalyzer.git"
},
"split_keywords": [
"eyetracker",
" tobii",
" mock tobii",
" passivebci"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "88c695bf7fc9d235699f4c8932ab8f028693d197a5581d4327a3e89ac244984e",
"md5": "9fd68bb11865c8a0a13ab37b61a01ac5",
"sha256": "49702c185fee83a28dadc0f6e040776ee43987f05876c147266d22e1b2911823"
},
"downloads": -1,
"filename": "pyeta_toolbox-0.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9fd68bb11865c8a0a13ab37b61a01ac5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.11,>=3.10",
"size": 61936,
"upload_time": "2025-02-03T18:56:11",
"upload_time_iso_8601": "2025-02-03T18:56:11.138146Z",
"url": "https://files.pythonhosted.org/packages/88/c6/95bf7fc9d235699f4c8932ab8f028693d197a5581d4327a3e89ac244984e/pyeta_toolbox-0.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "586e0df00a7f5f56fa426532b20712a12f9fa5f5b2243baa7c90f26783b8e41f",
"md5": "ab284863b509a58edb34caa535df1e03",
"sha256": "734b9eec433abef5dc868ab65b3ce4b209e6cffa6fefec232d59579e6ed48425"
},
"downloads": -1,
"filename": "pyeta_toolbox-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "ab284863b509a58edb34caa535df1e03",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.11,>=3.10",
"size": 61033,
"upload_time": "2025-02-03T18:56:12",
"upload_time_iso_8601": "2025-02-03T18:56:12.613796Z",
"url": "https://files.pythonhosted.org/packages/58/6e/0df00a7f5f56fa426532b20712a12f9fa5f5b2243baa7c90f26783b8e41f/pyeta_toolbox-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-03 18:56:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "VinayIN",
"github_project": "EyeTrackerAnalyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pyeta-toolbox"
}