{"id":23663757,"url":"https://github.com/tahv/mayafbx","last_synced_at":"2025-10-07T01:47:15.884Z","repository":{"id":186202697,"uuid":"338909432","full_name":"tahv/mayafbx","owner":"tahv","description":"Python wrapper for the Maya FBX plugin","archived":false,"fork":false,"pushed_at":"2024-05-30T22:14:06.000Z","size":35,"stargazers_count":25,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-17T04:16:08.018Z","etag":null,"topics":["fbx","maya","python"],"latest_commit_sha":null,"homepage":"https://mayafbx.readthedocs.io","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/tahv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2021-02-14T21:51:14.000Z","updated_at":"2025-03-04T10:36:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"5eb36f4b-0664-4c2d-980a-cc5a787a5e93","html_url":"https://github.com/tahv/mayafbx","commit_stats":null,"previous_names":["tahv/mayafbx"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tahv/mayafbx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahv%2Fmayafbx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahv%2Fmayafbx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahv%2Fmayafbx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahv%2Fmayafbx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tahv","download_url":"https://codeload.github.com/tahv/mayafbx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tahv%2Fmayafbx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708036,"owners_count":26031932,"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-10-06T02:00:05.630Z","response_time":65,"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":["fbx","maya","python"],"created_at":"2024-12-29T05:33:06.360Z","updated_at":"2025-10-07T01:47:15.846Z","avatar_url":"https://github.com/tahv.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[mayafbx-documentation]: https://mayafbx.readthedocs.io/latest\n[mayafbx-license]: https://github.com/tahv/mayafbx/blob/main/LICENSE\n[mayafbx-repo]: https://github.com/tahv/mayafbx\n[mayafbx-pypi]: https://pypi.org/project/mayafbx\n[ruff-repo]: https://github.com/astral-sh/ruff\n[mypy-repo]: https://github.com/python/mypy\n[mayafbx-workflow-tests]: https://github.com/tahv/mayafbx/actions/workflows/tests.yml\n[mayafbx-latest-release]: https://github.com/tahv/mayafbx/releases/latest\n[mayafbx-contributing]: https://mayafbx.readthedocs.io/latest/contributing.html\n\n# mayafbx\n\n\u003e **Warning:**\n\u003e\n\u003e Release `1.0.0` include many API breaking changes and dropped Python 2 support.\n\u003e If you are looking for the legacy version of `mayafbx`, see this \n\u003e [commit](https://github.com/tahv/mayafbx/tree/95d52a61bdefd84c90b9822b2ccb829da89626a8)\n\u003e and release [`0.1.0`](https://github.com/tahv/mayafbx/releases/tag/0.1.0).\n\n[![License - MIT](https://img.shields.io/github/license/tahv/mayafbx?label=License)][mayafbx-license]\n[![Maya Version](https://img.shields.io/badge/Maya-2022%20%7C%202023%20%7C%202024%20%7C%202025-%2339a5cc?logo=autodesk\u0026logoColor=white)][mayafbx-pypi]\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mayafbx?logo=python\u0026label=Python\u0026logoColor=white)][mayafbx-pypi]\n[![PyPI - Version](https://img.shields.io/pypi/v/mayafbx?logo=pypi\u0026label=PyPI\u0026logoColor=white)][mayafbx-pypi]\n[![Linter - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)][ruff-repo]\n[![Types - Mypy](https://img.shields.io/badge/Types-Mypy-blue.svg)][mypy-repo]\n[![CI - Tests](https://img.shields.io/github/actions/workflow/status/tahv/mayafbx/tests.yml?logo=github\u0026logoColor=white\u0026label=Tests)][mayafbx-workflow-tests]\n[![Documentation Status](https://img.shields.io/readthedocs/mayafbx?logo=readthedocs\u0026logoColor=white\u0026label=Documentation)][mayafbx-documentation]\n\nPython wrapper of Maya FBX plugin.\n\n## Installation\n\nInstall `mayafbx` with pip.\n\n```bash\npython -m pip install mayafbx\n```\n\nYou can also download and extract `mayafbx-\u003cversion\u003e.zip` from [latest release][mayafbx-latest-release].\n\nThe zip archive is created using \n[`hatch-zipped-directory`](https://github.com/dairiki/hatch-zipped-directory) \nand has the following structure:\n\n```text\n.\n├── LICENSE\n├── METADATA.json\n├── README.md\n└── mayafbx/\n    ├── __init__.py\n    └── ...\n```\n\n## Comparison\n\nBelow is an example of how to export an FBX file using standard Maya commands:\n\n```python\nfrom maya import mel\n\nmel.eval(\"FBXResetExport\")  # Reset options.\nmel.eval(\"FBXProperty Export|IncludeGrp|Animation -v true\")\nmel.eval(\"FBXProperty Export|IncludeGrp|Animation|ExtraGrp|RemoveSingleKey -v true\")\nmel.eval(\"FBXProperty Export|IncludeGrp|CameraGrp|Camera -v false\")\n\nmel.eval('FBXExport -f \"C:/outfile.fbx\" -s')  # '-s' for selected.\n```\n\nAnd here is how to achieve the same using `mayafbx`:\n\n```python\nfrom mayafbx import FbxExportOptions, export_fbx\n\noptions = FbxExportOptions()\noptions.animation = True\noptions.remove_single_key = True\noptions.cameras = True\n\nexport_fbx(\"C:/outfile.fbx\", options, selection=True)\n```\n\nAlternatively, you can write it in a more concise way:\n\n```python\nfrom mayafbx import FbxExportOptions, export_fbx\n\noptions = FbxExportOptions(animation=True, remove_single_key=True, cameras=True)\n\nexport_fbx(\"C:/outfile.fbx\", options, selection=True)\n```\n\n## Quickstart\n\nIn this example, we export the animation from a cube and import it back.\n\n```python\nimport os\nimport tempfile\nfrom maya import cmds\nfrom mayafbx import (\n    FbxExportOptions, \n    FbxImportOptions, \n    MergeMode,\n    export_fbx,\n    import_fbx, \n)\n\n# Start from an empty scene.\ncmds.file(new=True, force=True)\n\n# Create a cube with 2 keyframes.\ncube = cmds.polyCube()[0]\ncmds.setKeyframe(cube, attribute=\"translateX\", time=1, value=0)\ncmds.setKeyframe(cube, attribute=\"translateX\", time=24, value=10)\n\n# Prepare options to export baked animation.\noptions = FbxExportOptions()\noptions.animation = True\noptions.bake_animation = True\noptions.bake_resample_all = True\n\n# Export the scene as FBX.\nfilepath = os.path.join(tempfile.gettempdir(), \"testcube.fbx\")\nexport_fbx(filepath, options)\n\n# Remove all keys from the cube.\ncmds.cutKey(cube, attribute=\"translateX\", option=\"keys\")\n\n# Prepare options to import animation back to the cube.\noptions = FbxImportOptions()\noptions.merge_mode = MergeMode.kMerge\noptions.animation = True\n\n# Import the previously exported FBX.\nimport_fbx(filepath, options)\n```\n\n## Documentation\n\nSee mayafbx [documentation][mayafbx-documentation] for more details.\n\n## Contributing\n\nFor guidance on setting up a development environment and contributing to the project,\nsee the [contributing][mayafbx-contributing] section.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahv%2Fmayafbx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftahv%2Fmayafbx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftahv%2Fmayafbx/lists"}