Skip to content

openskp Python 1.3.0 (GitHub-only, not on PyPI)

Choose a tag to compare

@iamahsanmehmood iamahsanmehmood released this 09 Sep 06:04
· 149 commits to main since this release

This release is not published to PyPI yet. It's a real, fully tested, tagged release — install it directly from this tag:

pip install "openskp[fragments] @ git+https://github.com/iamahsanmehmood/openskp.git@preview-python-v1.3.0#subdirectory=packages/python"

It will fold into a proper python-v1.3.0 PyPI release once cross-language parity work catches up across TypeScript/.NET/Dart/C++ — tracked publicly in ROADMAP.md and issue #285.

530 tests passing, ruff check clean, package builds cleanly (python -m build).

See CHANGELOG.md#130—2026-09-09 for full details, or docs/DEVELOPER_GUIDE.md#fragments-export for the Fragments API reference. Headline additions:

  • Direct SketchUp → Fragments (.frag) export — Python-only, no other language has this yet (an open TypeScript port, PR #276, is not yet mergeable). Fragments visibility is carried via a Model.metadata sidecar, not the public schema; legacy files get synthetic per-item GUIDs, not real ones.
  • Triangulation: Shapely replaced with earcut — faster, and fixes a real concave-face undercoverage bug.
  • 4 IFC export correctness fixes — units/axis, real instance names + layer visibility, plugin-attribute Psets, opt-in full-path classification.
  • Real per-layer hidden-flag reading from VFF files, legacy pages/scenes reading, section-plane writer, construction line/point read+write, and a fix for a large real file (359MB/95k definitions) that previously exhausted all available memory.

Known gaps are stated honestly rather than glossed over — see docs/LANGUAGE_PARITY.md for the full Python-vs-other-languages picture, and issue #284 for the known legacy-format parsing gap (6/14 real old-format test files) unrelated to this release but tracked at the same time.