{"adoption": {"forks": 169, "observed_at": "2026-08-28T04:03:36.580349+00:00", "stars": 1106}, "canonical_url": "https://ross.abutalabs.com/products/eyetracker", "card": {"archived": false, "artifact_type": "library", "description": "A lightweight and robust Python eye tracker", "domain": ["computer-vision"], "enriched": true, "function": ["computer-vision", "image-processing"], "health_score": 77, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["JEOresearch/EyeTracker"], "name": "JEOresearch/EyeTracker", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-29T20:13:07+00:00", "repo": "JEOresearch/EyeTracker", "stars": 1106, "tags": ["eye-tracking", "pupil-detection", "opencv", "3d-eye-model", "gaze-estimation", "research"], "topics": [], "urls": [], "use_cases": ["track pupil position in eye camera video", "detect pupil ellipse in images with opencv", "build a DIY eye tracker for research", "integrate gaze tracking into a VR or AR headset prototype", "process eye recordings to extract pupil geometry", "experiment with 3D pupil fitting algorithms in Python"], "what_it_is": "A lightweight open-source Python library for 3D eye tracking that detects and fits the pupil ellipse in eye camera video or images. It is an optimized Python rewrite of the Yuta Itoh 3D eye tracker pupil fitter, with a faster lite variant included.", "when_to_avoid": ["you need a complete gaze estimation or calibration pipeline out of the box", "you need real-time performance in a production product without tuning", "your environment requires numpy 2.x, which has a known incompatibility"], "when_to_choose": ["you need a simple, hackable Python pupil tracker you can modify", "you have IR eye camera footage and want robust pupil detection without heavy dependencies", "you want a lightweight alternative to full eye-tracking SDKs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/eyetracker", "repo": "JEOresearch/EyeTracker", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.580349+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:44:08.258650+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f5586817271b8ac26cb386f4d090bce895beb54a000b9a2b9aeafb7031b8bbc", "fetched_at": "2026-08-28T04:03:36.580349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JEOresearch/EyeTracker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 60, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 852, "days_push": 35, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}