No description
  • TypeScript 49.2%
  • Rust 42.7%
  • C++ 4.7%
  • JavaScript 1.3%
  • Shell 0.9%
  • Other 1.2%
Find a file
2026-05-31 13:30:00 +02:00
.cargo TKT-029: remove runtime artifact patching 2026-03-14 16:15:17 +01:00
.vscode First Project status (not working) 2026-03-01 08:46:49 +01:00
docs docs(workflows): align sheet metal workflow with base flange slice 2026-05-31 10:07:36 +02:00
external First Project status (not working) 2026-03-01 08:46:49 +01:00
external-data-server cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
packages test(web-server): cover datasource route 2026-05-31 13:30:00 +02:00
project-tutorial cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
scripts feat: add sketch constraint tools and arc workflows 2026-05-23 09:22:35 +02:00
tests/fixtures face-extrude: enable brep face profiles 2026-05-21 20:13:59 +02:00
third_party/wgpu-0.19.4 TKT-170: harden browser webgpu limit negotiation 2026-03-14 17:58:03 +01:00
.gitignore chore: retire autopilot and opencode workflow 2026-05-25 21:29:51 +02:00
.gitmodules MS05: repo hygiene for cross-os development 2026-03-04 08:47:31 +01:00
AGENT_QUICK_START.md cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
AGENTS.md cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
audit.py MILESTONE: Working OCCT rendering in the Browser (adjustable cube) 2026-03-01 21:12:46 +01:00
BUILD_QUICK_START.md chore(setup): refresh bootstrap and wasm workflow 2026-04-28 21:31:52 +02:00
Cargo.lock Fix: Sketch mode, Constraints, Topology 2026-04-14 19:25:46 +02:00
Cargo.toml TKT-170: harden browser webgpu limit negotiation 2026-03-14 17:58:03 +01:00
CHANGELOG.md cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
CLAUDE.md chore: retire autopilot and opencode workflow 2026-05-25 21:29:51 +02:00
CONTRIBUTING.md docs: add cross-platform bootstrap workflow 2026-04-22 17:39:35 +02:00
DEVELOPMENT_SETUP.md chore(setup): refresh bootstrap and wasm workflow 2026-04-28 21:31:52 +02:00
environment_reset.py chore(setup): refresh bootstrap and wasm workflow 2026-04-28 21:31:52 +02:00
eslint.config.mjs Restore workspace ESLint configuration 2026-05-26 11:04:53 +02:00
OCCT_UPDATE.md chore(occt): Prepare for OCCT 8.0.0 release (from V8_0_0_rc3) 2026-03-23 18:10:46 +01:00
package-lock.json FIX: Solid Body is now working (no missing faces) 2026-03-24 11:31:00 +01:00
package.json Restore workspace ESLint configuration 2026-05-26 11:04:53 +02:00
pnpm-lock.yaml feat: update CAD kernel and web client for roadmap slices 2026-05-30 19:35:56 +02:00
pnpm-workspace.yaml chore: retire autopilot and opencode workflow 2026-05-25 21:29:51 +02:00
project-map.md cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
QUICK_COMMANDS.md project cleanup 2026-04-05 22:35:14 +02:00
README.md cleanup: remove retired ticket-system debris 2026-05-21 20:57:10 +02:00
RULES.md feat: complete datum plane selection/edit and dependency flow 2026-05-19 18:00:07 +02:00
setup_project.py Phase G: Feature parameter names (depth/radius) with cascading rename 2026-05-17 17:07:36 +02:00
sketch_engine_architecture.md sketch engine dev plan 2026-04-05 22:37:34 +02:00
sketch_selection_architecture.md Preparation for picking faces of sketches 2026-04-07 05:59:34 +02:00
WASM_BUILD_GUIDE.md chore(setup): refresh bootstrap and wasm workflow 2026-04-28 21:31:52 +02:00

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 + Datenmodell
  • packages/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-client wird 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:

  1. ./scripts/check-env.sh
  2. python3 setup_project.py
  3. cargo check -p kernel-bridge --target wasm32-unknown-unknown
  4. pnpm 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-client wird im Rahmen des Resets neu aufgebaut.
  • Wenn package.json und tsconfig.json dort bereits vorhanden sind, zusaetzlich:
    • cd packages/web-client && pnpm exec tsc --noEmit
    • cd 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 --noEmit
    • cd 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.js und packages/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.wasm sowie packages/kernel-bridge/pkg/slvs_bridge.js + slvs_bridge.wasm dazu.
  • Der Vertrag ist nur gueltig, wenn beide Artefakte frei von env- und wasi_snapshot_preview1-Imports sind. Diese Namespaces zeigen einen falschen ABI-Mix zwischen wasm-bindgen und Emscripten/WASI an.
  • CI/strikte Builds pruefen das ueber:
    • KERNEL_RUNTIME_STRICT=1 cd packages/web-client && pnpm build
    • KERNEL_RUNTIME_STRICT=1 ./scripts/build-all.sh
    • python3 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-Mapping
  • packages/web-client: React/TS/Zustand-Dumb-UI, State Machine, Renderer-Host, typed FFI-Bridge
  • packages/core-engine: Rendering-nahe Rust-Komponenten
  • external: Upstream-Abhaengigkeiten (nicht frei umstrukturieren)
  • docs: Architektur- und Fehleranalysen

Fassaden-Dateibudgets

  • packages/web-client/src/core/wasm-bridge.ts: <= 120 Zeilen
  • packages/web-client/src/store/cad-store.ts: <= 220 Zeilen
  • packages/kernel-bridge/src/lib.rs: <= 8000 Zeilen
  • Pruefung lokal ueber ./scripts/check-file-budgets.sh