Metadata-Version: 2.4
Name: pysio-hermes-pupillabs
Version: 0.0.4
Summary: A Pupil Labs smartglasses support module for HERMES
Author: e-Media Research Lab @ KU Leuven
Author-email: Maxim Yudayev <maxim.yudayev@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://maximyudayev.github.io/hermes
Project-URL: Documentation, https://maximyudayev.github.io/hermes
Project-URL: Repository, https://github.com/maximyudayev/hermes-pupillabs.git
Project-URL: Issues, https://github.com/maximyudayev/hermes/issues
Project-URL: Changelog, https://github.com/maximyudayev/hermes-pupillabs/blob/main/CHANGELOG.md
Keywords: embedded ai,wearables,sensors,eye tracking,smartglasses,ego vision,pupil labs,streaming,realtime processing,physiology
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pysio-hermes
Requires-Dist: pupil-labs-uvc
Dynamic: license-file

# HERMES - PupilLabs Core

Support package to interface the [Pupil Labs Core](https://pupil-labs.com/products/core) commercial smartglasses in [HERMES](https://github.com/maximyudayev/hermes).

## Options

### `core`
Obtains all data generated by the OEM [Pupil Capture](https://docs.pupil-labs.com/core/getting-started/) application, i.e. video, gaze, blinks, fixations, etc.

#### Pros
* Simple out-of-the-box install
* Visual configuration in the OEM GUI
* [Network API](https://docs.pupil-labs.com/core/developer/network-api/) through [ZeroMQ](https://zeromq.org/) to other LAN devices

#### Cons
* Lower video frame rate
* Heavy resource utilization for constrained devices (w/ or w/o GUI)
* More difficult to add custom realtime gaze processing
* Reprocessing gaze data in setups with poor realtime results with OEM algorithms (because of occlusions, reflections, shape face) don't guarantee better results on lossy videos

### `uvc`
Interfaces cameras directly using [pyuvc](https://github.com/pupil-labs/pyuvc). Follow [these instructions](https://github.com/pupil-labs/pyuvc/blob/master/WINDOWS_USER.md) on Windows to update the USB driver of the device to work as expected.

#### Pros
* Full stable frame rate
* Safe against accidental cable disconnection (just plug back in)
* Low resource utilization
* Cross-platform
* Constrained device friendly
* Flexibility to add own realtime algorithms

#### Cons
* Doesn't provide out-of-the-box GUI for camera lighting settings
* Requires custom realtime algorithms if gaze data is desired

## Installation
Both options available under the same namespace `hermes.pupillabs` package upon installation, as `PupilCoreProducer` or `PupilUvcProducer`, respectively.

### From PyPI
```bash
pip install pysio-hermes-pupillabs
```

### From source
```bash
git clone https://github.com/maximyudayev/hermes-pupillabs.git
pip install -e hermes-pupillabs
```

## Usage
Using the device follows the standard [configuration file specification](https://maximyudayev.github.io/hermes/) process of HERMES nodes.

## Citation
When using any parts of this repository outside of its intended use, please cite the parent project [HERMES](https://github.com/maximyudayev/hermes).
