{"id":17923833,"url":"https://github.com/kevinzakka/obj2mjcf","last_synced_at":"2025-04-08T09:05:15.139Z","repository":{"id":37242971,"uuid":"500949932","full_name":"kevinzakka/obj2mjcf","owner":"kevinzakka","description":"A CLI for processing composite Wavefront OBJ files for use in MuJoCo.","archived":false,"fork":false,"pushed_at":"2024-10-15T16:56:20.000Z","size":7589,"stargazers_count":233,"open_issues_count":11,"forks_count":26,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-01T08:29:26.035Z","etag":null,"topics":["mujoco","robotics","simulation","wavefront-obj"],"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/kevinzakka.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}},"created_at":"2022-06-07T17:58:38.000Z","updated_at":"2025-03-31T11:25:39.000Z","dependencies_parsed_at":"2024-03-17T18:48:23.345Z","dependency_job_id":"9521d5f9-3ac6-484b-b2d6-91a44abe4d40","html_url":"https://github.com/kevinzakka/obj2mjcf","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinzakka%2Fobj2mjcf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinzakka%2Fobj2mjcf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinzakka%2Fobj2mjcf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinzakka%2Fobj2mjcf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinzakka","download_url":"https://codeload.github.com/kevinzakka/obj2mjcf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809963,"owners_count":20999816,"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","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":["mujoco","robotics","simulation","wavefront-obj"],"created_at":"2024-10-28T20:45:44.774Z","updated_at":"2025-04-08T09:05:15.116Z","avatar_url":"https://github.com/kevinzakka.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# obj2mjcf\n\n[![PyPI Python Version][pypi-versions-badge]][pypi]\n[![PyPI version][pypi-badge]][pypi]\n\n[pypi-versions-badge]: https://img.shields.io/pypi/pyversions/obj2mjcf\n[pypi-badge]: https://badge.fury.io/py/obj2mjcf.svg\n[pypi]: https://pypi.org/project/obj2mjcf/\n\n`obj2mjcf` is a CLI for proccessing composite Wavefront [OBJ] files for use in [MuJoCo]. It automatically:\n\n* Splits an OBJ file into sub-meshes that are grouped by the materials referenced in the OBJ's MTL file\n* Generates an MJCF XML file that is pre-filled with materials, meshes and geom elements referencing these OBJ files\n* Optionally generates a collision mesh by performing a convex decomposition of the OBJ using [CoACD]\n\n`obj2mjcf` was used to process model meshes for [MuJoCo Menagerie]:\n\n\u003cp float=\"left\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/deepmind/mujoco_menagerie/main/anybotics_anymal_c/anymal_c.png\" height=\"200\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/deepmind/mujoco_menagerie/main/franka_emika_panda/panda.png\" height=\"200\"\u003e\n\u003c/p\u003e\n\n## Motivation\n\nAs of June 2022, MuJoCo does not support composite OBJ files consisting of groups or objects (`o` or `g` OBJ tags) and only 1 material can be assigned per mesh. This means that you have to manually split your OBJ file into sub-meshes, a process that is tedious and error-prone. This tool is meant to automate this process.\n\n## Installation\n\n**Important.** MuJoCo support for OBJ files is only available in versions 2.1.2 and above. Make sure you upgrade to the latest version via the [Releases page](https://github.com/deepmind/mujoco/releases).\n\nThe recommended way to install this package is via [PyPI](https://pypi.org/project/obj2mjcf/):\n\n```bash\npip install --upgrade obj2mjcf\n```\n\n## Usage\n\nType the following at the command line for a detailed description of available options:\n\n```bash\nobj2mjcf --help\n```\n\n[OBJ]: https://en.wikipedia.org/wiki/Wavefront_.obj_file\n[MuJoCo]: https://github.com/deepmind/mujoco\n[CoACD]: https://github.com/SarahWeiii/CoACD\n[MuJoCo Menagerie]: https://github.com/deepmind/mujoco_menagerie\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinzakka%2Fobj2mjcf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinzakka%2Fobj2mjcf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinzakka%2Fobj2mjcf/lists"}