OpenCAD core — geometry kernel, constraint solver, feature tree, and fluent modelling API
Project description
opencad
The OpenCAD core: geometry kernel, constraint solver, feature tree, and the fluent modelling API — with no web framework and no network dependency.
Install:
pip install opencad # pydantic + numpy only
pip install "opencad[occt]" # add the OCCT B-rep backend
pip install "opencad[full]" # OCCT + scipy solver + networkx graph analysis
Use:
from opencad import Part, Sketch
profile = Sketch(name="Plate").rect(80, 30).circle(3, center=(8, 8), subtract=True)
plate = Part().extrude(profile, depth=4, name="Plate")
plate.fillet(edges="all", radius=1.0)
Every fluent call appends a node to a rebuildable feature DAG, which you can
serialize, edit, and replay. See the repository ARCHITECTURE.md for the
kernel/solver/tree design and TOPOLOGY.md for topological naming.
Packages
| Module | Responsibility |
|---|---|
opencad |
Fluent Part/Sketch API, RuntimeContext, CLI, design artifacts |
opencad.kernel |
B-rep operations, OCCT and analytic backends, KernelClient |
opencad.solver |
2-D constraint solving (NumPy/SciPy and SolveSpace backends) |
opencad.tree |
Feature DAG, incremental rebuild, branching, expressions |
Related distributions
opencad-agent— natural-language modelling on top of this packageopencad-backend— FastAPI HTTP service exposing all of the above
Tests
pytest
The suite runs against this package alone. A few integration tests exercise
repository files (examples/, docs/schemas/) and skip automatically when
the package is tested outside a monorepo checkout.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opencad-0.2.1.tar.gz.
File metadata
- Download URL: opencad-0.2.1.tar.gz
- Upload date:
- Size: 65.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95362c6fadf445c9bcb0d8134fd2953c8f0d5dac7c44625867c907c1e248ffed
|
|
| MD5 |
40c5b922e91442d0bc2985aadd22c621
|
|
| BLAKE2b-256 |
4c1b68df571165de45a489213a94dc3b059acd0cb73b18623831c85eb941fc28
|
File details
Details for the file opencad-0.2.1-py3-none-any.whl.
File metadata
- Download URL: opencad-0.2.1-py3-none-any.whl
- Upload date:
- Size: 78.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f704df50322282bf0bb95f42ffa396715f31fbb0878a47f2d5500257377542a8
|
|
| MD5 |
87ecc205ed19ef0364b76ba014ebf1b6
|
|
| BLAKE2b-256 |
9fc39ca04773070c5398dff6ee62d2c35feeade2cb1735fd0195c7cfcf6391ac
|