No description
- TypeScript 49.2%
- Rust 42.7%
- C++ 4.7%
- JavaScript 1.3%
- Shell 0.9%
- Other 1.2%
| .cargo | ||
| .vscode | ||
| docs | ||
| external | ||
| external-data-server | ||
| packages | ||
| project-tutorial | ||
| scripts | ||
| tests/fixtures | ||
| third_party/wgpu-0.19.4 | ||
| .gitignore | ||
| .gitmodules | ||
| AGENT_QUICK_START.md | ||
| AGENTS.md | ||
| audit.py | ||
| BUILD_QUICK_START.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| DEVELOPMENT_SETUP.md | ||
| environment_reset.py | ||
| eslint.config.mjs | ||
| OCCT_UPDATE.md | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| project-map.md | ||
| QUICK_COMMANDS.md | ||
| README.md | ||
| RULES.md | ||
| setup_project.py | ||
| sketch_engine_architecture.md | ||
| sketch_selection_architecture.md | ||
| WASM_BUILD_GUIDE.md | ||
Parametric Web CAD
Browserbasierte, parametrische CAD-Engine auf Basis von OCCT + SolveSpace mit Rust-Orchestrierung und WebGPU-Rendering.
Projektziel
Stabile, performante und erweiterbare B-Rep-Modellierung im Browser:
- Parametrische Feature-Historie
- Deterministische Regeneration
- Interaktive Visualisierung via WebGPU
Architektur
external/: C++-Kerne (OCCT, SolveSpace)packages/kernel-bridge: Rust FFI + Recompute-Orchestrierung + Datenmodellpackages/web-client: React + TypeScript (strict) + Zustand + WebGPU + typed WASM-Bridge
Frontend-Reset (Stand: 2026-03-19)
- Das Frontend wird hart neu aufgebaut.
- Die einzige zulaessige Frontend-Architektur ist:
- React
- TypeScript im
strict-Modus - Zustand fuer globalen Workflow-State
- Dumb-UI-Prinzip: Geometrie, Parametrik und fachliche Wahrheit bleiben im Rust-Kernel
- typed FFI-Contracts fuer jede Frontend-Backend-Kommunikation
- Historische Verweise in aelteren Markdown-Dateien auf
index.html,src/main.ts,src/prototype/*,src/app/*.js,src/ui-shell/*oder Legacy-Fallbacks sind nicht mehr als Implementierungsanleitung zu verwenden.
Aktueller Entwicklungsstand
- Meilenstein 4 (Sketcher/SolveSpace) abgeschlossen.
- Sketch-Authoring-Track abgeschlossen.
- Sketch-Dimensions UX: Smart-Dimension-Tool (
D) mit inline editierbaren Labels, Drag-Positionierung und DOF-Farbsemantik in der Viewport-Overlay-Schicht. - Frontend-Reset aktiv:
packages/web-clientwird als React/TS/Zustand-App neu aufgebaut. - Black-Box-Telemetrie: Aktions-Recorder (
cadTelemetry) und Fehler-Erfassung (cadDiagnostics) mit Ring-Buffer. - Bug-Report-Pipeline: UI-Generator + Server-Upload (
POST /api/bug-reports) + SQLite-Speicherung + Fetch-Utility (pnpm run fetch-bug) + Scaffolder (pnpm run bug-to-test) + Headless-Reproduktionstests.
Anleitung fuer KI-Agenten
Einstiegspunkt:
AGENT_QUICK_START.md← hier starten
Weitere Orientierung:
AGENTS.md(Architekturregeln, Arbeitsmodus, Done-Definition)project-map.md(Systemkarte + Abläufe)RULES.md(verbindliche Projektregeln)
Schnellstart (Entwicklungsumgebung)
Voraussetzungen:
- Rust
- Emscripten (emcc/em++)
- CMake + Python 3
- Node.js + pnpm
Empfohlene Schritte:
./scripts/check-env.shpython3 setup_project.pycargo check -p kernel-bridge --target wasm32-unknown-unknownpnpm bootstrap
Fuer teamweite Entwicklungsregeln (Linux/macOS, Node/pnpm-Pinning, Clean-Reinstall bei OS-Wechsel):
CONTRIBUTING.md
OCCT 8.0.0 Release Candidate
Das Projekt ist für OpenCASCADE Technology (OCCT) 8.0.0 vorbereitet.
Aktuelle Version: V8_0_0_rc3 (Release Candidate 3 - produktionsreif)
- Commit:
48ebca0f70(Modeling Data - Remove std::optional from EvalD* evaluation API) - Status: Vollständig getestet und integriert
- Offizielle 8.0.0 Release geplant: Q1 2026
Zum Upgrade auf offizielle 8.0.0 Release:
bash scripts/update-occt.sh
Für Details siehe: OCCT_UPDATE.md
Hinweis:
- Der Frontend-Scaffold in
packages/web-clientwird im Rahmen des Resets neu aufgebaut. - Wenn
package.jsonundtsconfig.jsondort bereits vorhanden sind, zusaetzlich:cd packages/web-client && pnpm exec tsc --noEmitcd packages/web-client && pnpm build
Build und Validierung
- Dateibudget-Guard gegen neue Monolith-Dateien:
./scripts/check-file-budgets.sh
- Rust-WASM-Check:
cargo check -p kernel-bridge --target wasm32-unknown-unknown
- Web-Client Build:
cd packages/web-client && pnpm exec tsc --noEmitcd packages/web-client && pnpm build
- Optionaler Komplettbuild:
./scripts/build-all.sh
Kernel Runtime Contract
- Der produktive Runtime-Vertrag erwartet
packages/kernel-bridge/pkg/kernel_bridge.jsundpackages/kernel-bridge/pkg/kernel_bridge_bg.wasm. - Fuer den produktiven Browser-Kernelpfad gehoeren zusaetzlich die Sidecars
packages/kernel-bridge/pkg/occt_bridge.js+occt_bridge.wasmsowiepackages/kernel-bridge/pkg/slvs_bridge.js+slvs_bridge.wasmdazu. - Der Vertrag ist nur gueltig, wenn beide Artefakte frei von
env- undwasi_snapshot_preview1-Imports sind. Diese Namespaces zeigen einen falschen ABI-Mix zwischenwasm-bindgenund Emscripten/WASI an. - CI/strikte Builds pruefen das ueber:
KERNEL_RUNTIME_STRICT=1 cd packages/web-client && pnpm buildKERNEL_RUNTIME_STRICT=1 ./scripts/build-all.shpython3 setup_project.py --require-kernel-runtime
- Wenn Artefakte fehlen, laeuft der Client sichtbar im
degraded-Modus (kein stiller Erfolg).
Projektstruktur
packages/kernel-bridge: kritischer Kern fuer Parametrik, FFI, Topologie-Mappingpackages/web-client: React/TS/Zustand-Dumb-UI, State Machine, Renderer-Host, typed FFI-Bridgepackages/core-engine: Rendering-nahe Rust-Komponentenexternal: Upstream-Abhaengigkeiten (nicht frei umstrukturieren)docs: Architektur- und Fehleranalysen
Fassaden-Dateibudgets
packages/web-client/src/core/wasm-bridge.ts:<= 120Zeilenpackages/web-client/src/store/cad-store.ts:<= 220Zeilenpackages/kernel-bridge/src/lib.rs:<= 8000Zeilen- Pruefung lokal ueber
./scripts/check-file-budgets.sh