{"adoption": {"forks": 1141, "observed_at": "2026-08-28T04:10:26.017991+00:00", "stars": 8846}, "canonical_url": "https://ross.abutalabs.com/products/ai4animation", "card": {"archived": false, "artifact_type": "framework", "description": "Bringing Characters to Life with Computer Brains in Unity", "domain": ["machine-learning", "deep-learning", "simulation", "graphics"], "enriched": true, "function": ["machine-learning", "deep-learning", "simulation", "animation", "llm-training"], "health_score": 67, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["sebastianstarke/AI4Animation"], "name": "sebastianstarke/AI4Animation", "platform": ["game-engine", "python", "cross-platform"], "pushed_at": "2026-04-17T17:03:39+00:00", "repo": "sebastianstarke/AI4Animation", "stars": 8846, "tags": ["character-animation", "motion-capture", "unity", "locomotion", "inverse-kinematics", "neural-networks", "mocap", "research", "game-development", "desktop"], "topics": [], "urls": [], "use_cases": ["train neural networks for character locomotion animation", "animate biped and quadruped characters with deep learning", "import and process motion capture data like BVH and FBX", "build interactive character controllers for games in Unity", "research data-driven character animation and motion synthesis", "create embodied avatar motion for AR and VR", "solve inverse kinematics in real time for characters"], "what_it_is": "AI4Animation is a deep learning framework for data-driven character animation and control, built around Unity with a Python remake (AI4AnimationPy) that removes the Unity dependency. It covers the full pipeline from motion capture data processing and neural network training to runtime character control in game engines.", "when_to_avoid": ["you need simple keyframe animation without machine learning", "you want a production-ready animation middleware with commercial support", "your project does not involve character animation or motion data"], "when_to_choose": ["you need neural network-based character animation in Unity or Python", "you are researching motion synthesis, locomotion, or character control", "you want a full pipeline from mocap data to runtime animation", "you need interactive character controllers with learned motion models"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ai4animation", "repo": "sebastianstarke/AI4Animation", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "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:10:26.017991+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:26.017991+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:24:48.069357+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39e875b9b72685307eec2adeddefb6f63db8f5fd5f5307f2df36bff66c2365af", "fetched_at": "2026-08-28T04:10:26.017991+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sebastianstarke/AI4Animation"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+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": 3325, "days_push": 138, "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}}