pyETA-toolbox


NamepyETA-toolbox JSON
Version 0.0.8 PyPI version JSON
download
home_pagehttps://github.com/VinayIN/EyeTrackerAnalyzer.git
SummaryThis toolbox provides a realtime visualization of eye tracking data to be used for designing passive BCI system.
upload_time2025-02-03 18:56:12
maintainerNone
docs_urlNone
authorBinay Kumar Pradhan
requires_python<3.11,>=3.10
licenseGPL-3.0
keywords eyetracker tobii mock tobii passivebci
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.43302s