{"id":21834224,"url":"https://github.com/partcad/partcad","last_synced_at":"2025-07-20T16:31:24.375Z","repository":{"id":213234480,"uuid":"679553008","full_name":"partcad/partcad","owner":"partcad","description":"The first package manager for CAD models and a framework for managing assemblies.","archived":false,"fork":false,"pushed_at":"2024-11-20T06:42:12.000Z","size":5345,"stargazers_count":192,"open_issues_count":20,"forks_count":15,"subscribers_count":3,"default_branch":"devel","last_synced_at":"2024-11-20T18:24:38.940Z","etag":null,"topics":["3d","3d-models","build123d","cad","cadquery","mechanical-design","mechanical-engineering","modelling","openscad","python"],"latest_commit_sha":null,"homepage":"","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/partcad.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"openvmp"}},"created_at":"2023-08-17T05:22:42.000Z","updated_at":"2024-11-20T16:47:56.000Z","dependencies_parsed_at":"2024-02-09T07:44:43.202Z","dependency_job_id":"3f03157c-1bca-4e68-9984-75104b5f90e0","html_url":"https://github.com/partcad/partcad","commit_stats":null,"previous_names":["openvmp/partcad","partcad/partcad"],"tags_count":210,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/partcad%2Fpartcad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/partcad%2Fpartcad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/partcad%2Fpartcad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/partcad%2Fpartcad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/partcad","download_url":"https://codeload.github.com/partcad/partcad/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226814497,"owners_count":17686302,"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":["3d","3d-models","build123d","cad","cadquery","mechanical-design","mechanical-engineering","modelling","openscad","python"],"created_at":"2024-11-27T20:02:05.721Z","updated_at":"2025-07-20T16:31:24.362Z","avatar_url":"https://github.com/partcad.png","language":"Python","funding_links":["https://patreon.com/openvmp"],"categories":["Python"],"sub_categories":[],"readme":"# PartCAD \u003c!-- omit in toc --\u003e\n\n[![License](https://github.com/partcad/partcad/blob/main/apache20.svg?raw=true)](./LICENSE.txt)\n\n[![CI on Linux, macOS and Windows](https://github.com/partcad/partcad/actions/workflows/test.yml/badge.svg?event=schedule)](https://github.com/partcad/partcad/actions/workflows/test.yml?query=event%3Aschedule)\n[![CD on Linux, macOS and Windows](https://github.com/partcad/partcad/actions/workflows/build.yml/badge.svg?event=schedule)](https://github.com/partcad/partcad/actions/workflows/build.yml?query=event%3Aschedule)\n[![Deployment to PyPI](https://github.com/partcad/partcad/actions/workflows/deploy.yml/badge.svg)](https://github.com/partcad/partcad/actions/workflows/deploy.yml)\n[![Documentation Status](https://readthedocs.org/projects/partcad/badge/?version=latest)](https://partcad.readthedocs.io/en/latest/?badge=latest)\n\u003ca href=\"https://discord.gg/h5qhbHtygj\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1308854595987968051?logo=discord\u0026logoColor=white\u0026label=Discord\u0026labelColor=353c43\u0026color=31c151\"\u003e\u003c/a\u003e\n\nBrowse [our documentation] and visit [our website]. Watch our 💥💥[demos](https://youtube.com/@PartCAD)💥💥.\n\n## What is PartCAD?\n\n[PartCAD] is the standard for documenting manufacturable physical products. It comes with a set of tools to maintain\nproduct information and to facilitate efficient and effective workflows at all product lifecycle phases.\n\nPartCAD is more than just a traditional CAD tool for drawing. In fact, it’s **not for drawing at all**. The letters\n“CAD” in PartCAD stand for “computer-aided design” in a more generic sense, where “design” stands for the process of\ngetting from an idea to **a clear and deterministic specification of a manufacturable physical product** using a\ncomputer (including the use of AI models). While PartCAD started as **the first package manager for hardware**, it is\nnow **the next-generation CAD** that can turn a single visionary individual into a one person corporation, or make one\nfuture Product Manager as productive (**and much faster!**) as 10 corporate engineering departments of the past.\n\nPartCAD is constantly evolving, with new features and integrations being added all the time.\n**[Contact us](https://calendly.com/partcad-support/30min) to discuss how PartCAD can revolutionize your product\ndevelopment process.**\n\n## PartCAD packages\n\n[PartCAD] includes tools to package product information:\n\n- Optional (but highly recommended) **high-level requirements** (texts and drawings)\n- Optional **detailed design** (mechanical outline, PCB schematics, software architecture)\n- Implementation (**mechanical CAD files, PCB layout, software artifacts**)\n- Optionally, the following data can be provided to augment or complement the output:\n\n  - Additional manufacturing process requirements and instructions\n  - Additional product validation instructions\n  - **Maintenance instructions**\n\n- Or any other product related metadata\n\nSuch packages are **modular and reusable**, allowing one to build not only on top of the CAD files of previous products,\nbut to **build on top of their manufacturing processes** as well.\n\n## PartCAD outputs\n\nAs a result of maintaining the product information using PartCAD, the following outputs can be generated and, if\nnecessary, collected and managed using PartCAD tools:\n\n- **Product documentation** (markdown, html or PDF)\n- Design validation results\n- Product **bill of materials** (mechanical, electronics, software)\n- Sourcing information **for all components**\n- Manufacturing **process specification** (including required equipment if any)\n- Manufacturing **instructions** (sufficiently documented to be reproduced by anyone without inquiring any additional\n  information)\n- Product **validation** instructions\n- Product validation **results** (given access to an experimental product and the required tools)\n- Input data for software components to visualize the product on your website, with a 3D viewer, a configurator,\n  manufacturing/assembly instructions and more\n\n## Product development and testing\n\nOnce product information is packaged, it can be versioned and used for iterative improvements or to produce PartCAD\noutputs either by human or AI actors. To achieve that, PartCAD integrates with third-party tools. Below are just some\nexamples of what third-party integrations can be used for:\n\n- AI tools can be used to **update the mechanical design and implementation automatically** based on the current state\n  of the requirements\n- A legacy CAD tool can be used manually to update the implementation\n- AI tools can be used to validate the design and implementation to identify product requirement or best practices (e.g.\n  to reduce manufacturing complexity) violations\n- **A web interface of an online store or an API of an additive manufacturer** can be used to source and manufacture\n  parts\n- Simulation tools (potentially in conjunction with AI tools) can be used to validate that the product design matches\n  the product requirements\n- AI tools can be used to review the product implementation for correctness, safety or compliance\n- Manufacturing processes are **verified for completeness** (e.g. tools requirements are specified for all operations)\n- Manufacturing instructions are **verified for correctness** (e.g. the provided manufacturing steps can actually be\n  successfully and safely performed, and fit within the capabilities of the selected manufacturing tools)\n\nSome of the iterative improvements or tests can be achieved using PartCAD built-in features. However, the use of\nthird-party tools is **recommended for unlocking cutting edge innovations and features**.\n\n## Operations using PartCAD\n\nPartCAD also works on the following supplementary products to enable (if needed) operations without any use of\nthird-party tools:\n\n- A CRM for part manufacturing and assembly shops for businesses of any size (from skilled individuals working in their\n  garage to the biggest factories) to **immediately start taking orders** for manufacturable products maintained using\n  PartCAD\n- An inventory tool to manage the list of parts and final products in stock, as well as to track and manage all\n  in-progress or completed orders, to **immediately bring supply chains up and to scale them up while keeping all data\n  private on-prem** and not incurring any costs (for cloud services and alike)\n\n## Supply chains based on PartCAD\n\nBy letting the user easily switch between third-party engineering tools or manufacturers without having to migrate\nproduct data, PartCAD creates a competitive environment for service providers to **drive the costs down**.\n\nWhenever you select third-party tools (if any) to use in your workflows, you ultimately decide (and make it transparent\nor auditable) **how secure your supply chain is and how exposed your product information is**. If you opt for on-prem\ntools only, all your product information remains on-prem too. It makes PartCAD an ultimate solution for achieving data\nsovereignty for those willing to keep their product data private. **In the age of cloud data harvesting (especially for\nAI training), it makes PartCAD a better alternative to any cloud-based PDM, PLM or BOM solution**.\n\n## Join us!\n\nStay informed and share feedback by joining [our Discord server](https://discord.gg/h5qhbHtygj). \u003cbr/\u003e\n\nSubscribe on [LinkedIn], [YouTube], [TikTok], [Facebook], [Instagram], [Threads] and [Twitter/X].\n\n[![PartCAD Visual Studio Code extension](docs/source/images/vscode1.png)](https://marketplace.visualstudio.com/items?itemName=OpenVMP.partcad)\n\n## Features\n\n- Multiple OSes supported\n  - [x] Windows\n  - [x] Linux\n  - [x] macOS\n- Workflow acceleration by caching rendered models (including OpenSCAD, CadQuery and build123d)\n  - [x] In memory\n  - [x] On disk\n  - [ ] Local Server _(in progress)_\n  - [ ] Cloud _(in progress)_\n- Collaboration on designs\n  - [x] Versioning of CAD designs using `Git` _(like it's 2025 for real)_\n    - [x] Mechanical\n    - [x] Electronics\n    - [ ] Software _(in progress)_\n  - [x] Automated generation of `Markdown` documentation\n  - [x] Parametric (hardware and software) bill of materials\n  - [x] Publish models online on PartCAD.org\n  - [ ] Publish models online on your website _(in progress)_\n  - [ ] Publish configurable parts and assemblies online _(in progress)_\n  - [ ] Purchase of assemblies and parts online, both marketplace and SaaS _(in progress)_\n  - [x] Automated purchase of parts via CLI\n- Assembly models (3D)\n  - [x] Using specialized `Assembly YAML` format\n    - [x] Automatically maintaining the bill of materials\n    - [ ] Generating user-friendly visual assembly instructions _(in progress)_\n  - [ ] Generating with LLM/GenAI _(in progress)_\n- Part models (3D)\n  - Using scripting languages\n    - [x] [CadQuery]\n    - [x] [build123d]\n    - [x] [OpenSCAD]\n  - Using legacy CAD files\n    - [x] `STEP`\n    - [x] `BREP`\n    - [x] `STL`\n    - [x] `3MF`\n    - [x] `OBJ`\n  - Using file formats of third-party tools\n    - [x] `KiCad EDA` (PCB)\n  - Generating with LLM/GenAI\n    - [x] Google AI (`Gemini`)\n    - [x] OpenAI (`ChatGPT`)\n    - [x] Any model in [Ollama](https://ollama.com/) (`Llama 3.1`, `DeepSeek-Coder-V2`, `CodeGemma`, `Code Llama` etc.)\n- Part and interface blueprints (2D)\n  - Using scripting languages\n    - [x] [CadQuery]\n    - [x] [build123d]\n  - Using legacy file formats:\n    - [x] `DXF`\n    - [x] `SVG`\n- Other features\n  - Object-Oriented Programming approach to maintaining part interfaces and mating information\n  - Live preview of 3D models while working in Visual Studio Code\n  - Render 2D and 3D to images\n    - [x] `SVG`\n    - [x] `PNG`\n  - Export 3D models to CAD files\n    - [x] `STEP`\n    - [x] `BREP`\n    - [x] `STL`\n    - [x] `3MF`\n    - [x] `ThreeJS`\n    - [x] `OBJ`\n\n## Installation\n\nNote, it's not required but highly recommended that you have [conda] installed. If you experience any difficulty\ninstalling or using any PartCAD tool, then make sure to install [conda].\n\n### Extension for Visual Studio Code\n\nThis extension can be installed by searching for `PartCAD` in the VS Code extension search form, or by browsing\n[its VS Code marketplace page](https://marketplace.visualstudio.com/items?itemName=OpenVMP.partcad).\n\nMake sure to have Python configured and a [conda] environment set up in VS Code before using PartCAD.\n\n### Command-Line Interface\n\nThe recommended method to install PartCAD CLI tools for most users is:\n\n```shell\npip install -U partcad-cli\n```\n\n- On **Windows**, install `Miniforge3` using `Register Miniforge3 as my default Python X.XX` and use this Python\n  environment for PartCAD. Also set `LongPathsEnabled` to 1 at\n  `HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem` using `Registry Editor`.\n- On **Ubuntu**, try `apt install libcairo2-dev python3-dev` if `pip install` fails to install `cairo`.\n- On **macOS**, make sure XCode and command lines tools are installed. Also, use `mamba` should you experience\n  difficulties on macOS with the ARM architecture.\n\n### PartCAD development\n\nRefer to the [Quick Start] guide for step-by-step instructions on setting up your development environment, adding\nfeatures, and running tests.\n\n## Getting Started\n\nSee the tutorials for [PartCAD command line tools](https://partcad.readthedocs.io/en/latest/tutorial.html#command-line)\nor [PartCAD Visual Studio Code extension](https://partcad.readthedocs.io/en/latest/tutorial.html#vs-code-extension).\n\n## Have you read this page this far?\n\nGive us a star for our hard work!\n\n[PartCAD]: https://partcad.org/\n[our website]: https://partcad.org/\n[our documentation]: https://partcad.readthedocs.io/en/latest/?badge=latest\n[LinkedIn]: https://linkedin.com/company/partcad\n[YouTube]: https://youtube.com/@PartCAD\n[TikTok]: https://tiktok.com/@partcad\n[Facebook]: https://www.facebook.com/profile.php?id=61568171037701\n[Instagram]: https://instagram.com/partcadofficial\n[Twitter/X]: https://x.com/PartCAD\n[Threads]: https://threads.net/@partcadofficial\n[conda]: https://docs.conda.io/\n[CadQuery]: https://github.com/CadQuery/cadquery\n[build123d]: https://github.com/gumyr/build123d\n[OpenSCAD]: https://openscad.org/\n[STEP]: https://en.wikipedia.org/wiki/ISO_10303\n[BREP]: https://en.wikipedia.org/wiki/Boundary_representation\n[OpenCASCADE]: https://www.opencascade.com/\n[KiCad EDA]: https://www.kicad.org/\n[Quick Start]: https://partcad.github.io/partcad/development/quick-start/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpartcad%2Fpartcad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpartcad%2Fpartcad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpartcad%2Fpartcad/lists"}