{"id":27953680,"url":"https://github.com/neurobionics/onshape-robotics-toolkit","last_synced_at":"2026-01-17T14:58:04.165Z","repository":{"id":271136152,"uuid":"865051944","full_name":"neurobionics/onshape-robotics-toolkit","owner":"neurobionics","description":"A python library to facilitate interaction with Onshape's REST API","archived":false,"fork":false,"pushed_at":"2025-02-25T12:58:40.000Z","size":15264,"stargazers_count":250,"open_issues_count":14,"forks_count":21,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-07T17:14:28.378Z","etag":null,"topics":["cad","control-systems","mechanical-design","onshape","onshape-3d-cad","onshape-api","optimization","python","python3","robotics","robotics-simulation"],"latest_commit_sha":null,"homepage":"https://neurobionics.github.io/onshape-robotics-toolkit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neurobionics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2024-09-29T21:18:11.000Z","updated_at":"2025-05-07T16:10:18.000Z","dependencies_parsed_at":"2025-05-07T17:24:33.100Z","dependency_job_id":null,"html_url":"https://github.com/neurobionics/onshape-robotics-toolkit","commit_stats":null,"previous_names":["neurobionics/onshape-robotics-toolkit"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobionics%2Fonshape-robotics-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobionics%2Fonshape-robotics-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobionics%2Fonshape-robotics-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobionics%2Fonshape-robotics-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neurobionics","download_url":"https://codeload.github.com/neurobionics/onshape-robotics-toolkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"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":["cad","control-systems","mechanical-design","onshape","onshape-3d-cad","onshape-api","optimization","python","python3","robotics","robotics-simulation"],"created_at":"2025-05-07T17:14:25.764Z","updated_at":"2026-01-17T14:58:04.151Z","avatar_url":"https://github.com/neurobionics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# onshape-robotics-toolkit\n\n[![License](https://img.shields.io/github/license/neurobionics/onshape-robotics-toolkit)](https://github.com/neurobionics/onshape-robotics-toolkit/blob/main/LICENSE)\n[![codecov](https://codecov.io/gh/neurobionics/onshape-robotics-toolkit/branch/main/graph/badge.svg)](https://codecov.io/gh/neurobionics/onshape-robotics-toolkit)\n[![DOI](https://zenodo.org/badge/865051944.svg)](https://doi.org/10.5281/zenodo.14617407)\n[![Docs](https://img.shields.io/badge/docs-mkdocs-blue)](https://neurobionics.github.io/onshape-robotics-toolkit/)\n[![PyPI Downloads](https://static.pepy.tech/personalized-badge/onshape-robotics-toolkit?period=total\u0026units=INTERNATIONAL_SYSTEM\u0026left_color=BLACK\u0026right_color=GREEN\u0026left_text=downloads)](https://pepy.tech/projects/onshape-robotics-toolkit)\n\n\u003cimg src=\"https://github.com/neurobionics/onshape-robotics-toolkit/blob/2fd1cc6a6d67419169d2be750a421bccd0940247/docs/tutorials/export/export-header.gif\" alt=\"Header\" style=\"width: 100%;\"\u003e\n\nThe `onshape-robotics-toolkit` is a feature-rich Python library that significantly extends the capabilities of Onshape's web-based CAD platform. The library provides a comprehensive API for automating robot design tasks, including solid model manipulation, robot assembly management, graph-based visualizations, and exporting CAD assemblies to URDF files for simulation and control. Intended as a resource for the robotics community, this library leverages Onshape's REST API to facilitate advanced workflows that bridge CAD design and robotics applications.\n\n\u0026nbsp;\nThis library was inspired by \u003ca href=\"https://github.com/Rhoban/onshape-to-robot\" target=\"_blank\"\u003eonshape-to-robot\u003c/a\u003e, a tool renowned for its streamlined approach to URDF generation. While onshape-to-robot library focuses on predefined workflows and design-time considerations, the `onshape-robotics-toolkit` library offers greater flexibility. It provides access to nearly all of Onshape's REST API calls, enabling headless manipulation, detailed analysis, and seamless export of CAD assemblies. Users can programmatically edit variable studios, generate graph-based visualizations, and export URDF files tailored to their specific needs—all without being restricted by rigid workflows or naming conventions. By removing these constraints, the `onshape-robotics-toolkit` library empowers the robotics and CAD communities to create custom solutions for algorithmic design, optimization, and automation.\n\n\u0026nbsp;\n\n# Key Features of `onshape-robotics-toolkit`\n\nThe `onshape-robotics-toolkit` library is designed for users seeking a scalable, versatile API that empowers innovative robot design and control workflows. By integrating Onshape into algorithmic processes such as design optimization and automation, it unlocks the full potential of Onshape's cloud-based CAD system, fostering creativity and efficiency in robotics and beyond.\n\n\u0026nbsp;\n\n| Feature                              | `onshape-robotics-toolkit`           | `onshape-to-robot`                      |\n| ------------------------------------ | ------------------------------------ | --------------------------------------- |\n| **Workflow Flexibility**             | ✅ Open-ended and customizable       | ❌ Predefined and rigid                 |\n| **Design-Time Considerations**       | ✅ None                              | ❌ Requires specific naming conventions |\n| **Custom URDF Workflow**             | ✅ Supports any assembly             | ❌ Limited by design rules              |\n| **Variable Studio Editing**          | ✅ Yes                               | ❌ No                                   |\n| **Ease of Setup**                    | ❌ Moderate (requires python coding) | ✅ Easy (no coding required)            |\n| **Headless Integration**             | ✅ Yes (e.g., optimization)          | ❌ No out-of-the-box support            |\n| **Access to Full Onshape API**       | ✅ Yes                               | ❌ Limited                              |\n| **Graph Visualization and Analysis** | ✅ Supports graph generation         | ❌ Not supported                        |\n\n## Prerequisites\n\nBefore you begin, ensure you have the following:\n\n- \u003ca href=\"https://www.python.org/downloads/release/python-3100/\" target=\"_blank\"\u003ePython 3.10\u003c/a\u003e or higher installed on your machine.\n- \u003ca href=\"https://www.onshape.com/en/\" target=\"_blank\"\u003eAn Onshape account\u003c/a\u003e if you don't already have one.\n- \u003ca href=\"https://onshape-public.github.io/docs/auth/apikeys/\" target=\"_blank\"\u003eOnshape API keys (access key and secret key)\u003c/a\u003e\n\n\u003e **Note:** Before using this tool (including making API calls or using it for research), ensure you have read and comply with [Onshape's Terms of Use](https://onshape-public.github.io/docs/auth/limits/#terms-of-use) and be aware of [Onshape's API limits and usage policies](https://onshape-public.github.io/docs/auth/limits/) to avoid exceeding rate limits.\n\n## Installation\n\nYou can install `onshape-robotics-toolkit` using `pip`, which is the easiest way to install it and is the recommended method for most users.\n\n```sh\npip install onshape-robotics-toolkit\n```\n\nIf you want to install from source, you'll need to install [`uv`](https://docs.astral.sh/uv/getting-started/installation/) and [`git`](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) first. Then, you can clone the repository and install the package.\n\n```sh\ngit clone https://github.com/neurobionics/onshape-robotics-toolkit.git\ncd onshape-robotics-toolkit\nuv sync\n```\n\n## Documentation\n\nThe documentation is available at [https://neurobionics.github.io/onshape-robotics-toolkit/](https://neurobionics.github.io/onshape-robotics-toolkit/). It is generated using `mkdocs` and `mkdocs-material` and hosted on GitHub Pages.\n\n## Acknowledgements\n\nThis repository was created to facilitate an internal project at [the RAI Institute](https://rai-inst.com/); it was developed by [Senthur Ayyappan](https://senthurayyappan.github.io/) and [Elliott Rouse](https://neurobionics.robotics.umich.edu/). We'd also like to acknowledge considerable support and guidance from Ben Bokser, [Daniel Gonzalez](https://dgonzrobotics.com/), [Surya Singh](https://scholar.google.com/citations?user=ZDzQGPQAAAAJ\u0026hl=en\u0026oi=sra), Sangbae Kim, and Stelian Coros at the AI Institute.\n\n## Contributing\n\nIf you're interested in contributing to the project, please read the [contributing guidelines](https://github.com/neurobionics/onshape-robotics-toolkit/blob/main/CONTRIBUTING.md) to get started. All contributions are welcome!\n\n## License\n\nThis project is licensed under the Apache 2.0 License. For more information, please refer to the [license](https://github.com/neurobionics/onshape-robotics-toolkit/blob/main/LICENSE) file.\n\n## References\n\n- [Onshape API Documentation](https://onshape-public.github.io/docs/)\n- [Onshape API Glassworks Explorer](https://cad.onshape.com/glassworks/explorer/#/)\n- [Onshape to Robot URDF Exporter](https://github.com/Rhoban/onshape-to-robot)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurobionics%2Fonshape-robotics-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneurobionics%2Fonshape-robotics-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurobionics%2Fonshape-robotics-toolkit/lists"}