# Third-party notices aicad is built on the open-source software below. Each component stays under its own licence, which governs it; the aicad licence (LICENSE) does not narrow the rights those licences give you. Generated by `scripts/third_party_notices.py` from the packages installed in the environment it ran in, plus the versions and platform-specific packages `uv.lock` names for other platforms, so it reflects `uv.lock` at the time it was run. The Rust crates are in THIRD-PARTY-RUST.md. ## Libraries you may replace These components are under the GNU Lesser General Public License. aicad does not modify them and loads them as separate wheels or shared libraries, so you may replace any of them with another build of the same version: install a different wheel of the package into aicad's Python environment (the Windows download is such an environment, in its `python` folder, not a single executable). Their source is available from the pages linked below. The texts of the licences are in the `licenses` folder: LGPL-2.1.txt, LGPL-3.0.txt and GPL-3.0.txt, which the LGPL-3.0 incorporates. - **netgen-mesher** 6.2.2607 -- LGPL-2.1-only - **netgen_occt** 7.8.1 -- GNU Lesser General Public License v2 or later (LGPLv2+) - **PySide6_Essentials** 6.9.3 (Mac); 6.11.2 (Windows and Linux) -- LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -- - **shiboken6** 6.9.3 (Mac); 6.11.2 (Windows and Linux) -- LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -- - **Open CASCADE Technology (OCCT)** 7.8 (netgen_occt) / 8.0.1 (cadquery-ocp) -- LGPL-2.1 with the OCCT exception -- . The geometry kernel, inside the cadquery-ocp, cadquery-ocp-novtk and netgen_occt wheels; loaded as shared libraries. Source: . - **Qt** 6.9.3 (Mac) / 6.11.2 (Windows, Linux) -- LGPL-3.0 (Qt is offered as LGPL-3.0, GPL-2.0, GPL-3.0 or commercial; aicad uses it under the LGPL-3.0) -- . The user-interface toolkit in the PySide6_Essentials wheels; the launcher uses QtCore, QtGui and QtWidgets. The Qt libraries are separate files in the wheel. Source: and . The wheel also holds a few Qt modules that are available under the GPL or a commercial licence only, not the LGPL (Qt Quick Timeline, Qt Qml Compiler, Qt Virtual Keyboard). aicad does not use them and deletes them from the bundles it distributes (packaging/windows/prune_qt.py). - **GEOS** 3.13.1 -- LGPL-2.1 -- . The geometry engine inside the shapely wheel (libgeos and libgeos_c, shared libraries); used for drawings and contact screening. Source: . - **libquadmath** -- LGPL-2.1-or-later -- . GCC's quad-precision maths library, a shared library inside the numpy and scipy wheels. Source: the GCC source tree, (libquadmath/). - **LibRaw** -- LGPL-2.1 (offered as LGPL-2.1 or CDDL-1.0; aicad takes it under the LGPL-2.1) -- . A camera-raw reader, a shared library inside the cadquery-ocp wheel, linked by FreeImage, which OCCT's libTKService links. aicad does not read raw photographs. Source: . ## Components that are not Python packages - **three.js** r186 (viewer/vendor) -- MIT -- . The viewer's 3D renderer and the `jsm` add-ons it uses (lines, controls, environments). viewer/vendor/THREE-LICENSE. The hub serves its own small copy of the renderer and the controls for project previews (aicad/hub/vendor, same licence file); its glTF reader is aicad's own. - **FreeImage** 3.18.0 -- FreeImage Public License (FIPL) (offered as GPL-2.0, GPL-3.0 or FIPL; aicad takes it under the FIPL) -- . An image-format library, a shared library inside the cadquery-ocp wheel (libfreeimage 3.18.0), loaded by OCCT's libTKService by path (`@loader_path` on macOS), so another build can take its place; aicad does not modify it. The wheel does not state which licence it is used under; aicad takes the FIPL, a file-level licence whose source offer is in SOURCE-OFFER.txt (Windows download) and here: . Licence text: . - **Image libraries inside the cadquery-ocp wheel** -- libtiff (libtiff licence), libpng (PNG Reference Library License v2), OpenJPEG and OpenJPH (BSD-2-Clause), Little CMS 2 (MIT), LERC (Apache-2.0), libdeflate (MIT), fmt (MIT), liblzma (0BSD), zlib (Zlib), Imath and OpenEXR (BSD-3-Clause), jxrlib (BSD-2-Clause), libwebp and libsharpyuv (BSD-3-Clause), zstd (BSD-3-Clause) -- . Shared libraries FreeImage loads (`OCP/.dylibs`, `OCP.libs` or beside the extension on Windows), unmodified. Their licences are permissive; their notices: , , , , , , , , , , , . - **FreeType** 2.14.3 (Pillow), 2.12.1 (cadquery-ocp) -- FreeType Licence (FTL) (offered as FTL or GPL-2.0; aicad takes it under the FTL) -- . The font engine inside the Pillow (2.14.3, 2026), cadquery-ocp (2.12.1, 2022) and pypdfium2 (PDFium 151.0.7920, 2026) wheels. Portions of this software are copyright © 2022, 2026 The FreeType Project (www.freetype.org). All rights reserved. The FTL text is in Pillow's wheel (`pillow-*.dist-info/licenses/LICENSE`). - **libjpeg and libjpeg-turbo** 3.1.4.1 (Pillow) -- IJG licence, BSD-3-Clause and Zlib -- . The JPEG codec inside the Pillow and cadquery-ocp wheels. This software is based in part on the work of the Independent JPEG Group. - **GCC runtime libraries (libgcc, libgfortran, libstdc++)** -- GPL-3.0-or-later with the GCC Runtime Library Exception 3.1 -- . Shared runtime libraries inside the numpy and scipy wheels (and, on Linux, loaded from the system). The exception lets a program that uses them be distributed under its own licence; the GPL-3.0 text is in licenses/GPL-3.0.txt. - **OpenBLAS and LAPACK** -- BSD-3-Clause -- . The linear-algebra libraries inside the numpy and scipy wheels on the platforms that use them (the macOS wheels use Apple's Accelerate instead). LAPACK: . - **PDFium** -- BSD-3-Clause and Apache-2.0, with the licences of its own dependencies (FreeType, libjpeg-turbo, ICU, lcms2, and others) -- . The PDF renderer inside the pypdfium2 wheel (libpdfium); aicad uses it to read PDF references. The licence texts of PDFium and its dependencies are in the wheel (`pypdfium2-*.dist-info/licenses`). - **oneTBB, OpenVDB, Boost and spdlog** -- Apache-2.0 (oneTBB), MPL-2.0 (OpenVDB), BSL-1.0 (Boost), MIT (spdlog) -- . Libraries compiled into the coacd wheel's collision-hull library (lib_coacd), with CoACD itself (MIT). - **METIS** 5.x -- Apache-2.0 -- . Graph orderings for the stress solver, inside the pymetis wheel (macOS and Linux). - **Rust crates in aicad/_native** -- MIT, Apache-2.0, BSD-2-Clause, Zlib or Unlicense (each crate under the permissive one of its licences) -- . The stress solver's native extension (aicad/_native, built from native/) links its Rust crates statically, among them faer (the sparse Cholesky), pyo3 and numpy. Their names, versions, licences, copyright holders and licence texts are in THIRD-PARTY-RUST.md (written by scripts/rust_notices.py from native/Cargo.lock). None is under the GPL or the LGPL. faer also carries code ported from SuiteSparse (AMD, COLAMD) and LAPACK, under BSD licences, and from Eigen, under the MPL-2.0 (a file-level licence: the source of those files is faer's published source); their notices are in that file too. - **KiCad** -- GPL-3.0 (the program); CC-BY-SA-4.0 with the KiCad libraries exception (the 3D models) -- . Not bundled and not part of aicad: the KiCad add-on runs the user's own kicad-cli as a separate program and exchanges files with it. aicad's showcase designs, site images and videos, and example boards show boards built from models in KiCad's 3D library (), credit to the KiCad Library Team; the libraries' exception to CC-BY-SA lets designs and files made with them be used under other terms. aicad is not affiliated with the KiCad project. The LGPL components of this kind (Open CASCADE Technology, Qt, GEOS, libquadmath, LibRaw) are listed above, under "Libraries you may replace". ## Part data and names The dimension tables of aicad's standard parts (screws, nuts, washers, inserts, pins, retaining rings, bearings, O-rings, T-slot framing and linear guides) are published dimensions from standards and makers' catalogues, which are facts; each table file names its edition and sources (aicad/fasteners/data/README.md, docs/ADDONS.md). The geometry is aicad's own drawing. The names V-Slot (OpenBuilds), HIWIN, PEM, EJOT, McMaster-Carr, Seeed Studio and XIAO, KiCad, JST and the other makers and standards bodies cited are their owners' marks, used only to say which published dimensions a part follows. aicad is not affiliated with, endorsed by or sponsored by any of them. ## Python packages | Package | Version | Licence | Home | |---|---|---|---| | absl-py | 2.5.0 | Apache-2.0 | | | aiofile | 3.12.3 | Apache-2.0 | | | annotated-doc | 0.0.5 | MIT | | | annotated-types | 0.8.0 | MIT | | | anyio | 4.15.1 | MIT | | | anytree | 2.13.0 | Apache-2.0 | | | asttokens | 3.0.2 | Apache 2.0 | | | attrs | 26.1.0 | MIT | | | Authlib | 1.8.0 | BSD License | | | bd_materials | 0.2.4 | Apache-2.0 (its repository's LICENSE; no licence field in its metadata) | | | beartype | 0.22.9 | MIT License | | | build123d | 0.13.0 | Apache Software License | | | cachetools | 7.2.0 | MIT | | | cadquery-ocp-novtk | 8.0.1.0.0 | Apache-2.0 (the bindings); the wheel bundles OCCT (LGPL-2.1 with exception), FreeImage (FIPL), LibRaw (LGPL-2.1), FreeType, OpenEXR, libjpegxr, libwebp and zstd -- see the components below | | | cadquery-ocp-proxy | 8.0.1.0.0 | Apache Software License | | | caio | 0.12.4 | Apache-2.0 | | | certifi | 2026.7.22 | Mozilla Public License 2.0 (MPL 2.0) | | | cffi | 2.1.1 | MIT-0 | | | charset-normalizer | 3.5.1 | MIT | | | click | 8.5.0 | BSD-3-Clause | | | cloudpickle | 3.1.2 | BSD License | | | coacd | 1.0.14 (Apple-silicon Mac, Windows and Linux); 1.0.7 (Intel Mac) | MIT License | | | colorama | 0.4.6 (Windows) | BSD-3-Clause | | | cryptography | 50.0.1 (Apple-silicon Mac, Windows and Linux); 48.0.1 (Intel Mac) | Apache-2.0 OR BSD-3-Clause | | | cyclopts | 4.25.3 | Apache-2.0 | | | dataclasses-json | 0.6.7 | MIT License | | | Deprecated | 1.3.1 | MIT License | | | dnspython | 2.8.0 | ISC License (ISCL) | | | docstring_parser | 0.18.0 | MIT License | | | dulwich | 1.2.15 | Apache-2.0 (offered as Apache-2.0 OR GPL-2.0-or-later; aicad takes it under Apache-2.0) | | | email-validator | 2.3.0 | The Unlicense (Unlicense) | | | etils | 1.14.0 | Apache Software License | | | exceptiongroup | 1.3.1 | MIT License | | | executing | 2.2.1 | MIT License | | | ezdxf | 1.4.4 | MIT License | | | fastapi | 0.141.1 | MIT | | | fastmcp | 4.0.5 | Apache-2.0 | | | fastmcp-slim | 4.0.5 | Apache-2.0 | | | fonttools | 4.65.0 | MIT | | | fsspec | 2026.9.0 | BSD-3-Clause | | | glfw | 2.10.2 | MIT License | | | griffelib | 2.3.0 | ISC | | | h11 | 0.16.0 | MIT License | | | httpcore | 1.0.9 | BSD-3-Clause | | | httpcore2 | 2.13.0 | BSD-3-Clause | | | httptools | 0.8.0 | MIT | | | httpx | 0.28.1 | BSD License | | | httpx2 | 2.13.0 | BSD-3-Clause | | | idna | 3.20 | BSD-3-Clause | | | ipython | 9.17.1 | BSD-3-Clause | | | ipython_pygments_lexers | 1.1.1 | BSD License | | | jaraco.classes | 3.4.0 | MIT License | | | jaraco.context | 6.1.2 | MIT | | | jaraco.functools | 4.6.0 | MIT | | | jedi | 0.20.0 | MIT License | | | jeepney | 0.9.0 (Linux) | MIT | | | joblib | 1.6.0 | BSD-3-Clause | | | joserfc | 1.7.5 | BSD License | | | json5 | 0.15.0 | Apache Software License | | | jsonref | 1.1.0 | MIT | | | jsonschema | 4.26.0 | MIT | | | jsonschema-path | 0.5.0 | Apache Software License | | | jsonschema-specifications | 2025.9.1 | MIT | | | keyring | 25.7.0 | MIT | | | lib3mf | 2.5.0 | BSD License | | | manifold3d | 3.5.4 | Apache Software License | | | markdown-it-py | 4.2.0 | MIT License | | | marshmallow | 3.26.2 | MIT License | | | matplotlib-inline | 0.2.2 | BSD-3-Clause | | | mcp | 2.2.0 | MIT License | | | mcp-types | 2.2.0 | MIT License | | | mdurl | 0.1.2 | MIT License | | | more-itertools | 11.1.0 | MIT | | | mpmath | 1.3.0 | BSD License | | | mujoco | 3.14.0 (Apple-silicon Mac, Windows and Linux); 3.10.0 (Intel Mac) | Apache-2.0 | | | mypy_extensions | 1.1.0 | MIT | | | narwhals | 2.26.0 | MIT | | | netgen-mesher | 6.2.2607 | LGPL-2.1-only | | | netgen_occt | 7.8.1 | GNU Lesser General Public License v2 or later (LGPLv2+) | | | numpy | 2.5.3 | BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 | | | ocp_gordon | 0.3.1 | Apache-2.0 | | | ocpsvg | 0.7.0 | Apache-2.0 (the LICENSE file in the wheel; no licence field in its metadata) | | | openapi-pydantic | 0.5.1 | MIT License | | | opentelemetry-api | 1.44.0 | Apache-2.0 | | | packaging | 26.3 | Apache-2.0 OR BSD-2-Clause | | | parso | 0.8.7 | MIT License | | | pathable | 0.6.0 | Apache Software License | | | pexpect | 4.9.0 | ISC License (ISCL) | | | pillow | 12.2.0 | MIT-CMU | | | platformdirs | 4.11.11 | MIT | | | prompt_toolkit | 3.0.53 | BSD License | | | psutil | 7.2.2 | BSD-3-Clause | | | ptyprocess | 0.7.0 | ISC License (ISCL) | | | pure_eval | 0.2.4 | MIT License | | | py-key-value-aio | 0.4.6 | Apache-2.0 | | | py-lib3mf | 2.5.0 (Linux on ARM64) | Apache-2.0 | | | py_gearworks | 0.0.24 | Apache Software License | | | pycparser | 3.0 | BSD-3-Clause | | | pydantic | 2.13.5 | MIT | | | pydantic-settings | 2.15.0 | MIT | | | pydantic_core | 2.46.5 | MIT | | | pygltflib | 1.16.5 | MIT License | | | Pygments | 2.21.0 | BSD-2-Clause | | | PyJWT | 2.14.0 | MIT | | | pymetis | 2025.2.2 | MIT AND Apache-2.0 | | | PyOpenGL | 3.1.10 | BSD License | | | pyparsing | 3.3.3 | MIT | | | pypdfium2 | 5.11.0 | BSD-3-Clause, Apache-2.0, dependency licenses | | | pyperclip | 1.11.0 | BSD License | | | PySide6_Essentials | 6.9.3 (Mac); 6.11.2 (Windows and Linux) | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only | | | python-dotenv | 1.2.3 | BSD-3-Clause | | | python-multipart | 0.0.32 | Apache-2.0 | | | pywin32 | 312 (Windows) | PSF | | | pywin32-ctypes | 0.2.3 (Windows) | BSD-3-Clause | | | PyYAML | 6.0.3 | MIT License | | | referencing | 0.37.0 | MIT | | | requests | 2.34.2 | Apache Software License | | | rich | 15.0.0 | MIT License | | | rich-rst | 2.1.0 | MIT | | | rpds-py | 2026.6.3 | MIT | | | rtree | 1.4.1 | MIT | | | scikit-learn | 1.9.1 | BSD-3-Clause | | | scipy | 1.18.1 | BSD License | | | secretstorage | 3.5.0 (Linux) | BSD-3-Clause | | | shapely | 2.1.2 | BSD-3-Clause; the wheel bundles GEOS (LGPL-2.1) -- see the libraries you may replace | | | shellingham | 1.5.4 | ISC License (ISCL) | | | shiboken6 | 6.9.3 (Mac); 6.11.2 (Windows and Linux) | LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only | | | sse-starlette | 3.4.11 | BSD-3-Clause | | | stack-data | 0.6.3 | MIT License | | | starlette | 1.6.0 | BSD-3-Clause | | | svgelements | 1.9.6 | MIT License | | | svgpathtools | 1.8.0 | MIT License | | | svgwrite | 1.4.3 | MIT License | | | sympy | 1.14.0 | BSD License | | | threadpoolctl | 3.7.0 | BSD-3-Clause | | | threejs-materials | 1.2.3 | Apache-2.0 | | | traitlets | 5.16.1 | BSD License | | | trianglesolver | 1.2 | MIT License | | | trimesh | 5.1.0 | MIT License | | | truststore | 0.10.4 | MIT | | | typer | 0.27.2 | MIT | | | typing-inspect | 0.9.0 | MIT License | | | typing-inspection | 0.4.4 | MIT | | | typing_extensions | 4.16.0 | PSF-2.0 | | | uncalled-for | 0.4.0 | MIT License | | | urllib3 | 2.8.0 | MIT | | | uvicorn | 0.53.0 | BSD-3-Clause | | | uvloop | 0.22.1 | Apache Software License, MIT License | | | watchfiles | 1.3.0 | MIT License | | | wcwidth | 0.8.4 | MIT | | | webcolors | 24.8.0 | BSD License | | | websockets | 17.1 | BSD-3-Clause | | | wrapt | 2.4.1 | BSD-2-Clause | | | zipp | 4.1.0 | MIT | | ## Licence texts The GNU licences are in the `licenses` folder beside this file (and in the Windows download): LGPL-2.1.txt, LGPL-3.0.txt and GPL-3.0.txt. The permissive components' licence texts are in each package's `.dist-info` folder.