Skip to main content

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

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}")

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

Release files for pyeyesweb 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyeyesweb 1.1.0
File Size Uploaded
pyeyesweb-1.1.0.tar.gz 42.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyeyesweb 1.1.0
File Interpreter ABI Platform
pyeyesweb-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 94.8 kB

Release files / pyeyesweb-1.1.0.tar.gz

Download URL pyeyesweb-1.1.0.tar.gz
Size 42.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3bf2df192ae04a70a89fad7baf0271bf149d9e793c096f6620f5664ba5f76e05
BLAKE2b-256 checksum
How to use checksums
803d1c83d9eb202263d09e5a94b52966a156a3bc1bfdf62b83f02b07bfba4751
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pyeyesweb-1.1.0-py3-none-any.whl

Download URL pyeyesweb-1.1.0-py3-none-any.whl
Size 51.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d3de14a6dca007f94241eb6054d66f0e89408f00c1f5cf6846f0982e63e7604
BLAKE2b-256 checksum
How to use checksums
66e5d806458a471b9d0460aa3848ec1dadc8b339d71e974a00702cb7d593ed5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page