build123d

A python CAD programming library

https://github.com/gumyr/build123d

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.9%) to scientific vocabulary

Keywords

3d 3d-models 3d-printing brep build123d cad cadquery opencascade python
Last synced: 6 months ago · JSON representation ·

Repository

A python CAD programming library

Basic Info
  • Host: GitHub
  • Owner: gumyr
  • License: apache-2.0
  • Language: Python
  • Default Branch: dev
  • Homepage:
  • Size: 33.3 MB
Statistics
  • Stars: 948
  • Watchers: 21
  • Forks: 130
  • Open Issues: 290
  • Releases: 11
Topics
3d 3d-models 3d-printing brep build123d cad cadquery opencascade python
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License Citation

README.md

build123d logo

Documentation Status tests pylint mypy codecov

Python Versions Code style: black License

PyPI version Downloads Downloads/month PyPI - Wheel DOI

Build123d is a python-based, parametric, boundary representation (BREP) modeling framework for 2D and 3D CAD. It's built on the Open Cascade geometric kernel and allows for the creation of complex models using a simple and intuitive python syntax. Build123d can be used to create models for 3D printing, CNC machining, laser cutting, and other manufacturing processes. Models can be exported to a wide variety of popular CAD tools such as FreeCAD and SolidWorks.

Build123d could be considered as an evolution of CadQuery where the somewhat restrictive Fluent API (method chaining) is replaced with stateful context managers - e.g. with blocks - thus enabling the full python toolbox: for loops, references to objects, object sorting and filtering, etc.

The documentation for build123d can be found at readthedocs.

There is a Discord server (shared with CadQuery) where you can ask for help in the build123d channel.

The recommended method for most users to install build123d is:

pip install build123d

To get the latest non-released version of build123d one can install from GitHub using one of the following two commands:

Linux/MacOS:

python3 -m pip install git+https://github.com/gumyr/build123d

Windows:

python -m pip install git+https://github.com/gumyr/build123d

If you receive errors about conflicting dependencies, you can retry the installation after having upgraded pip to the latest version with the following command: python3 -m pip install --upgrade pip

Development install:

git clone https://github.com/gumyr/build123d.git cd build123d python3 -m pip install -e .

Further installation instructions are available (e.g. Poetry) see the installation section on readthedocs.

Owner

  • Login: gumyr
  • Kind: user
  • Location: Ottawa, Canada

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use build123d in your research, please cite it using the following information."
title: "build123d: A Python-based parametric CAD library"
version: "0.9.1"
doi: "10.5281/zenodo.14872323"
authors:
  - name: "Roger Maitland"
    affiliation: "Independent Developer"
date-released: "2025-02-14"
repository-code: "https://github.com/gumyr/build123d"
license: "Apache-2.0"
keywords:
  - CAD
  - Python
  - OpenCascade
  - Parametric Design

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 360
  • Total pull requests: 173
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 88
  • Total pull request authors: 58
  • Average comments per issue: 1.03
  • Average comments per pull request: 1.29
  • Merged pull requests: 113
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 205
  • Pull requests: 107
  • Average time to close issues: 15 days
  • Average time to close pull requests: 3 days
  • Issue authors: 61
  • Pull request authors: 38
  • Average comments per issue: 0.8
  • Average comments per pull request: 1.38
  • Merged pull requests: 66
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gumyr (73)
  • MatthiasJ1 (69)
  • jdegenstein (65)
  • KilowattSynthesis (14)
  • 42sol-eu (11)
  • jwagenet (8)
  • bernhard-42 (6)
  • KarthikDani (5)
  • cyberhuman (4)
  • CarpeNecopinum (4)
  • erooke (3)
  • javimixet (3)
  • Jojain (3)
  • DeflateAwning (2)
  • gautaz (2)
Pull Request Authors
  • jdegenstein (72)
  • jwagenet (11)
  • snoyer (5)
  • slobberingant (5)
  • Jojain (4)
  • erooke (4)
  • fischman (4)
  • MatthiasJ1 (4)
  • 42sol-eu (3)
  • openvmp (3)
  • roman-dvorak (3)
  • gumyr (3)
  • luzpaz (3)
  • jrmobley (2)
  • WayneSherman (2)
Top Labels
Issue Labels
enhancement (75) bug (42) documentation (19) wontfix (12) question (7) occt (4) duplicate (4) good first issue (2) can't reproduce (2) invalid (2) help wanted (2) architecture review (1)
Pull Request Labels
enhancement (4) documentation (2) bug (1) question (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 5,371 last-month
  • Total dependent packages: 5
  • Total dependent repositories: 0
  • Total versions: 10
  • Total maintainers: 1
pypi.org: build123d

A python CAD programming library

  • Versions: 10
  • Dependent Packages: 5
  • Dependent Repositories: 0
  • Downloads: 5,371 Last month
Rankings
Stargazers count: 4.6%
Forks count: 6.1%
Dependent packages count: 10.2%
Downloads: 17.1%
Average: 21.0%
Dependent repos count: 67.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/requirements.txt pypi
  • readthedocs-sphinx-search ==0.1.1
  • sphinx ==4.2.0
  • sphinx_autodoc_typehints ==1.12.0
  • sphinx_rtd_theme ==1.0.0
.github/actions/setup/action.yml actions
  • actions/setup-python v4 composite
.github/workflows/coverage.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/lint.yml actions
  • ./.github/actions/setup * composite
  • actions/checkout v3 composite
.github/workflows/mypy.yml actions
  • ./.github/actions/setup * composite
  • actions/checkout v3 composite
.github/workflows/test.yml actions
  • ./.github/actions/setup * composite
  • actions/checkout v3 composite
pyproject.toml pypi
  • OCP-stubs @ git+https://github.com/CadQuery/OCP-stubs@7.7.0
  • anytree >= 2.8.0, <3
  • cadquery-ocp ~= 7.7.0a0
  • ezdxf >= 1.0.0, < 2
  • ipython >= 8.0.0, <9
  • numpy >= 1.24.1, <2
  • numpy-stl >= 3.0.0, <4
  • py_lib3mf @ git+https://github.com/jdegenstein/py-lib3mf
  • svgpathtools >= 1.5.1, <2
  • typing_extensions >= 4.4.0, <5
requirements.txt pypi
  • pytest-cov *
docs/environment.yaml conda
  • nbsphinx
  • sphinx