A python CAD programming library
2.6k
Stars
241
Forks
356
Open issues
30
Contributors
AI Analysis
build123d is a Python-based parametric CAD library built on Open Cascade that enables programmatic creation of 2D/3D models for 3D printing, CNC machining, and laser cutting. It serves engineers, makers, and automation professionals who prefer code-driven design over GUI-based CAD tools, and is not suitable for users requiring traditional CAD interfaces or those without Python experience.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Python CAD library offering Pythonic BREP modeling for programmatic design and manufacturing workflows
build123d is a Python-based parametric CAD framework built on Open Cascade, targeting users who want to express 3D geometry as code rather than clicking through GUI workflows. It serves engineers, makers, and developers building parts for 3D printing, CNC machining, and laser cutting. The project appears positioned as a more Pythonic alternative to CadQuery, emphasizing algebraic operators and minimal internal state. Real-world adoption remains unclear but shows signs of active use in manufacturing and hobbyist communities.
Created in July 2022, build123d emerged as the project matured in the CAD-as-code ecosystem. It builds on Open Cascade, the same kernel powering FreeCAD, and appears designed to learn from and improve upon earlier Python CAD libraries like CadQuery by offering cleaner syntax and architectural decisions focused on functional composition.
The project gained 60 stars in the week before analysis (steady growth signal). Steady maintenance and documentation suggest organic adoption, though the repository's relative youth (under 4 years old) and moderate star count (2,533) indicate it remains in an exploratory adoption phase within the niche. Growth appears driven by active community engagement (Discord, discussions) and continued feature development rather than mainstream marketing.
adoption not verified. No case studies, documented production deployments, or quantified user base mentioned in README. PyPI download metrics are available but not detailed in README excerpt. Community channels (Discord, discussions) exist but participation scale unknown. Project appears to serve technical audiences (engineers, makers) but evidence of actual production use is not publicly documented.
Based on README, likely organized around explicit 1D, 2D, and 3D geometry classes with emphasis on immutability and functional composition. Appears designed to minimize side effects through 'minimal or no internal state' modes. Uses operator overloading (`+=`, `*`, `@`, `%`) for algebraic modeling. Deep Python integration suggested by type hints (mypy, pylance), PEP 8 compliance, and Black formatting.
README references codecov badge and CI workflows for tests, pylint, and mypy, suggesting active quality gates. Specific coverage percentage not documented in README excerpt.
Last push 2026-06-27 (2 days before analysis date) indicates active maintenance. CI/CD badges present (tests, lint, mypy). Supported Python versions span 3.10–3.14, showing ongoing compatibility work. PyPI distribution present with wheel support. Regular updates and enforcement of code standards suggest mature project operations.
ADOPT IF: you are a software engineer or technical maker building reproducible, version-controllable CAD designs in Python; you need 2D+3D parametric modeling for 3D printing, CNC, or laser workflows; you prefer functional composition and minimal state over traditional CAD GUI interactions. AVOID IF: you require extensive real-world production case studies or enterprise support guarantees; you need a mature, battle-tested ecosystem with dominant market share; you are a non-programmer seeking GUI-based design. MONITOR IF: you are evaluating Python CAD libraries long-term; the project shows healthy maintenance and design discipline but lacks documented production adoption at scale; watch for growth in the maker/manufacturing automation communities.
Independent dimensions
Mainstream potential
3/10
Technical importance
7/10
Adoption evidence
3/10
- Adoption not verified: no public case studies or quantified production deployments; may be limited to hobbyists and early adopters.
- Narrow ecosystem compared to FreeCAD or CadQuery: smaller community may limit library integrations, plugins, and third-party support.
- Open Cascade dependency: performance and feature ceiling bounded by upstream kernel; any kernel issues directly impact library usability.
- Potential fragmentation risk: if CadQuery and build123d pursue divergent visions, Python CAD-as-code community may splinter rather than consolidate.
- Documentation completeness uncertain: README shows cheat sheet and examples, but depth of API documentation and advanced use cases not evidenced in excerpt.
build123d will likely remain a specialized tool for technical audiences (engineers, makers, Python-first developers) rather than achieving mainstream CAD adoption. Growth trajectory suggests slow but steady organic adoption within niche communities. May become dominant within the 'Python CAD-as-code' subspace if it maintains design discipline and community engagement, but unlikely to challenge FreeCAD or GUI-centric tools for broader market share.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Python
- License
- Apache-2.0
- Last updated
- 18h ago
- Created
- 49mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Warn when passing both face and origin into Plane constructor
Replace `find_intersection_points` with `intersection`
`ConstrainedArcs` overload "E" for `center_on` param should list `Axis | Edge`
"inverted" dxf arcs
TTLibFileIsCollectionError when importing .ttf fonts containing a TrueType Collection on Windows
Top contributors
Similar repos
hlorus/CAD_Sketcher
CAD Sketcher is a constraint-based geometry sketcher extension for Blender that...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
2.6k | +71 | Python | 8/10 | 18h ago |
|
|
5.4k | — | Python | 8/10 | 2d ago |
|
|
32k | — | C++ | 7/10 | 10h ago |
|
|
3.3k | — | Python | 7/10 | 4d ago |
|
|
9.8k | — | C++ | 8/10 | 14h ago |
|
|
1.2k | — | Python | 7/10 | 3d ago |
More established Python CAD library (5,378 stars). build123d appears designed as spiritual successor with cleaner syntax, stronger type hints, and reduced internal state. Adoption likely weighted toward CadQuery currently, but build123d may appeal to users seeking more Pythonic design patterns.
Far larger project (31,791 stars, C++ foundation) with GUI-first design philosophy. build123d targets code-first workflows; they serve different user models. FreeCAD dominates GUI-based CAD; build123d cannot replicate that breadth but may be preferred for programmatic workflows.
Domain-specific CAD language (9,656 stars). OpenSCAD serves declarative geometry scripting; build123d offers full Python expressiveness. build123d likely more flexible for complex logic but higher barrier for non-programmers.
Browser-based web UI for Open Cascade (1,411 stars). build123d is library-based, Python-native; CascadeStudio targets interactive web workflows. Different interaction models; minimal direct competition.
2D-focused CAD tool (5,996 stars). build123d handles 2D and 3D programmatically. LibreCAD serves GUI users; build123d complements rather than competes for users wanting code-first 2D/3D design.