This release is a pre-release and may not be stable for production use.
parasolid-kit
parasolid-kit is an experimental, schema-aware parser for Parasolid X_T and
X_B transmit files. Parsing and geometry mapping run in a safe Rust core, while
Python users work with immutable typed models.
The project is read-focused and currently pre-alpha. It is intended for file inspection, validation, research, and conversion pipelines where preserving the transmitted structure matters more than silently approximating unsupported data.
Features
- Inspect X_T and X_B headers without a schema catalog.
- Parse complete X_T and X_B node streams with the exact caller-provided schema.
- Reconstruct an unmodified parsed X_B document byte-for-byte.
- Compare X_T and X_B documents after pointer-index remapping.
- Map supported topology, analytic geometry, and NURBS records to a typed B-Rep source model.
- Return structured diagnostics and enforce configurable resource limits.
- Use the same functionality from Python or a JSON command-line interface.
See format support and limitations before relying on the parser for production data.
Installation
Python 3.10 or newer is required. Install a downloaded wheel with pip:
python -m pip install /path/to/parasolid_kit-0.1.0.dev0-cp310-abi3-PLATFORM.whl
To install from a source checkout, Rust 1.88 or newer is also required:
git clone https://github.com/monozukuri-ai/parasolid-kit.git
cd parasolid-kit
python -m pip install .
The project is not yet claiming a published PyPI release. Once a release is
available there, the installation command will be python -m pip install parasolid-kit.
Schema catalogs
Header inspection works without external data. Complete parsing requires the
exact sch_*.sch_txt catalog identified by the file's internal schema key.
There is no fallback to a nearby version and no inferred replacement for a
missing catalog.
Siemens schema catalogs are not included in this repository or its packages. You must provide a catalog from software or an SDK that you are licensed to use and comply with its storage and redistribution terms. The parser reads the catalog in place and does not copy it into the package.
Python example
from pathlib import Path
from parasolid_kit import (
InMemorySchemaProvider,
SchemaKey,
inspect_xb,
load_schema_catalog,
map_brep,
parse_xb,
write_xb,
)
source = Path("model.x_b")
header = inspect_xb(source)
schema_id = SchemaKey.parse(header.schema_key).provider_schema
catalog = load_schema_catalog(
Path("/path/to/schema") / f"sch_{schema_id}.sch_txt",
expected_schema_id=schema_id,
)
provider = InMemorySchemaProvider((catalog,))
document = parse_xb(source, schema_provider=provider)
brep = map_brep(document)
print(header.modeller_version)
print(len(document.nodes), len(brep.bodies), brep.complete)
assert write_xb(document) == document.raw_bytes
map_brep() can return a valid but incomplete model when a well-formed geometry
record has no typed mapping yet. Inspect brep.complete and brep.diagnostics
instead of assuming that every parsed record has been interpreted.
Command line
# Header inspection does not need a schema catalog.
parasolid-kit inspect model.x_b
# Complete parsing and comparison require the exact catalog in --schema-dir.
parasolid-kit parse model.x_t --schema-dir /path/to/schema
parasolid-kit parse model.x_b --schema-dir /path/to/schema --brep
parasolid-kit compare model.x_t model.x_b --schema-dir /path/to/schema
Reports are JSON. Exit status is 0 for success or equivalent documents, 1
for a valid comparison that found differences, and 2 for input, schema, or
parse errors. python -m parasolid_kit provides the same interface.
Documentation
Project boundaries
parasolid-kit does not parse native CAD containers such as iCAD .icd, CAD
assembly structures, occurrence transforms, visibility, or appearance. A
format-specific adapter can extract a bounded X_T/X_B payload and pass it to
this package without making the parser depend on that CAD product.
The package has no runtime dependency on a CAD product, geometry kernel, or OpenCascade binding. It does not bundle Siemens schema data or proprietary CAD files.
License
This project is licensed under the MIT License.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 parasolid_kit-0.1.0.dev0.tar.gz.
File metadata
- Download URL: parasolid_kit-0.1.0.dev0.tar.gz
- Upload date:
- Size: 134.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99273bbeaee22626064d6a3973ad27b2818caaeb7dd30d3e707c3905bbbd41e7
|
|
| MD5 |
ec91510d04610d06d16cd2f2ebca2bbb
|
|
| BLAKE2b-256 |
6137e129eb18c5f66519ec134a485c18f5325ab14d2dba8628b713ede615294c
|
Provenance
The following attestation bundles were made for parasolid_kit-0.1.0.dev0.tar.gz:
Publisher:
release.yml on monozukuri-ai/parasolid-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parasolid_kit-0.1.0.dev0.tar.gz -
Subject digest:
99273bbeaee22626064d6a3973ad27b2818caaeb7dd30d3e707c3905bbbd41e7 - Sigstore transparency entry: 2631741921
- Sigstore integration time:
-
Permalink:
monozukuri-ai/parasolid-kit@fe51942008f7b520834a09c5784730f39cd83577 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/monozukuri-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fe51942008f7b520834a09c5784730f39cd83577 -
Trigger Event:
release
-
Statement type:
File details
Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 465.8 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bea22d6694255f505a42668fa26fa18e8fa5c7609755aa0ee3ff654337a05ed9
|
|
| MD5 |
f5bb40a61ae2d920f57e4d7dd426d29a
|
|
| BLAKE2b-256 |
1c94164f1e076e1827808252ab90aa2a686c5f9d03cde009c88b98a608e53199
|
Provenance
The following attestation bundles were made for parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl:
Publisher:
release.yml on monozukuri-ai/parasolid-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl -
Subject digest:
bea22d6694255f505a42668fa26fa18e8fa5c7609755aa0ee3ff654337a05ed9 - Sigstore transparency entry: 2631741959
- Sigstore integration time:
-
Permalink:
monozukuri-ai/parasolid-kit@fe51942008f7b520834a09c5784730f39cd83577 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/monozukuri-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fe51942008f7b520834a09c5784730f39cd83577 -
Trigger Event:
release
-
Statement type:
File details
Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 628.5 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e1a049b55518c5b9b1b94b4b596e7f79d6b48e984e41b3bcc97548f96129a08
|
|
| MD5 |
3369afdc4f9d599114cb655df117d96c
|
|
| BLAKE2b-256 |
48dfe4c3c5937a4fcb2141b804f5ec6e9e2c335eda0c8661654eee01188e2d41
|
Provenance
The following attestation bundles were made for parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on monozukuri-ai/parasolid-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
9e1a049b55518c5b9b1b94b4b596e7f79d6b48e984e41b3bcc97548f96129a08 - Sigstore transparency entry: 2631741935
- Sigstore integration time:
-
Permalink:
monozukuri-ai/parasolid-kit@fe51942008f7b520834a09c5784730f39cd83577 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/monozukuri-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fe51942008f7b520834a09c5784730f39cd83577 -
Trigger Event:
release
-
Statement type:
File details
Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 573.9 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3772d1667885530040a5468ea2e780d2a70518353c26060578e1e7a550971bf5
|
|
| MD5 |
53b808c28e8a3e26389b023c3ccf756d
|
|
| BLAKE2b-256 |
a9a7aff5a94094cc5120c1e18a07eaeb40f4ab7ad3f02076c5310308670ae29b
|
Provenance
The following attestation bundles were made for parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on monozukuri-ai/parasolid-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
3772d1667885530040a5468ea2e780d2a70518353c26060578e1e7a550971bf5 - Sigstore transparency entry: 2631742005
- Sigstore integration time:
-
Permalink:
monozukuri-ai/parasolid-kit@fe51942008f7b520834a09c5784730f39cd83577 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/monozukuri-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fe51942008f7b520834a09c5784730f39cd83577 -
Trigger Event:
release
-
Statement type:
File details
Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 585.8 kB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90c995d0fd192072bf3fe6fd10dcee40b10201d2be6972fbe69f23c2f1451811
|
|
| MD5 |
470067130c6c627bbd4861bff1b1faa7
|
|
| BLAKE2b-256 |
acd8253d4d84b308ed2b25fc4a84d8495936b8df30437869884965010f1c725c
|
Provenance
The following attestation bundles were made for parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on monozukuri-ai/parasolid-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
90c995d0fd192072bf3fe6fd10dcee40b10201d2be6972fbe69f23c2f1451811 - Sigstore transparency entry: 2631742050
- Sigstore integration time:
-
Permalink:
monozukuri-ai/parasolid-kit@fe51942008f7b520834a09c5784730f39cd83577 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/monozukuri-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fe51942008f7b520834a09c5784730f39cd83577 -
Trigger Event:
release
-
Statement type: