FeaturedSoftwareTesting
OpenET 2 - Remote Eye-Tracking Collection and Benchmarking Platform
Co-developed a modular Python CLI that turned a fragmented eye-tracking prototype into end-to-end collection, standardization, quality-control, analysis, and reporting workflows for GP3 and Tobii-compatible data.

Summary
Project context
A six-person UNSW COMP9900 client capstone that modernized OpenET into a reproducible remote eye-tracking collection and benchmarking platform.
Problem / goal
Researchers needed one dependable workflow for collecting sessions, standardizing CSV, TSV, and JSON inputs, checking data quality, recovering targets from video, comparing longitudinal sessions, and producing traceable reports.
My role
Software Developer and Release Integration Lead on a six-person UNSW COMP9900 client capstone team.
What I personally contributed
- Implemented structured session creation, metadata logging, and deterministic hardware-free dry runs for testing device integration and end-to-end workflows.
- Integrated 13 runtime modules and guarded device, video, and stimulus lifecycles with safe failure handling.
- Containerized analysis, testing, and reporting services and added Windows GitHub Actions with a 33-case automated test suite.
Technical approach
- Unified GP3 and Tobii-compatible collection, CSV/TSV/JSON standardization, automated quality control, OpenCV target recovery, longitudinal analysis, and HTML/CSV/JSON reporting behind a modular CLI.
- Used deterministic dry runs and synthetic end-to-end fixtures to test session and device workflows without requiring eye-tracking hardware.
- Preserved raw input through read-only processing and SHA-256 provenance while containerizing repeatable analysis and report workflows.
Key features
- Structured collection sessions with metadata and guarded hardware lifecycles.
- CSV, TSV, and JSON standardization with automated quality checks.
- OpenCV-based target recovery and longitudinal analysis.
- Reproducible HTML, CSV, and JSON reports with SHA-256 provenance.
- Windows CI and containerized analysis, testing, and reporting services.
Impact / results
- Validated 40 client-provided eye-tracking sessions and 278 source files in 85 seconds with zero pipeline failures.
- Recovered 1,053 target intervals from 39 videos while preserving raw data through read-only processing and SHA-256 provenance.
- Hardened the integrated release with 13 runtime modules, 33 automated tests, and synthetic end-to-end validation.
What I learned
- Research software needs reproducible collection, validation, and provenance controls as much as analytical features.
- Release integration is most effective when module boundaries, lifecycle failure handling, CI, and end-to-end fixtures are designed together.