pupil  by pupil-labs

Open-source platform for eye tracking research and development

created 12 years ago
1,603 stars

Top 26.7% on sourcepulse

GitHubView on GitHub
Project Summary

Pupil is an open-source eye-tracking platform designed for accessibility, hackability, and affordability. It targets researchers, developers, and hobbyists interested in understanding and conducting eye-tracking projects, offering both hardware and software components. The platform aims to democratize eye-tracking technology.

How It Works

Pupil combines Python and C++ for its software stack, leveraging C++ for performance-critical operations. It provides a network-based real-time API for integration with external applications and supports a plugin architecture for runtime extensions. Users can also run the software from source for deeper customization.

Quick Start & Requirements

  • Install: Clone the repository, checkout the develop branch, and install dependencies using python -m pip install -r requirements.txt. A virtual environment is recommended.
  • Prerequisites: Python 3.7+ (3.11 recommended). On arm64 Macs (M1), use python3.*-intel64 for virtual environments due to missing arm64 wheels. Linux requires libportaudio2 (sudo apt install libportaudio2) and specific udev rules for USB camera access. macOS 12+ requires running Capture/Service with sudo for camera access.
  • Setup: Refer to the repository for detailed dependency installation and troubleshooting.
  • Links: User Guide, Developer Docs

Highlighted Details

  • Real-time API for network communication.
  • Plugin system for runtime extensions.
  • C++ components for performance.
  • Command-line arguments for customization (e.g., --debug, --profile).

Maintenance & Community

  • Actively developed and community-driven.
  • Discord server available for chat.

Licensing & Compatibility

  • Licensed under GNU Lesser General Public License (LGPL v3.0).
  • Permissive for modification and distribution, encouraging community contributions.

Limitations & Caveats

  • arm64 Macs lack native wheels for dependencies, requiring workarounds.
  • macOS 12+ requires administrator privileges (sudo) to access cameras, potentially complicating integration.
Health Check
Last commit

2 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
1
Star History
37 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.