Skip to main content

A python CAD programming library

Project description

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. Built on the Open Cascade geometric kernel, it provides a clean, fully Pythonic interface for creating precise models suitable for 3D printing, CNC machining, laser cutting, and other manufacturing processes. Models can be exported to popular CAD tools such as FreeCAD and SolidWorks.

Designed for modern, maintainable CAD-as-code, build123d combines clear architecture with expressive, algebraic modeling. It offers:

  • Minimal or no internal state depending on mode,
  • Explicit 1D, 2D, and 3D geometry classes with well-defined operations,
  • Extensibility through subclassing and functional composition—no monkey patching,
  • Standards-compliant code (PEP 8, mypy, pylint) with rich pylance type hints,
  • Deep Python integration—selectors as lists, locations as iterables, and natural conversions (Solid(shell), tuple(Vector)),
  • Operator-driven modeling (obj += sub_obj, Plane.XZ * Pos(X=5) * Rectangle(1, 1)) for algebraic, readable, and composable design logic.

The result is a framework that feels native to Python while providing the full power of OpenCascade geometry underneath.

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.

Attribution:

Build123d was originally derived from portions of the CadQuery codebase but has since been extensively refactored and restructured into an independent system.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

build123d-0.10.0.tar.gz (20.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

build123d-0.10.0-py3-none-any.whl (278.8 kB view details)

Uploaded Python 3

File details

Details for the file build123d-0.10.0.tar.gz.

File metadata

  • Download URL: build123d-0.10.0.tar.gz
  • Upload date:
  • Size: 20.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for build123d-0.10.0.tar.gz
Algorithm Hash digest
SHA256 73ded38ddca8ebb95e7dd078ac3d7aacc8ca42fce8f1d176f1040e35fba4f608
MD5 8eceba0a21e9bc0e7e50049a0238ded4
BLAKE2b-256 7e00b56ebe1d2a31611dbfcc315d22ebb5403eddc60027d5f82acd493ebb5ac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for build123d-0.10.0.tar.gz:

Publisher: publish.yml on gumyr/build123d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file build123d-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: build123d-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 278.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for build123d-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 589f397b1dc7c85c9936aa7b2ee39946cc226a121e14a621b6749263aae5ed7d
MD5 ea19737b9f0e413e6f42af461a5b961e
BLAKE2b-256 f35a0fe9cc610a6d07eaaddd80629a49ea18ecf9acefb81c6788a854f0dea224

See more details on using hashes here.

Provenance

The following attestation bundles were made for build123d-0.10.0-py3-none-any.whl:

Publisher: publish.yml on gumyr/build123d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page