Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Limits & roadmap

Current limits

  • The geometric diff matches faces by their underlying analytic surface (plane, cylinder, cone, sphere, torus); freeform B-spline faces use a coarser area + centroid fallback.
  • cadvm cannot merge two concurrent edits of the same file.
  • The STL/OBJ mesh diff depends on tessellation and a distance tolerance, so it is fuzzier than the B-Rep diff.
  • geom-diff / view need the cadvm-geom helper (OCCT) only for STEP/STP; STL/OBJ diff in pure Rust. The rest of cadvm works without OCCT.

Done

  • VCS core — snapshots, log, status, diff, branches, switch, revert, checkout, gc, config/author, deduplicated, gzip-compressed chunk storage.
  • Geometric diffcadvm-geom (C++/OCCT): boolean volumes + metrics + surface-based face-to-face diff.
  • 3D viewercadvm view: self-contained WebGL HTML, per-face green/red/grey changes.
  • STL/OBJ support — versioning + mesh metadata, and a pure-Rust distance-based mesh diff feeding the same 3D viewer (no Open CASCADE).
  • AI/agent surface--json diffs, a verify command (assert expected geometric deltas, exit 0/1), repo-less --files comparison for evals/CI, a GitHub Action (cadvm-verify) to gate generated CAD, and an MCP server (cadvm mcp) exposing cadvm as native tools for agents.
  • Interactive TUIcadvm ui, and shell completions.
  • Cross-platform — CI on Linux/macOS/Windows and prebuilt release binaries.
  • Docs — user guide and API reference published online.

Next

  • Sharper mesh diff (point sampling beyond centroids, configurable tolerance).
  • glTF/PLY mesh formats.
  • A staging index and richer merge tooling.