Skip to main content

Pupilio Library

Project description

A pythonic library for Pupil.IO eye tracker
High-performance control, Flexible Integration, User-friendly Interface

Pupilio is a lightweight Pythonic package developed by Hangzhou Shenning Technology Co., Ltd., designed to drive and control the Pupil.IO Eye Tracker. It offers a user-friendly interface for ease of use, providing functionalities for eye-tracking data recording, calibration, and validation. Pupilio seamlessly integrates with platforms such as PsychoPy, PyGame, and more.

Features

  • High-performance control: Manage the Pupil.IO Eye Tracker with high sampling rates and precise eye movement and pupil data.
  • Flexible Integration: Supports integration with popular platforms like PsychoPy and PyGame.
  • User-friendly Interface: Intuitive controls for calibration, validation, and data recording.

What's Pupil.IO?

Pupil.IO is a high-performance, high-speed, and high-precision eye-tracking system designed by Hangzhou Shenning Technology Co., Ltd. It offers high sampling rates and precise eye movement data, making it a valuable tool for scientific and clinical applications.

Specifications of Eye Tracker

Attribute Specification
Sample Rate 200 Hz [Firmware upgradable to 400 Hz]
Accuracy 0.5掳
Precision 0.03掳
Blink/Occlusion Recovery 5 ms @ 200 Hz, 2.5 ms @ 400 Hz
Head Box 40 cm x 40 cm @ 70 cm
Operation Range 50 - 90 cm
Gaze Signal Delay < 25 ms
Tracking Technology Neural Networks
Dimension 32 cm x 45 cm x 20 cm
Weight 5 kg [Eye-tracker + Display + Compute Module]
Operating System Windows 11
SDK C/C++/Python

Installation

Currently, all eye trackers shipped with Pupilio are pre-configured with the necessary Pupilio Python packages. If we need to upgrade this package, please enter the following command in the command prompt or PowerShell window:

pip install -U pupilio

Quick Start

Here is a simple example to get started with Pupilio:

# load PyGame library
import pygame
from pygame.locals import FULLSCREEN, HWSURFACE

# initialize PyGame
pygame.init()
# define the scree size
scn_width, scn_height = (1920, 1080)
# set a fullscreen mode with the above size
win = pygame.display.set_mode((scn_width, scn_height), FULLSCREEN|HWSURFACE)

# load Pupilio library
from pupilio import Pupilio

# instantiate a connection to the tracker
pupil_io = Pupilio()

# create a task session, and set a session name. 
# The session name must contain only letters, digits or underscores without any special characters.
pupil_io.create_session(session_name="quick_start")

# calibration and validation (recommended)
# set 'validate' to True if we would like to verify the calibration results
pupil_io.calibration_draw(screen=win, validate=True)

# start retrieving gaze
pupil_io.start_sampling()

# hang the main thread for 5 seconds by game
# eye tracking sampling are running on the background thread
pygame.time.wait(5 * 1000)

# stop eye tracking sampling
pupil_io.stop_sampling()

# sleep for 100 ms to capture ending samples
pygame.time.wait(100)

# save eye movement data
pupil_io.save_data("eye_movement.csv")

# release the tracker instance
# clean up Pupilio resources
pupil_io.release()

# quit pygame
pygame.quit()

Documentation

Comprehensive documentation is available at Pupilio Documentation.

Support

If you encounter any issues or have questions, please open an issue on GitHub or contact zhugc2016@gmail.com.

License

Pupilio is a proprietary software developed by Hangzhou Shenning Technology Co., Ltd. All rights reserved. Unauthorized use, distribution, or modification is prohibited without explicit permission. For licensing inquiries, please contact zhugc2016@gmail.com.

Acknowledgments

Pupilio is developed and maintained by Hangzhou Shenning Technology Co., Ltd. Special thanks to the community for their valuable feedback and support.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

pupilio-1.2.1-py3-none-any.whl (13.7 MB view details)

Uploaded Python 3

File details

Details for the file pupilio-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: pupilio-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.8

File hashes

Hashes for pupilio-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6742805e47836b85e351daaf6b30f2dbc02a1b2e8d24af3ce5175a19f7689fad
MD5 3957d4e79214f7dc29ce06333d8f0275
BLAKE2b-256 c6b373c001528b74237a61e9bc1114cc9c60b3e6fae64954248ed23233297ddb

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