Skip to main content
Pre-release

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

parasolid_kit-0.1.0.dev0.tar.gz (134.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl (465.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl (573.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl (585.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for parasolid_kit-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 99273bbeaee22626064d6a3973ad27b2818caaeb7dd30d3e707c3905bbbd41e7
MD5 ec91510d04610d06d16cd2f2ebca2bbb
BLAKE2b-256 6137e129eb18c5f66519ec134a485c18f5325ab14d2dba8628b713ede615294c

See more details on using hashes here.

Provenance

The following attestation bundles were made for parasolid_kit-0.1.0.dev0.tar.gz:

Publisher: release.yml on monozukuri-ai/parasolid-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for parasolid_kit-0.1.0.dev0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bea22d6694255f505a42668fa26fa18e8fa5c7609755aa0ee3ff654337a05ed9
MD5 f5bb40a61ae2d920f57e4d7dd426d29a
BLAKE2b-256 1c94164f1e076e1827808252ab90aa2a686c5f9d03cde009c88b98a608e53199

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

File hashes

Hashes for parasolid_kit-0.1.0.dev0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e1a049b55518c5b9b1b94b4b596e7f79d6b48e984e41b3bcc97548f96129a08
MD5 3369afdc4f9d599114cb655df117d96c
BLAKE2b-256 48dfe4c3c5937a4fcb2141b804f5ec6e9e2c335eda0c8661654eee01188e2d41

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3772d1667885530040a5468ea2e780d2a70518353c26060578e1e7a550971bf5
MD5 53b808c28e8a3e26389b023c3ccf756d
BLAKE2b-256 a9a7aff5a94094cc5120c1e18a07eaeb40f4ab7ad3f02076c5310308670ae29b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for parasolid_kit-0.1.0.dev0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 90c995d0fd192072bf3fe6fd10dcee40b10201d2be6972fbe69f23c2f1451811
MD5 470067130c6c627bbd4861bff1b1faa7
BLAKE2b-256 acd8253d4d84b308ed2b25fc4a84d8495936b8df30437869884965010f1c725c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0.dev0 This release

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page