wangdequan 5bbd7b9d4f
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled
feat: advance FreeCAD exact parity evidence
2026-08-14 22:39:16 -04:00

Web FreeCAD BitBybit

FreeCAD-aligned web CAD frontend baseline for the BitBybit runtime boundary.

本机断网开发、资源同步、校验和恢复入口见 离线资源库说明

Current scope

  • React + Vite frontend shell
  • Three.js 0.185.1 is pinned for the internal Viewport Adapter; React does not import Three.js directly.
  • FreeCAD-style application menus, workbench navigation, Combo View, Task Dock, viewport and Report view
  • Machine-readable workbench and command manifest in src/freecadManifest.ts
  • Current status, source-of-truth order and focused execution queue in docs/current-work.zh-CN.md
  • Re-audited completion status, critical path and smallest executable milestones in docs/freecad-web-execution-master-plan.zh-CN.md
  • Chinese implementation plan in docs/web-cad-implementation-plan.zh-CN.md
  • Full 34-module FreeCAD 1.1.1 scope, Bitbybit/OCCT source-build track and executable task ledger in docs/freecad-complete-parity-backlog.zh-CN.md
  • Executable reference-oracle and R0-R9 delivery order in docs/freecad-reference-execution-roadmap.zh-CN.md
  • Detailed owner lanes, 83-task WBS, dependencies and gates in docs/freecad-full-parity-execution-wbs.zh-CN.md
  • Reproducible 34-module source inventory in config/freecad-source-inventory.json, generated and checked with ./npmw run generate:freecad-inventory and ./npmw run check:freecad-inventory
  • Source-traceable TypeId/property candidate inventory in config/freecad-type-property-inventory.json, checked with ./npmw run check:freecad-type-properties
  • Locked FreeCAD 1.1.1 planegcs WASM subset with Dedicated Worker verification for line/circle/curve constraints, SnellsLaw, Ellipse InternalAlignment helpers and clamped cubic B-spline Weight

The compatible browser baseline now spans all 34 locked FreeCAD modules, but it is not a system-level exact implementation: the release matrix currently records 0 exact, 26 compatible, 5 proxy and 3 development modules. The active milestone is exact-parity promotion for the FreeCAD 1.1.1 oracle, topology naming, document/property semantics, core modeling and FCStd round-trip. See the current work focus; completed P01-P10 compatibility programs must not be interpreted as an exact FreeCAD claim.

Development

./npmw install
./npmw run dev

The repository uses a project-local, checksum-verified Node.js 22.23.2 runtime and npm 10.9.8. The wrapper restores it from the local resource library first, or downloads it when online, into the ignored .runtime/ directory and never changes /usr/bin/node; this removes the engine warning caused by running npm with an older system Node. ./nodew runs the same pinned Node directly. See docs/project-runtime.zh-CN.md for recovery and CI rules.

Build verification:

./npmw run verify

The locked FreeCAD 1.1.1 source build and desktop-oracle replay workflow is documented in docs/freecad-baseline-and-golden.zh-CN.md. All project Node commands in that workflow use ./npmw.

Geometry work follows a Bitbybit-first policy. Existing Bitbybit OCCT Worker, modeling, IO, triangulation and cache APIs are reused first; missing capabilities may be built from locked Bitbybit/OCCT sources as an Emscripten WASM provider behind the Facade. Source commits, patches, ABI, SBOM, hashes and FreeCAD differential fixtures are required before a capability can be promoted.

The SQLite OPFS worker requires cross-origin isolation headers. Vite dev and preview apply Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp; deployments must preserve them.

Description
BitBybit FreeCAD-compatible web CAD frontend prototype
Readme 16 MiB
Languages
TypeScript 51.4%
JavaScript 32.1%
Python 7.8%
HTML 3.7%
C++ 2.7%
Other 2.3%