Geometer
Geometer is a generic C++ geometry library with an executable, Python package, and browser WASM interfaces. It provides STEP conversion, hidden-line projection (HLR), planar geometry, and mesh illustration. Board/domain policy and application rendering decisions belong to callers, not the geometry kernel.
Capabilities And Maturity
| Capability | Use and maturity |
|---|---|
| STEP bounds, GLB conversion, HLR, planar STEP synthesis | Supported geometry APIs. Model bounds has promoted generated contracts; HLR's generated contracts remain pilots. |
| Clipper2 Boolean/offset, planar batch solve and triangulation | Supported polygonized planar workflows; packed interfaces remain handwritten. |
| Fast vector HLR, colored STEP tessellation and mesh illustration | Browser APIs plus direct C++, native IPC, Rust and Python illustration since 2026.9.6; see the STEP-to-SVG guide. Demo applications are evaluation tools, not production renderers. |
| Analytic line/arc planar Boolean | Experimental, not production-ready. May fail closed on valid inputs. Not the dependable whole-board/layer copper-union path; prefer Clipper2 when polygonized output is suitable. |
| Persistent STEP-topology sessions | Experimental native-only subset. Structural declarations do not imply runtime availability. |
Contract promotion and solver production readiness are separate. See contract authority and the analytic decision.
Choose An Interface
| Need | Entry point |
|---|---|
| Keep one executable running; send bytes and receive structured results | Persistent executable IPC: Python, Node/TypeScript and Rust clients |
| Convenient Python file/model operations | Python package |
| File conversion or scripting | CLI commands |
| Geometry in a browser or Worker | WASM and TypeScript clients |
| Embed in native C++ | STEP and planar APIs |
| Manage byte buffers across a foreign-function boundary | C ABI and generic operations |
Not every operation is exposed through IPC. Check the executable's negotiated catalog and the generated operation reference.
Install And Try
Install the Python distribution (import name: geometer):
python -m pip install wn-geometer
geometer --version
Convert a STEP file with the executable-backed Python API:
from pathlib import Path
import geometer
Path("part.glb").write_bytes(geometer.model_to_glb(Path("part.step")))
Wheels bundle the native executable and install a geometer console command.
For persistent processes, use the IPC quick start.
Pin the package version in your application's dependency lock for repeatability.
Source checkouts provide native artifacts under dist/native/<platform>/,
browser WASM under dist/wasm/browser/, and the generated ESM package under
dist/wasm/npm/geometer/. The ESM artifact is not a claim of npm publication.
Documentation And Examples
Browse the generated HTML documentation or use the authored Markdown sources below.
- Interface specifications
- TypeSpec, contract authority and generated reference
- Examples and demo status
- Research and historical evidence
- Requirements and decisions
- Developer setup, builds, tests and releases
- Release notes
Start with the headless Python example or HLR Lab. Analytic and topology demos remain experimental; retention does not imply production support. See the demo audit for verification limits.
Contributing And License
See the developer guide for native/WASM builds and required release checks.
OCCT is generated dependency state under .deps/; documentation work does
not require rebuilding it. Releases follow
date-based versioning.
MIT. See LICENSE.
Release files for wn-geometer 2026.9.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| wn_geometer-2026.9.12-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| wn_geometer-2026.9.12-py3-none-manylinux_2_35_x86_64.whl | Python 3 | none | Linux glibc 2.35+ x86-64 | Details |
| wn_geometer-2026.9.12-py3-none-manylinux_2_35_aarch64.whl | Python 3 | none | Linux glibc 2.35+ ARM64 | Details |
| wn_geometer-2026.9.12-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 52.7 MB
Release files / wn_geometer-2026.9.12-py3-none-win_amd64.whl
| Download URL | wn_geometer-2026.9.12-py3-none-win_amd64.whl |
|---|---|
| Size | 8.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5fe31299c86d4f5a31b20a77e46860fa06402434f9a2a1feae26b8bb2a1f7197
|
|
BLAKE2b-256 checksum How to use checksums |
b444c33cb1b8bbeefd949b6a57bb854dff8360576f4bde4fa4e5c41bea5f7d54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / wn_geometer-2026.9.12-py3-none-manylinux_2_35_x86_64.whl
| Download URL | wn_geometer-2026.9.12-py3-none-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 16.3 MB |
| Tags | Linux glibc 2.35+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
015a2c1a01df024c9820b25b0091e40dcb8cc9aa77355dc77c7184acd6d346a2
|
|
BLAKE2b-256 checksum How to use checksums |
82ab802b61ef9639cd812064d04d1230484bc7fb5eca2906b78d65b90004801d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / wn_geometer-2026.9.12-py3-none-manylinux_2_35_aarch64.whl
| Download URL | wn_geometer-2026.9.12-py3-none-manylinux_2_35_aarch64.whl |
|---|---|
| Size | 15.5 MB |
| Tags | Linux glibc 2.35+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
92a30651e0a89d9ab1e22d679ffa0faaea61259055217050d0bae464b463d75b
|
|
BLAKE2b-256 checksum How to use checksums |
040a88d95a3f0fda1a28de550f1b38b7d4681fb99d08acd8bbc1babd1df71455
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency logRelease files / wn_geometer-2026.9.12-py3-none-macosx_11_0_arm64.whl
| Download URL | wn_geometer-2026.9.12-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 12.2 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
af89f6abef3a96f7558ca136ce424c50720e33eb1a0b5990d216454ad11ba478
|
|
BLAKE2b-256 checksum How to use checksums |
ef7539eaf2685fc34609c4cad176332a1f1ec33963e8574b6b0c60cd88f13d1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.
Transparency log