A python CAD programming library
Find a file
gumyr 8b2886144e
Some checks are pending
benchmarks / benchmarks (macos-13, 3.12) (push) Waiting to run
benchmarks / benchmarks (macos-14, 3.12) (push) Waiting to run
benchmarks / benchmarks (ubuntu-latest, 3.12) (push) Waiting to run
benchmarks / benchmarks (windows-latest, 3.12) (push) Waiting to run
Upload coverage reports to Codecov / run (push) Waiting to run
pylint / lint (3.10) (push) Waiting to run
Run type checker / typecheck (3.10) (push) Waiting to run
Run type checker / typecheck (3.13) (push) Waiting to run
Wheel building and publishing / Build wheel on ubuntu-latest (push) Waiting to run
Wheel building and publishing / upload_pypi (push) Blocked by required conditions
tests / tests (macos-13, 3.10) (push) Waiting to run
tests / tests (macos-13, 3.13) (push) Waiting to run
tests / tests (macos-14, 3.10) (push) Waiting to run
tests / tests (macos-14, 3.13) (push) Waiting to run
tests / tests (ubuntu-latest, 3.10) (push) Waiting to run
tests / tests (ubuntu-latest, 3.13) (push) Waiting to run
tests / tests (windows-latest, 3.10) (push) Waiting to run
tests / tests (windows-latest, 3.13) (push) Waiting to run
Initial commit of make_constrained_arcs
2025-09-08 12:23:18 -04:00
.github benchmark.yml -> tag artifact with os matrix name 2025-05-01 11:59:44 -05:00
docs Adding BlendCurve to the docs 2025-09-03 11:01:05 -04:00
examples Adding example of making many holes 2025-05-31 09:41:50 -04:00
src/build123d Initial commit of make_constrained_arcs 2025-09-08 12:23:18 -04:00
tests Adding Mixin1D.curvature_comb 2025-09-03 19:29:46 -04:00
tools deglob.py -> add requested / discussed changes 2025-07-15 16:33:07 -05:00
.gitignore Speed up test_pack.py by fuse()ing once per test case. 2023-11-15 11:03:21 -08:00
.pylintrc Disable linting on imported modules 2025-01-07 14:26:56 -05:00
.readthedocs.yaml add missing [docs] dependencies, pin sphinx to a new version, point readthedocs to a .[docs] installation 2025-01-14 13:02:09 -06:00
CITATION.cff Fixing citation date 2025-02-14 13:45:38 -05:00
Citation.md Adding a citation 2025-02-14 13:43:55 -05:00
CONTRIBUTING.md Run tests in parallel by default, and update CONTRIBUTING.md to recommend this flow. 2025-02-22 11:37:58 -08:00
LICENSE Adding LICENSE file 2023-08-20 14:43:46 -04:00
MANIFEST.in scm_versioning MANIFEST.in and pyproject.toml 2023-02-21 21:00:25 -06:00
mypy.ini mypy.ini -> change py_lib3mf to lib3mf 2025-02-27 16:08:10 -06:00
partcad.yaml Updated partcad.yaml to make the examples work in the latest PartCAD 2024-09-20 22:19:34 -07:00
pyproject.toml Add ColorLike and update Color overloads accordingly 2025-08-11 20:43:10 -04:00
README.md Adding a citation 2025-02-14 13:43:55 -05:00

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.