Skip to main content

Video annotation tool for marking timed events in eye tracking research

Project description

Zarafe zarafe

PyPI version Downloads License

Zarafe is an open-source video annotation tool that unifies time-based event marking across different head-mounted eye trackers through a single, easy-to-use interface.

EyE Annotation Tool Main Page

Why Zarafe?

Working with different head-mounted eye trackers means dealing with multiple proprietary software tools for annotation. This creates several challenges:

  • Multiple software learning curves: Each eye tracker requires learning different annotation software
  • Licensing barriers: Proprietary tools require licenses and may not be readily available
  • Training overhead: Domain experts (like surgeons) need training on multiple platforms
  • Fragmented workflows: Inconsistent annotation formats across different devices

Zarafe solves these problems by providing a unified annotation platform that works with different eye trackers.

Features

This tool allows users to:

  • Load directories containing worldCamera.mp4 recordings and gazeData.tsv files
  • View eye tracking videos with gaze position overlays
  • Create, mark and manage time-based event annotations
  • Save annotations to CSV files for further analysis
  • Work with data from any supported eye tracker through a single interface

Data Preparation

Important: Before using Zarafe, you need to convert your eye tracking data:

Zarafe uses glassesValidator to import your eye tracking data. Some eye trackers require preprocessing before importing:

  • Pupil Labs: Export from Pupil/Neon Player (disable World Video Exporter) or Pupil Cloud
  • Meta Project Aria Gen 1: Process in Aria Studio with MPS eye gaze run, then use provided export script
  • SMI ETG: Export raw data and scene video from BeGaze with specific settings

For detailed preprocessing instructions for your specific eye tracker, see the glassesValidator preprocessing guide.

The import process will generate the required worldCamera.mp4 and gazeData.tsv files.

Zarafe expects a specific directory structure with each recording in its own folder containing both files.

Installation

Requirements: Python ≥3.9 (tested on Python 3.9-3.12)

Option 1: Install from PyPI (Recommended)

pip install zarafe
zarafe

Option 2: Install from Source

  1. Clone this repository:

    git clone https://github.com/mh-salari/zarafe.git
    cd zarafe
    
  2. Install dependencies (choose one method):

    Option A: Using uv (recommended)

    # Install uv from https://docs.astral.sh/uv/getting-started/installation/
    
    # Install dependencies
    uv sync
    

    Option B: Using pip

    pip install -e .
    
  3. Run the application:

    # With uv
    uv run python main.py
    
    # With pip
    python main.py
    

Notes

Zarafe is developed by Mohammadhossein Salari with assistance from Claude 3.7 Sonnet and Claude Sonnet 4, AI assistants developed by Anthropic.

Important Disclaimer: This software ships as-is and was developed as part of my PhD project to serve personal research needs. Please make a complete backup of your data before using this tool. Use at your own risk.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Zarafe uses glassesValidator for data import. If you use this functionality, please cite:

Niehorster, D.C., Hessels, R.S., Benjamins, J.S., Nyström, M. and Hooge, I.T.C. (2023). GlassesValidator: A data quality tool for eye tracking glasses. Behavior Research Methods. doi: 10.3758/s13428-023-02105-5

This project has received funding from the European Union's Horizon Europe research and innovation funding program under grant agreement No 101072410, Eyes4ICU project.

Funded by EU Eyes4ICU

Giraffe icon downloaded from Flaticon, created by smalllikeart

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

zarafe-2.3.3.tar.gz (4.0 MB view details)

Uploaded Source

Built Distribution

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

zarafe-2.3.3-py3-none-any.whl (4.0 MB view details)

Uploaded Python 3

File details

Details for the file zarafe-2.3.3.tar.gz.

File metadata

  • Download URL: zarafe-2.3.3.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for zarafe-2.3.3.tar.gz
Algorithm Hash digest
SHA256 50e14d55b1d8a100d5edc66e27ce3ccb3d07d782a590084227939d113155fe22
MD5 68df29491e8637455ab1465daf4fee1e
BLAKE2b-256 dbb13c352fef730e9e6cf50ef7070c8f8ec767e1d9d619019d31901c6db3eee6

See more details on using hashes here.

File details

Details for the file zarafe-2.3.3-py3-none-any.whl.

File metadata

  • Download URL: zarafe-2.3.3-py3-none-any.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for zarafe-2.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 92b1a97f5da45c9b55966e1c71f7ba4b8fcacf32a469eec84aeebd4ebefc9e01
MD5 39abe765378f058d372628cac8f7eb29
BLAKE2b-256 b5a8cb6f2eb399d8201bc8bdf49abf1fe26bf37611008b413ca35a47cc4e0f9d

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