Skip to main content

PyEyesWeb is a research toolkit for extracting quantitative features from human movement data.

Project description

PyEyesWeb

Expressive movement analysis toolkit

A modern, modular, and accessible Python library for expressive movement analysis — bridging research, health, and the arts

PyPI version Docs License

[!WARNING] This library is currently being refactored. Expect breaking API changes and frequent updates in the short term. Please use with caution and report any issues.

PyEyesWeb is a research toolkit for extracting quantitative features from human movement data.
It builds on the Expressive Gesture Analysis library of EyesWeb, bringing expressive movement analysis into Python as a core aim of the project. The library provides computational methods to analyze different qualities of movement, supporting applications in research, health, and the arts.
It is designed to facilitate adoption in artificial intelligence and machine learning pipelines, while also enabling seamless integration with creative and interactive platforms such as TouchDesigner, Unity, and Max/MSP.

Installation

pip install pyeyesweb

Usage

A minimal example of extracting movement features with PyEyesWeb :

from pyeyesweb.data_models import SlidingWindow
from pyeyesweb.low_level import Smoothness

# Movement smoothness analysis
# 1. Initialize the feature extractor (e.g., 50Hz sampling rate)
smoothness = Smoothness(rate_hz=50.0)

# 2. Initialize a sliding window for speed data (1 signal, 1 dimension)
window = SlidingWindow(max_length=60, n_signals=1, n_dims=1)

# 3. Process data frame by frame (simulating a real-time loop)
# here `speed_value` is a float representing the instantaneous speed
window.append(speed_value) 

# 4. Compute the feature (only after the window is full)
if len(window) >= window.max_length:
    result = smoothness(window)
    print(f"SPARC: {result.sparc}, Jerk: {result.jerk_rms}")

[!TIP] For more advanced and complete use cases see the Documentation and the examples folder.

Documentation

Documentation for PyEyesWeb is available online and includes tutorials, API references, and the theoretical and scientific background of the implemented metrics:

Support

If you encounter issues or have questions about PyEyesWeb, you can get help through the following channels:

  • GitHub Issues: report bugs, request features, or ask technical questions on the PyEyesWeb GitHub Issues page.
  • Discussions / Q&A: participate in conversations or seek advice in GitHub Discussions.
  • Email: Reach out to the maintainers at cp.infomus@gmail.com for direct support or collaboration inquiries.

Please provide clear descriptions, minimal reproducible examples, and version information when submitting issues—it helps us respond faster.

Roadmap

PyEyesWeb is under active development, and several features are planned for upcoming releases:

  • Expanded feature extraction: addition of more movement expressivity metrics (you can find an example of which features to expect in related conceptual layer guide.
  • Improved examples and tutorials: more interactive Jupyter notebooks and example datasets to facilitate learning and adoption.
  • Cross-platform compatibility: streamlined integration with creative and interactive platforms (e.g., TouchDesigner plugin, Unity, Max/MSP).

Future development priorities may evolve based on user feedback and research needs. Users are encouraged to suggest features or improvements via GitHub Issues.

Contributing

Contributions to PyEyesWeb are welcome! Whether it's reporting bugs, adding features, improving documentation, or providing examples, your help is appreciated.

How to Contribute

  1. Fork the repository.

  2. Clone the forked repository set up the development environment

    git clone https://github.com/<YOUR_USERNAME>/PyEyesWeb.git
    cd pyeyesweb
    pip install -e .[dev]
    
  3. Create a branch for your feature or bug fix:

    git checkout -b feature/your-feature-name
    
  4. Make your changes, ensuring code quality and adherence to the project's coding standards.

  5. Submit a pull request to the main branch, with a clear description of your changes.

  6. Engage in code reviews and address any feedback provided by maintainers.

Authors & Acknowledgments

PyEyesWeb is developed by InfoMus Lab – Casa Paganini, University of Genoa, with the partial support of the EU ICT STARTS Resilence Project.

InfoMus Lab Logo
Resilence Project Logo EU Logo

Maintainers & Contributors

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyeyesweb-1.0.0b1.tar.gz (56.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyeyesweb-1.0.0b1-py3-none-any.whl (75.0 kB view details)

Uploaded Python 3

File details

Details for the file pyeyesweb-1.0.0b1.tar.gz.

File metadata

  • Download URL: pyeyesweb-1.0.0b1.tar.gz
  • Upload date:
  • Size: 56.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyeyesweb-1.0.0b1.tar.gz
Algorithm Hash digest
SHA256 f41c56f3328ddf7d46c8eccc7993939da1b5006d12c3b0610e68a4d51cbe5e08
MD5 c26206b324a8079fd9eea3624a3c4517
BLAKE2b-256 333c6bff35319be43d7dfe3f61cf907addee52bd1b384fa33f99e2fe60ccf734

See more details on using hashes here.

File details

Details for the file pyeyesweb-1.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: pyeyesweb-1.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyeyesweb-1.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 ea1d292b9e94f8b6c756065ac347448b0fbfb65a045306dc083ba472b5d6c7a9
MD5 35263a40b5b35e36073f29b66918560c
BLAKE2b-256 d0efcd22e4a1ed0e77e2c2eb144792fb3ca839d043d885d5154754d827627013

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page