{"adoption": {"forks": 561, "observed_at": "2026-08-28T04:09:09.425629+00:00", "stars": 5076}, "canonical_url": "https://ross.abutalabs.com/products/opentrack", "card": {"archived": false, "artifact_type": "application", "description": "Head tracking software for MS Windows, Linux, and Apple OSX", "domain": ["gaming-tools", "computer-vision", "simulation", "cross-platform"], "enriched": true, "function": ["computer-vision", "image-processing", "gui", "middleware"], "health_score": 95, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["opentrack/opentrack"], "name": "opentrack/opentrack", "platform": ["windows", "cpp"], "pushed_at": "2026-08-22T02:14:53+00:00", "repo": "opentrack/opentrack", "stars": 5076, "tags": ["head-tracking", "flight-simulator", "opencv", "qt5", "wiimote", "webcam-tracking", "udp-protocol", "linux", "macos"], "topics": ["c-plus-plus", "flight-simulator", "opencv", "linux-app", "wiimote", "headtracking", "c-plus-plus-17", "qt5"], "urls": [], "use_cases": ["track my head movements to look around in flight simulators", "use a webcam for head tracking in games like DCS or Elite Dangerous", "set up a DIY IR head tracker with TrackIR-style clips", "use a Wiimote or Arduino as a head tracking input device", "relay head pose over UDP to another computer or Android app", "use AI-based head pose estimation from a webcam"], "what_it_is": "opentrack is a head tracking application that captures a user's head movements via webcams, IR trackers, or hardware devices and relays the pose data to flight simulators and games. It supports many input sources and output protocols with filtering and output shaping, running on Windows, Linux, and macOS.", "when_to_avoid": ["you need macOS support, which is currently unmaintained", "you need eye tracking as a primary feature rather than head tracking", "you want a plug-and-play commercial solution with official support"], "when_to_choose": ["you want free, open-source head tracking for flight sims or military games", "you need support for many tracker hardware inputs and output protocols", "you run Windows or Linux and want a mature, actively maintained tracker"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opentrack", "repo": "opentrack/opentrack", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "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:09:09.425629+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.425629+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:02:36.993964+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "21d452ae593ba68fc7afd1aef466650822d7645c36112b3cd6a49ffffa47f53e", "fetched_at": "2026-08-28T04:09:09.425629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opentrack/opentrack"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 31}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4874, "days_push": 12, "days_rel": 245, "gap_med": null, "n_releases_24m": 1}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}