b123d-recognisers
Deterministic, geometry-only feature recognition for build123d solids and imported STEP models.
This is the standalone Apache-2.0 recognition layer extracted from Draftwright. It reports immutable geometric records and does not own drawing, manufacturing, editing, or consumer-cache policy.
Usage
Run the complete shared recognition orchestration when a consumer needs one consistent inventory:
from b123d_recognisers import build_recognition_result
result = build_recognition_result(part)
for hole in result.holes:
print(hole.diameter, hole.depth, hole.through)
Individual recognisers remain public for focused consumers. Reusable evidence is explicitly injected so it is not rediscovered:
from b123d_recognisers import analyse_cylinders, recognise_hole_patterns, recognise_holes
cylinders = analyse_cylinders(part)
holes = recognise_holes(part, cyls=cylinders)
patterns = recognise_hole_patterns(holes)
Every recognise_* function returns a deterministic list of frozen dataclass records. Records
provide to_dict() projections containing only JSON-serialisable geometry values. See
docs/adr/0002-uniform-deterministic-recogniser-contract.md
for the complete contract.
Migrated behavior
The initial 0.1 release series preserves the recognition behavior of Draftwright commit
3fe20b0f71a71deced06b310943dd44cc66e355e. The migration includes every public recogniser,
shared cylinder/level substrates, the aggregate result, and feature_census. There are no feature
policy changes; one previously platform-dependent numerical axis tie is normalized to the pinned
baseline result. The checked-in semantic corpus records and continuously verifies the compatibility
boundary; see migration/PARITY.md.
The dependency direction is:
consumer → b123d-recognisers → build123d/OCP
The runtime package does not import Draftwright and does not return build123d or OCP objects in public feature records.
Maintainers: see the release guide for the TestPyPI-first, OIDC-only publication process.
Licence
Apache License 2.0. See LICENSE, NOTICE, and
THIRD_PARTY_NOTICES.md.
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 b123d_recognisers-0.1.0.tar.gz.
File metadata
- Download URL: b123d_recognisers-0.1.0.tar.gz
- Upload date:
- Size: 236.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
936b055a3e8feffe1b825242a6f87ffbc0ba565b6e68e8bae13f94a20bb982e0
|
|
| MD5 |
73abfdf20cfed34dfc49959c9ac41cbc
|
|
| BLAKE2b-256 |
00bb88cf7d1cc6e9c5ae775954d75c30a26f3859860e50b86cdd24e40ce02177
|
Provenance
The following attestation bundles were made for b123d_recognisers-0.1.0.tar.gz:
Publisher:
publish.yml on pzfreo/b123d-recognisers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
b123d_recognisers-0.1.0.tar.gz -
Subject digest:
936b055a3e8feffe1b825242a6f87ffbc0ba565b6e68e8bae13f94a20bb982e0 - Sigstore transparency entry: 2476625870
- Sigstore integration time:
-
Permalink:
pzfreo/b123d-recognisers@ec0e3574f6cf278cfcdddd7109ba5a1a3ed7ffb7 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pzfreo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ec0e3574f6cf278cfcdddd7109ba5a1a3ed7ffb7 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file b123d_recognisers-0.1.0-py3-none-any.whl.
File metadata
- Download URL: b123d_recognisers-0.1.0-py3-none-any.whl
- Upload date:
- Size: 106.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6f59a9bc2e5bd3144452530cbc1a491e1fd9fbb5182fee9079f6c2f02060989
|
|
| MD5 |
2e7cbaa00942081fec6a1feda9641a98
|
|
| BLAKE2b-256 |
11e5196c2507157049d10c9dd6d64f3d259d6d8e2b07ea41ad05608c25e1607f
|
Provenance
The following attestation bundles were made for b123d_recognisers-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on pzfreo/b123d-recognisers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
b123d_recognisers-0.1.0-py3-none-any.whl -
Subject digest:
d6f59a9bc2e5bd3144452530cbc1a491e1fd9fbb5182fee9079f6c2f02060989 - Sigstore transparency entry: 2476625885
- Sigstore integration time:
-
Permalink:
pzfreo/b123d-recognisers@ec0e3574f6cf278cfcdddd7109ba5a1a3ed7ffb7 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pzfreo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ec0e3574f6cf278cfcdddd7109ba5a1a3ed7ffb7 -
Trigger Event:
workflow_dispatch
-
Statement type: