{"id":34656719,"url":"https://github.com/adlarkin/mjpl","last_synced_at":"2025-12-24T18:09:44.283Z","repository":{"id":293534747,"uuid":"874516944","full_name":"adlarkin/mjpl","owner":"adlarkin","description":"MuJoCo motion planning library.","archived":false,"fork":false,"pushed_at":"2025-12-22T16:47:59.000Z","size":26452,"stargazers_count":19,"open_issues_count":8,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-24T04:54:29.109Z","etag":null,"topics":["motion-planning","mujoco","python","robotics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adlarkin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-18T01:11:19.000Z","updated_at":"2025-11-19T09:50:04.000Z","dependencies_parsed_at":"2025-07-14T18:26:41.970Z","dependency_job_id":"72191ca5-5d3d-4175-9678-5fb256815320","html_url":"https://github.com/adlarkin/mjpl","commit_stats":null,"previous_names":["adlarkin/mjpl"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/adlarkin/mjpl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlarkin%2Fmjpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlarkin%2Fmjpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlarkin%2Fmjpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlarkin%2Fmjpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adlarkin","download_url":"https://codeload.github.com/adlarkin/mjpl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adlarkin%2Fmjpl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28005981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["motion-planning","mujoco","python","robotics"],"created_at":"2025-12-24T18:06:11.601Z","updated_at":"2025-12-24T18:09:44.275Z","avatar_url":"https://github.com/adlarkin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mjpl\n\n[![Build](https://img.shields.io/github/actions/workflow/status/adlarkin/mjpl/ci.yml)](https://github.com/adlarkin/mjpl/actions)\n[![Coverage Status](https://coveralls.io/repos/github/adlarkin/mjpl/badge.svg)](https://coveralls.io/github/adlarkin/mjpl?branch=main)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/adlarkin/mjpl/main.svg)](https://results.pre-commit.ci/latest/github/adlarkin/mjpl/main)\n[![PyPI - Version](https://img.shields.io/pypi/v/mjpl)](https://pypi.org/project/mjpl/)\n\nMuJoCo motion planning library.\n\n\u003e [!Note]\n\u003e This project is under active development.\n\u003e APIs may change, and features are still a work in progress.\n\nFeatures:\n- Joint-space planning via bi-directional RRT, with support for constraints\n- Cartesian-space planning\n- Interfaces for constraints, inverse kinematics, and trajectory generation\n\nLimitations:\n- This library is designed for manipulator models that are composed of hinge/slide joints, and will not work with models that have ball/free joints.\n\n## Installation\n\n```\npip install mjpl\n```\n\n## Development\n\nFor local development, clone the repository and install the developer dependencies:\n```\npip install -e \".[dev]\"\n```\n\nThis project uses [Ruff](https://docs.astral.sh/ruff/) for linting and formatting.\nUnit tests are written via the [unittest](https://docs.python.org/3/library/unittest.html) framework.\n\nTo run the linter, formatter, and tests locally:\n```bash\n# Check for linter errors\nruff check .\n# Apply lint fixes\nruff check --fix .\n\n# Check for format errors\nruff format --diff .\n# Apply format fixes\nruff format .\n\n# Run unit tests\npython3 -m unittest -v\n```\n\n[Pre-commit](https://pre-commit.com/) hooks are also available which run the linter, formatter, and unit tests.\nTo trigger the hooks automatically on commit, install the pre-commit hooks:\n```\npre-commit install\n```\n\nTo trigger the hooks manually:\n```\npre-commit run --all-files\n```\n\nTo bypass installed pre-commit hooks on commit:\n```\ngit commit --no-verify -m \"your message\"\n```\n\n## Acknowledgements:\n\nThank you Sebastian Castro for the guidance and support that has been offered throughout the early stages of this project.\nIf you find this library useful or interesting, consider checking out Sebastian's [pyroboplan](https://github.com/sea-bass/pyroboplan), which offers similar features via [Pinocchio](https://github.com/stack-of-tasks/pinocchio)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadlarkin%2Fmjpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadlarkin%2Fmjpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadlarkin%2Fmjpl/lists"}