Skip to content

introducing yapCAD package format & viewer

Choose a tag to compare

@rdevaul rdevaul released this 30 Oct 19:22
· 327 commits to main since this release
9313e8b

Highlights

  • Introduced versioned yapCAD .ycpkg format and workflows featuring round-trippable JSON geometry, metadata, and layer support.
  • Landed a full involute-gear reference implementation. The gear generator now ships in-tree (yapcad.contrib.figgear), the
    example package builder reuses canonical geometry, and tests no longer require cloning upstream figgear.
  • Introduction of interactive package viewer for .ycpkg 2D and 3D package content, featuring grid overlays, lighting, per-view labels, layer toggles, help overlay (h), and mouse-wheel / trackpad gestures. Text and overlays scale sensibly across 2D/3D modes.
  • Added other command-line utilities, including a .ycpkg validator and geometry exporter for STL and STEP.

Geometry & IO

  • DXF exporter now emits native CIRCLE/ARC entities, keeps spline loops closed, and respects package metadata when exporting via tools/ycpkg_export.py.
  • Added spline extrusion regression packages/tests ensuring parametric curves stay watertight across serialization/export.
  • Addition of command-line utility for STEP and STL geometry export from yapCAD packages.

Packaging & Tooling

  • Bumped project to 0.6.0, dropped universal wheels, and aligned pyproject.toml metadata with modern Setuptools expectations.
  • Build artifacts tested via python -m build; wheel installs succeed without network access for optional extras.
  • New contrib tests (tests/test_contrib_figgear.py) and gear profile checks (tests/test_involute_gear.py) keep the vendored math in check.

Documentation

  • Refreshed roadmap (docs/yapCADone.md) to reflect October 2025 milestones and added docs/yapBREP.md for the analytic BREP/STEP plan.
  • Updated README/Sphinx front matter with .ycpkg workflows, viewer guidance, and explicit third‑party attribution for figgear.
  • DSL and package specs describe canonical entities, instances, layer metadata, and upcoming compiler hooks.

Upgrade Notes

  • Geometry JSON schema now reports version: 0.6.0; regenerate packages to pick up layer propagation and metadata fixes.
  • Universal wheels are no longer built; publish platform-agnostic wheels from the new build pipeline.