Credits and licenses¶
b123d-print is a thin layer over:
- build123d — the Python CAD API every part is written in (Apache-2.0)
- Open CASCADE Technology, via OCP — the geometry kernel (LGPL-2.1 with exception; bindings Apache-2.0)
- lib3mf — 3MF export (BSD)
- OrcaSlicer — printer dimensions for the optional printer profiles (AGPL-3.0; facts only, no files copied)
- matplotlib and NumPy — renders, sections, check math
- Model Context Protocol and its Python SDK (MIT)
- uv — packaging and
uvx - This site: MkDocs and Material for MkDocs
License¶
MIT © KD5RYN and contributors.
Third-party software¶
From THIRD_PARTY.md:
b123d-print is a thin layer over other people's work. It does not copy or bundle their code:
they are installed as dependencies, under their own licenses. Versions are the ones pinned in
pyproject.toml / uv.lock.
| Project | Used for | License |
|---|---|---|
| build123d 0.13.0 | the CAD modeling API every part script is written in | Apache-2.0 |
OCP (cadquery-ocp-novtk 8.0.1) |
Python bindings to OpenCascade, used by build123d | Apache-2.0 (bindings) |
| Open CASCADE Technology 8.0.x (shared libraries inside the OCP wheel) | the geometry kernel: solids, booleans, sections, STEP/STL | LGPL-2.1 with the OCCT exception |
| matplotlib 3.11 | preview renders and cross-section images | Matplotlib license (PSF-based) |
| NumPy 2.5 | tessellation math in the checks | BSD-3-Clause (and bundled 0BSD, MIT, Zlib, CC0) |
| MCP Python SDK 2.3 | the MCP server | MIT |
| uv | install / run (uvx), build backend uv_build |
Apache-2.0 or MIT |
| lib3mf (via build123d) | 3MF export | BSD |
| OrcaSlicer printer profiles | source of the printer table (data/printers_orca.json) |
AGPL-3.0 — see below |
build123d also pulls in ocpsvg (Apache-2.0), ocp-gordon (Apache-2.0),
ezdxf (MIT), sympy (BSD), scipy (BSD), anytree (Apache-2.0), svgpathtools (MIT) and others;
uv pip list shows the full set and each package's metadata carries its license.
Notes for redistribution¶
- Python package (wheel/sdist): contains only b123d-print's own code (MIT). Dependencies are fetched from PyPI by the installer, so no third-party license texts need to ship with it.
- Docker image: the image does contain the dependencies, including the OpenCascade shared
libraries (LGPL-2.1). Anyone publishing the image should keep the license files that come with
each installed package (they are in each
*.dist-info/folder, left in place by the Dockerfile) and point to the OCCT source (https://github.com/Open-Cascade-SAS/OCCT); LGPL lets users replace the library, which a pip-installable stack already allows. - Printer table:
src/b123d_print/data/printers_orca.jsonholds only facts (model name, build volume, bed shape, nozzle size) read from OrcaSlicer's printer profiles bytools/sync_orca_printers.py; the OrcaSlicer commit is recorded in the file. No OrcaSlicer files, text or code are included. Thanks to the OrcaSlicer project and the printer makers who maintain those profiles. - Example parts in
src/b123d_print/examples/are original designs, MIT like the rest.