{"adoption": {"forks": 154, "observed_at": "2026-08-28T04:04:46.647968+00:00", "stars": 1453}, "canonical_url": "https://ross.abutalabs.com/products/loco-mujoco", "card": {"archived": false, "artifact_type": "library", "description": "Imitation learning benchmark focusing on complex locomotion tasks using MuJoCo.", "domain": ["machine-learning", "robotics", "simulation", "artificial-intelligence"], "enriched": true, "function": ["machine-learning", "reinforcement-learning", "simulation", "benchmarking"], "health_score": 97, "homepage": "https://loco-mujoco.readthedocs.io/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["robfiras/loco-mujoco"], "name": "robfiras/loco-mujoco", "platform": ["python"], "pushed_at": "2026-08-22T19:06:32+00:00", "repo": "robfiras/loco-mujoco", "stars": 1453, "tags": ["imitation-learning", "mujoco", "locomotion", "mocap", "jax", "gymnasium", "biomechanics", "humanoids", "quadrupeds", "dataset", "linux", "macos", "gpu"], "topics": [], "urls": [], "use_cases": ["benchmark imitation learning algorithms for locomotion", "train humanoid locomotion policies from motion capture data", "run GAIL or AMP on quadruped environments", "retarget motion capture datasets between robots", "compare trajectories with dynamic time warping metrics", "train RL agents with domain and terrain randomization"], "what_it_is": "LocoMuJoCo is an imitation learning benchmark for whole-body locomotion control built on MuJoCo, featuring humanoid, quadruped, and musculoskeletal environments with retargeted motion capture datasets. It also supports reinforcement learning via custom rewards and includes JIT-compiled JAX reference algorithms like PPO, GAIL, AMP, and DeepMimic.", "when_to_avoid": ["you need manipulation or non-locomotion tasks", "you require a non-Python or non-JAX workflow", "you need real robot deployment out of the box"], "when_to_choose": ["you need a standardized benchmark for whole-body imitation learning", "you want motion-capture datasets pre-retargeted to humanoid or quadruped models", "you need fast GPU-parallel simulation via MJX/MjWarp", "you want both RL and IL support in one locomotion suite"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/loco-mujoco", "repo": "robfiras/loco-mujoco", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "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:04:46.647968+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.647968+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:45.822723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d0f5ff14690046c9e4accb56ebbc529a49f14edcd1b046ec21a6167016147ab", "fetched_at": "2026-08-28T04:04:46.647968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robfiras/loco-mujoco"}, {"content_hash": "a5fb62e0b8490e83147e96a07696b711933c9cbbb393383501a38375849b67ac", "fetched_at": "2026-08-29T11:45:31.377025+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/loco-mujoco/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 83, "rhythm": 42}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1168, "days_push": 11, "days_rel": 176, "gap_med": 271.0, "n_releases_24m": 3}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}