{"adoption": {"forks": 82, "observed_at": "2026-08-28T04:03:44.446135+00:00", "stars": 1140}, "canonical_url": "https://ross.abutalabs.com/products/vtuber_tutorial", "card": {"archived": false, "artifact_type": "learning-resource", "description": "【教程】从零开始的自制Vtuber！", "domain": ["tutorials", "computer-vision", "graphics", "artificial-intelligence"], "enriched": true, "function": ["computer-vision", "image-processing", "graphics", "machine-learning"], "health_score": 20, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["RimoChan/Vtuber_Tutorial"], "name": "RimoChan/Vtuber_Tutorial", "platform": ["python", "cross-platform"], "pushed_at": "2024-08-13T02:48:57+00:00", "repo": "RimoChan/Vtuber_Tutorial", "stars": 1140, "tags": ["vtuber", "face-tracking", "facial-capture", "dlib", "opencv", "tutorial-series", "avatar-rendering"], "topics": [], "urls": [], "use_cases": ["learn how to make a vtuber avatar from scratch", "understand how webcam face tracking works", "build head pose tracking with facial landmarks", "learn facial capture with dlib and opencv", "create an animated character driven by my face", "study computer vision through a fun project"], "what_it_is": "A Chinese-language tutorial series teaching how to build your own Vtuber from scratch, covering facial capture with a webcam through to character rendering. It uses Python with OpenCV, Dlib, and NumPy, and is written iteratively so each chapter yields a working Vtuber.", "when_to_avoid": ["you need a production-ready vtuber application rather than a learning exercise", "you cannot read Chinese, as the tutorial is written in Chinese", "you want polished best-practice code - the author warns some techniques are intentionally unconventional"], "when_to_choose": ["you want a step-by-step, code-driven introduction to vtuber creation", "you want to learn facial landmark detection and head angle estimation in Python", "you prefer iterative tutorials where each chapter produces a working result"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vtuber_tutorial", "repo": "RimoChan/Vtuber_Tutorial", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "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:44.446135+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.446135+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:35:26.471441+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37f6e9613b612fec6c3768096462fe1d342090fc2ad5a94c88156f737b237347", "fetched_at": "2026-08-28T04:03:44.446135+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RimoChan/Vtuber_Tutorial"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2334, "days_push": 750, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}