Files
web-cad/docs/requirements.md
T

57 KiB
Raw Blame History

Requirements Specification web-cad

Project: web-cad Web-basiertes 2D-CAD für Event-Bestuhlungspläne
Phase: 1 (Intake)
Date: 2026-06-19 (updated v4)
Status: Draft v4 ready for user review


1. Vision & Ziel

Das Ziel von web-cad ist eine web-basierte 2D-CAD-Anwendung, die:

  • alle grundlegenden CAD-Funktionen bereitstellt (Zeichnen, Bearbeiten, Bemaßen, Ebenen, Bibliothek, Gruppierung, Export/Import)
  • spezialisierte Tools für Event-Bestuhlungspläne bietet (Reihen- und Block-Bestuhlung)
  • später um weitere branchenspezifische Tools erweiterbar ist in jede Richtung
  • Multi-User-Kollaboration in Echtzeit unterstützt
  • performant im Browser läuft auch bei großen Projekten
  • später auf Docker und Coolify deploybar ist
  • ausschließlich Open-Source-Komponenten verwendet und selbst als Open Source lizenziert wird
  • KI Copilot als Kern-Feature integriert hat von Anfang an, nicht als Afterthought
  • API-first & modular designed ist an andere Software anhängbar

Referenz-UI: AutoCAD Web (siehe Section 12 AutoCAD Web Feature-Referenz)
Referenz-Architektur (Kollaboration): Figma / Onshape (Cloud-native, Single Source of Truth)
Referenz-Architektur (KI Copilot): AutoCAD 2026/2027 AI Features + LLM Function Calling / Tool Use Pattern


2. Nutzer & Rollen

Rolle Beschreibung
Planer Erstellt und bearbeitet Bestuhlungspläne, nutzt CAD-Grundfunktionen, Bestuhlungs-Tools und KI Copilot
Betrachter Kann Pläne ansehen, kommentieren, aber nicht bearbeiten (Read-Only-Zugriff)
Admin Verwaltung von Projekten, Nutzern, Berechtigungen, Bibliothek und KI-Konfiguration
Gast Temporärer Zugriff auf spezifische Pläne ohne Account (z. B. für Kundenfreigabe)
KI Copilot Software-Agent, der per Text/Sprache gesteuert wird und CAD-Operationen ausführt

3. Funktionale Anforderungen

3.1 CAD-Grundfunktionen

ID Anforderung Akzeptanzkriterium
F-CAD-01 Zeichnen von Grundelementen: Linie, Kreis, Bogen, Rechteck, Polygon, Ellipse, Polylinie (PLINE) Alle genannten Elemente können erstellt, ausgewählt, verschoben und gelöscht werden
F-CAD-02 Bearbeiten: Verschieben (MOVE), Kopieren (COPY/CO), Rotieren (ROTATE/RO), Skalieren (SCALE/SC), Spiegeln (MIRROR/MI), Trimmen (TRIM), Verlängern (EXTEND), Abrunden (FILLET), Versatz (OFFSET) Jede Operation verändert die Geometrie korrekt und kann rückgängig gemacht werden (Undo/Redo)
F-CAD-03 Bemaßung: Lineare (DIM), winkelige, radiale Bemaßung mit automatischer Maßberechnung basierend auf dem Hintergrund-Grundriss-Maßstab Bemaßung zeigt korrekte Werte in realen Maßeinheiten (m/cm) an
F-CAD-04 Raster & Fang: Rasteranzeige, Snap-to-Grid, Snap-to-Endpoint, Snap-to-Midpoint, Snap-to-Intersection, Ortho-Modus, Polar Tracking Fangpunkte werden visuell hervorgehoben und beim Zeichnen exakt eingefangen
F-CAD-05 Eingabefeld (Command Line): Befehlseingabe via Tastatur wie in AutoCAD (z. B. "L" für Line, "PL" für Polyline, "C" für Circle) Befehle können über die Tastatur eingegeben und ausgeführt werden; Autovervollständigung vorhanden
F-CAD-06 Eigenschaften-Panel: Anzeige und Bearbeitung von Element-Eigenschaften (Position, Größe, Winkel, Farbe, Linientyp, Linienstärke, Transparenz) Eigenschaften können angezeigt und geändert werden; Änderungen sind sofort sichtbar
F-CAD-07 Auswahl-Methoden: Einzelauswahl, Fenster-Auswahl, Kreuz-Auswahl, Selektion-Filter, Quick-Select (Eigenschafts-basierte Auswahl) Alle Auswahlmethoden funktionieren und können kombiniert werden
F-CAD-08 Gruppierung: Elemente zu Gruppen zusammenfassen, Gruppen verschachteln, Gruppen speichern Gruppen können erstellt, aufgelöst und in der Bibliothek gespeichert werden
F-CAD-09 Undo/Redo: Strukturierte Undo/Redo-Historie mit beliebig vielen Schritten Undo und Redo funktionieren für alle Operationen; Historie kann eingesehen werden
F-CAD-10 Kopieren zwischen Dateien: Elemente können via Zwischenablage zwischen Projekten kopiert werden Kopierte Elemente behalten ihre Eigenschaften und relative Position
F-CAD-11 Annotation & Text: Einzel- und Mehrzeilentext (TEXT/MTEXT), Revision Clouds (REVCLOUD), Leaders (MLEADER) Text kann erstellt, formatiert und platziert werden; Leaders und Revisionswolken funktionieren
F-CAD-12 Muster-/Schraffurfunktion: Flächen können mit Mustern/Schraffuren gefüllt werden (HATCH) Muster können ausgewählt, skaliert und angewendet werden

3.2 Ebenen-System (Layers)

ID Anforderung Akzeptanzkriterium
F-LAY-01 Ebenen als Baumstruktur: Ebenen hierarchisch organisiert mit Parent-Child-Beziehungen Ebenen werden in einem Baum-Widget angezeigt; Parent-Child-Beziehung sichtbar
F-LAY-02 Ebenen-Eigenschaften: Name, Sichtbarkeit (On/Off), Sperrung (Lock/Unlock), Farbe, Linientyp, Transparenz Jede Eigenschaft kann pro Ebene gesetzt werden und wirkt sich auf alle zugehörigen Elemente aus
F-LAY-03 Ebenen-Operationen: Erstellen, Löschen, Umbenennen, Verschieben im Baum, Duplizieren Alle Operationen funktionieren und aktualisieren den Baum in Echtzeit
F-LAY-04 Element-Zuordnung: Elemente können zwischen Ebenen verschoben werden Drag-and-Drop oder Kontextmenü zum Verschieben von Elementen zwischen Ebenen
F-LAY-05 Aktive Ebene: Neue Elemente werden auf der aktiven Ebene erstellt Aktive Ebene ist klar markiert; neue Elemente erscheinen auf der aktiven Ebene
F-LAY-06 Ebenen-Filter: Filter nach Eigenschaften (Farbe, Linientyp, Name) Gefilterte Ebenen werden korrekt angezeigt; Filter können gespeichert werden

3.3 Bibliothek (Block-Bibliothek)

ID Anforderung Akzeptanzkriterium
F-LIB-01 Bibliothek als Baumstruktur: Bibliothekselemente hierarchisch organisiert mit Ordnern und Unterordnern Baum-Widget zeigt Ordner und Blöcke; Drag-and-Drop für Organisation
F-LIB-02 SVG-Import: SVG-Dateien können in die Bibliothek importiert werden SVG wird korrekt importiert, im Viewer angezeigt und als wiederverwendbarer Block gespeichert
F-LIB-03 Gruppen in Bibliothek speichern: Im Zeichenbereich erstellte Gruppen können in die Bibliothek gespeichert werden Gruppe wird als Block gespeichert und kann per Drag-and-Drop in den Zeichenbereich eingefügt werden
F-LIB-04 Block-Einfügen: Blöcke aus der Bibliothek per Drag-and-Drop in den Zeichenbereich einfügen Block wird an der Drop-Position eingefügt; Skalierung und Rotation können beim Einfügen gesetzt werden
F-LIB-05 Block-Bearbeitung: Blöcke können nach dem Einfügen bearbeitet, skaliert, rotiert und gespiegelt werden Alle Bearbeitungsoperationen funktionieren auf eingefügten Blöcken
F-LIB-06 Bibliotheks-Verwaltung: Blöcke umbenennen, duplizieren, löschen, in Ordner verschieben Alle Verwaltungsoperationen funktionieren; Änderungen werden persistent gespeichert
F-LIB-07 Block-Definition vs. Block-Referenz: Blöcke werden als Definition gespeichert; Instanzen referenzieren die Definition (wie AutoCAD Blocks) Änderung an der Block-Definition aktualisiert alle Instanzen; Instanzen können unabhängig transformiert werden

3.4 Hintergrund & Grundriss

ID Anforderung Akzeptanzkriterium
F-BG-01 Grundriss laden: Bild- oder Vektor-Datei (PNG, JPG, SVG, PDF-Seite) als Hintergrund laden Datei wird als Hintergrund-Ebene geladen und im Zeichenbereich angezeigt
F-BG-02 Maßstabs-Definition: Maßstab des Grundrisses kann definiert werden (z. B. 1:100, Referenzstrecke) Nach Maßstabsdefinition werden Bemaßungen in realen Maßeinheiten (m/cm) angezeigt
F-BG-03 Hintergrund-Positionierung: Hintergrund kann verschoben, rotiert und skaliert werden Transformationen sind möglich und Bemaßungen aktualisieren sich entsprechend
F-BG-04 Hintergrund-Sichtbarkeit: Hintergrund kann ein- und ausgeblendet werden Sichtbarkeit kann pro Ebene oder global geschaltet werden

3.5 Bestuhlungs-Tools (Event-Spezifisch)

ID Anforderung Akzeptanzkriterium
F-EVT-01 Reihen-Bestuhlung: Automatische Platzierung von Stühlen in einer Reihe mit konfigurierbarem Abstand, Anzahl und Ausrichtung Reihe wird mit korrekter Anzahl, Abstand und Ausrichtung generiert; Parameter sind im Nachhinein änderbar
F-EVT-02 Block-Bestuhlung: Automatische Platzierung von Stuhl-Blöcke in einem rechteckigen Bereich mit konfigurierbaren Reihen, Spalten, Abständen Block wird mit korrekter Reihe/Spalte-Anzahl und Abständen generiert; Parameter im Nachhinein änderbar
F-EVT-03 Bestuhlungs-Parameter: Stuhl-Typ (aus Bibliothek), Reihe/Spalte-Anzahl, Abstand, Versatz, Ausrichtung, Block-Konfiguration Alle Parameter können konfiguriert werden; Änderungen aktualisieren die Bestuhlung in Echtzeit
F-EVT-04 Bestuhlung bearbeiten: Generierte Bestuhlung kann nachträglich modifiziert werden (Stühle hinzufügen/entfernen, verschieben) Einzelne Stühle können hinzugefügt, entfernt oder verschoben werden; Gesamtbestuhlung aktualisiert sich
F-EVT-05 Bestuhlungs-Zählung: Automatische Zählung der platzierten Stühle pro Reihe, Block und Gesamt Zähler wird in Echtzeit aktualisiert und kann im Eigenschaften-Panel abgelesen werden

3.6 Import & Export

ID Anforderung Akzeptanzkriterium
F-IMP-01 DXF-Import: DXF-Dateien können importiert und als Zeichnung bearbeitet werden DXF wird korrekt importiert; Layer, Blöcke und Geometrie bleiben erhalten
F-IMP-02 SVG-Import: SVG-Dateien können als Zeichnung importiert werden SVG wird korrekt importiert und als Vektor-Elemente bearbeitbar
F-IMP-03 DWG-Import (Optional): DWG-Dateien können importiert werden (Open-Source-Library, z. B. libredwg) DWG wird korrekt importiert oder klare Fehlermeldung bei nicht unterstützter Version
F-IMP-04 PDF-Import: PDF-Dateien als Hintergrund oder als Vektor-Import PDF wird geladen; Seiten können ausgewählt werden; Vektoren werden als bearbeitbare Elemente importiert
F-EXP-01 DXF-Export: Zeichnung kann als DXF exportiert werden Exportierte DXF-Datei kann in AutoCAD/QCAD korrekt geöffnet werden
F-EXP-02 SVG-Export: Zeichnung kann als SVG exportiert werden Exportierte SVG-Datei ist W3C-konform und in Browsern/Vektor-Programmen darstellbar
F-EXP-03 PDF-Export: Zeichnung kann als PDF exportiert werden (mit Layout, Maßstab, Titelblock) PDF wird mit korrektem Maßstab und allen Elementen generiert
F-EXP-03a PNG-Export: Zeichnung kann als PNG exportiert werden PNG wird in konfigurierbarer Auflösung generiert
F-EXP-04 JSON-Export (Projekt): Vollständiges Projekt kann als JSON exportiert und wieder importiert werden JSON enthält alle Daten (Ebenen, Elemente, Bibliothek, Grundriss); Re-Import ergibt identisches Projekt

3.7 Multi-User & Kollaboration

ID Anforderung Akzeptanzkriterium
F-MU-01 Echtzeit-Kollaboration: Mehrere Nutzer können gleichzeitig an derselben Zeichnung arbeiten Änderungen eines Nutzers sind für alle anderen in Echtzeit (< 1 Sekunde) sichtbar
F-MU-02 Konfliktfreie Bearbeitung: Gleichzeitige Bearbeitung desselben Elements führt nicht zu Konflikten oder Datenverlust CRDT-basierte Synchronisation stellt Konsistenz sicher; keine Merge-Konflikte
F-MU-03 Nutzer-Anwesenheit: Sichtbare Anzeige welcher Nutzer online ist und an welcher Zeichnung arbeitet Avatar/Farbmarkierung pro Nutzer; Liste der aktiven Nutzer im Panel
F-MU-04 Cursor-Anzeige: Position und Aktionen anderer Nutzer in Echtzeit sichtbar Cursor anderer Nutzer wird mit Name/Farbe in Echtzeit angezeigt
F-MU-05 Berechtigungs-System: Rollenbasierte Zugriffskontrolle (Planer, Betrachter, Admin, Gast) Berechtigungen werden enforced; Betrachter kann nicht bearbeiten; Gast hat nur Zugriff auf freigegebene Pläne
F-MU-06 Offline-Unterstützung: Offline-Änderungen werden synchronisiert, wenn Verbindung wiederhergestellt ist Offline-Änderungen werden automatisch synchronisiert; keine Datenverluste
F-MU-07 Versionshistorie: Änderungen werden protokolliert; Versionen können eingesehen und wiederhergestellt werden Historie zeigt Zeitstempel und Nutzer; Versionen können wiederhergestellt werden

3.8 UI / UX

ID Anforderung Akzeptanzkriterium
F-UI-01 AutoCAD Web-ähnliche Oberfläche: Ribbon-/Menü-Band, Werkzeug-Paletten, Eigenschaften-Panel, Command-Line, Status-Bar, Blocks-Tab, Layers-Tab Layout orientiert sich an AutoCAD Web; Hauptwerkzeuge sind sichtbar und erreichbar
F-UI-02 Zeichenbereich: Großer Canvas-Bereich mit Zoom, Pan, und View-Controls (Zoom-to-Fit, Zoom-to-Window) Zoom und Pan funktionieren flüssig (60fps); View-Controls sind erreichbar
F-UI-03 Kontextmenüs: Rechtsklick-Kontextmenüs mit relevanten Aktionen Kontextmenü zeigt aktionsabhängige Einträge
F-UI-04 Tastatur-Shortcuts: Standard-CAD-Shortcuts (z. B. L, C, M, CO, RO, SC, MI, PL, H) Shortcuts funktionieren und sind dokumentiert
F-UI-05 Responsive Design: UI funktioniert auf Desktop-Bildschirmen (min. 1280px) Bei 1280px Breite sind alle Panels nutzbar; kleinere Bildschirme werden in späterer Phase unterstützt
F-UI-06 Theme-Unterstützung: Dark- und Light-Mode Theme kann umgeschaltet werden; alle UI-Elemente passen sich an
F-UI-07 Sidebar-Panels: Tabs für Blocks, Layers, Eigenschaften (wie AutoCAD Web Side Panel) Side-Panel-Tabs sind erreichbar und zeigen entsprechenden Inhalt
F-UI-08 Streamlined UI: UI fokussiert auf 2D-Drafting nicht überladen wie Desktop-CAD Wesentliche Werkzeuge sichtbar; erweiterte Funktionen in Untermenüs oder ausblendbar
F-UI-09 KI Copilot Panel: Eingebettetes Chat/Command-Panel für KI-Interaktion KI-Panel ist sichtbar; Nutzer kann Texteingaben machen; Antworten und Aktionen werden angezeigt
F-UI-10 Voice Input: Spracheingabe für KI Copilot (optional, Web Speech API) Spracheingabe kann aktiviert werden; erkannter Text wird an KI Copilot gesendet

3.9 Erweiterbarkeit & Plugin-System

ID Anforderung Akzeptanzkriterium
F-EXT-01 Plugin/Tool-System: Architektur ermöglicht das Hinzufügen neuer Tools ohne Core-Änderung Ein neues Tool kann als Plugin/Modul implementiert und registriert werden ohne Core-Code zu ändern
F-EXT-02 Tool-API: Definierte Schnittstelle für externe Tools (Zeichnen, Bearbeiten, Bibliothek, Export, UI) API ist dokumentiert; ein Beispiel-Tool kann die API nutzen
F-EXT-03 Bibliothek-Erweiterung: Neue Bibliothekstypen können hinzugefügt werden (nicht nur SVG) Neue Typen können registriert und in der Bibliothek verwendet werden
F-EXT-04 Universelle Erweiterbarkeit: Die Software soll später in jede Richtung erweiterbar sein neue Branchen-Tools, neue Import/Export-Formate, neue UI-Komponenten Architektur erlaubt Erweiterung in allen Bereichen ohne Core-Rewrite
F-EXT-05 Plugin-Isolation: Plugins laufen isoliert und können den Core nicht crashen Ein fehlerhaftes Plugin zeigt Fehlermeldung, aber die Anwendung stürzt nicht ab
F-EXT-06 Plugin-Registrierung: Plugins können über ein Manifest registriert und zur Laufzeit geladen werden Plugin-Manifest definiert Name, Version, Abhängigkeiten; Plugin wird zur Laufzeit geladen
F-EXT-07 Plugin-Lifecycle: Plugins können aktiviert/deaktiviert werden ohne Neustart Plugin kann in den Einstellungen aktiviert/deaktiviert werden; Änderung ist sofort wirksam
F-EXT-08 Plugin-UI-Integration: Plugins können eigene UI-Elemente (Ribbon-Tabs, Panels, Dialoge) hinzufügen Plugin-UI-Elemente erscheinen im Ribbon/Panel und sind funktional

3.10 Authentifizierung & Benutzerverwaltung

ID Anforderung Akzeptanzkriterium
F-AUTH-01 E-Mail/Passwort-Login: Nutzer registrieren sich mit E-Mail und Passwort Registrierung und Login funktionieren; Passwörter werden gehasht (bcrypt/argon2) gespeichert
F-AUTH-02 Passwort-Reset: Passwort kann über E-Mail-Link zurückgesetzt werden Reset-Link wird gesendet; Passwort kann nach Klick zurückgesetzt werden
F-AUTH-03 Session-Management: Sichere Sessions mit HTTP-only Cookies Sessions sind sicher; CSRF-Schutz aktiv; Session-Timeout konfigurierbar
F-AUTH-04 Benutzerverwaltung: Admin kann Nutzer erstellen, bearbeiten, löschen, Rollen zuweisen Alle Operationen funktionieren; Rollenänderungen sind sofort wirksam
F-AUTH-05 Gast-Zugang: Admin kann temporäre Gast-Zugänge für spezifische Pläne erstellen Gast-Link funktioniert; Gast hat nur Zugriff auf freigegebene Pläne; Link kann widerrufen werden

3.11 KI Copilot

ID Anforderung Akzeptanzkriterium
F-AI-01 CAD-Steuerung per Text/Sprache: Der KI Copilot kann alle CAD-Grundfunktionen per Text- oder Spracheingabe steuern (z. B. "Zeichne eine Linie von A nach B", "Rotiere das ausgewählte Element um 45 Grad") KI-Interpreter übersetzt natürliche Sprache in CAD-Befehle; Befehle werden korrekt ausgeführt; Ergebnis ist sichtbar auf dem Canvas
F-AI-02 Zeichnungen erstellen & bearbeiten: Der KI Copilot kann Zeichnungen aktiv erstellen und bearbeiten Linien, Kreise, Polygone, Rechtecke, Bögen, Polylinien, Text, Bemaßungen, Schraffuren KI-generierte Elemente erscheinen korrekt auf dem Canvas; Eigenschaften (Position, Größe, Farbe) entsprechen der Anweisung
F-AI-03 Bestuhlungs-Tools bedienen: Der KI Copilot kann Bestuhlungs-Tools steuern Reihen und Blöcke erstellen, Parameter setzen (Anzahl, Abstand, Ausrichtung), Bestuhlung modifizieren KI-generierte Bestuhlung entspricht den Parametern; Stuhlanzahl und -anordnung sind korrekt
F-AI-04 Layer & Bibliothek verwalten: Der KI Copilot kann Layer erstellen/löschen/umschalten und Blöcke aus der Bibliothek einfügen/organisieren KI-Befehle für Layer- und Bibliotheksoperationen werden korrekt ausgeführt; Änderungen sind sichtbar
F-AI-05 Import/Export auslösen: Der KI Copilot kann Import- und Export-Operationen auslösen (z. B. "Exportiere als DXF", "Importiere die SVG-Datei") KI-gesteuerter Import/Export funktioniert; Dateien werden korrekt generiert/geladen
F-AI-06 KI-Architektur von Anfang an: Die KI-Copilot-Architektur muss von Anfang an in den Core integriert sein keine nachträgliche Anbindung, sondern native Hooks/Schnittstellen KI-Hooks sind Teil der Core-Architektur; CAD-Operationen sind als "Functions/Tools" registriert und vom KI-System aufrufbar
F-AI-07 Kontext-Verständnis: Der KI Copilot versteht den aktuellen Kontext aktuelle Zeichnung, ausgewählte Elemente, aktive Ebene, Zoom-Bereich, Maßstab KI antwortet kontextbezogen; "Rotiere das um 90 Grad" bezieht sich auf das ausgewählte Element; "Füge hier einen Stuhl hinzu" verwendet Cursor-Position
F-AI-08 Vorschläge & Empfehlungen: Der KI Copilot kann Vorschläge machen (z. B. Bestuhlungs-Vorschläge basierend auf Raumgröße, Optimierungsvorschläge für Bestuhlungsanordnung) KI generiert sinnvolle Vorschläge; Nutzer kann Vorschläge akzeptieren/ablehnen; akzeptierte Vorschläge werden auf Canvas umgesetzt
F-AI-09 Mehrschritt-Operationen: Der KI Copilot kann komplexe, mehrschrittige Operationen ausführen (z. B. "Erstelle einen rechteckigen Raum 20x30m und bestuhle ihn mit 10 Reihen à 15 Stühlen") KI führt alle Teilschritte korrekt aus; Zwischenergebnisse sind sichtbar; Gesamtoperation ist korrekt
F-AI-10 Fehlerbehandlung & Feedback: Der KI Copilot gibt klare Fehlermeldungen bei missverständlichen oder nicht ausführbaren Anweisungen und fragt nach KI gibt verständliche Fehlermeldungen; fragt bei Mehrdeutigkeit nach; schlägt Alternativen vor
F-AI-11 Undo für KI-Operationen: Alle KI-gesteuerten Operationen können rückgängig gemacht werden KI-Operationen appearieren in der Undo-Historie; können einzeln oder als Gruppe rückgängig gemacht werden
F-AI-12 KI-Modell konfigurierbar: Das verwendete KI-Modell kann vom Admin über eine OpenAI-kompatible API-URL und API-Key konfiguriert werden (base_url + api_key in Settings) Admin kann API-URL und API-Key in Einstellungen eintragen; KI-Backend ist nach Konfiguration funktionsfähig
F-AI-13 OpenAI-kompatibler Endpoint: KI wird über einen OpenAI-kompatiblen API-Endpoint angebunden funktioniert mit OpenAI, OpenRouter, Ollama (OpenAI-Compat-Modus), vLLM (OpenAI-Compat-Modus) etc. KI funktioniert mit jedem OpenAI-kompatiblen Endpoint; kein lokales Modell-Deployment nötig; User bringt eigenen Endpoint mit
F-AI-14 Function Calling / Tool Use: KI-Backend verwendet Function Calling / Tool Use Pattern CAD-Operationen sind als Functions registriert, die das LLM aufrufen kann LLM generiert Function Calls; Functions werden ausgeführt; Ergebnisse an LLM zurückgegeben; CAD-Zustand aktualisiert
F-AI-15 Sicherheits-Guardrails: KI Copilot kann keine destruktiven Operationen ohne Bestätigung ausführen (z. B. "Lösche alles") Destruktive Befehle erfordern Bestätigung; Safety-Checks sind implementiert

3.12 Integration & Modularität (API-First)

ID Anforderung Akzeptanzkriterium
F-INT-01 REST-API: Alle Kern-Funktionen sind über eine REST-API erreichbar (Projekte, Zeichnungen, Layer, Blöcke, Bibliothek, Export/Import) API-Endpunkte sind dokumentiert (OpenAPI/Swagger); externe Clients können CRUD-Operationen ausführen
F-INT-02 API-First-Architektur: Die Software ist API-first designed das Backend ist ein API-Server, die Web-UI ist ein API-Client Backend-Logik ist vollständig über API nutzbar; UI verwendet dieselbe API wie externe Clients
F-INT-03 Webhook-Support: Webhooks für Events (z. B. Zeichnung geändert, Projekt erstellt, Export fertig) Webhooks können konfiguriert werden; Events werden an registrierte URLs gesendet
F-INT-04 Modulare Architektur: Core, Plugins, KI-Backend und UI sind lose gekoppelte Module mit definierten Schnittstellen Module können unabhängig entwickelt und ausgetauscht werden; Schnittstellen sind dokumentiert
F-INT-05 Anbindung an andere Software: Die Software kann an andere Systeme angebunden werden (z. B. Event-Management-Systeme, CRM, Buchhaltung) Integration via REST-API oder Webhooks ist möglich; Beispiel-Integration dokumentiert
F-INT-06 Datenbank-Agnostisch: Persistenz-Schicht ist abstrahiert; Datenbank kann ausgetauscht werden (SQLite default, PostgreSQL/MySQL möglich) Datenbank-Backend ist konfigurierbar; Wechsel erfordert nur Konfiguration, keinen Code-Change
F-INT-07 Headless-Modus: Software kann ohne UI betrieben werden (nur API) nützlich für Automatisierung und Integration Headless-Modus startet ohne UI; API ist voll funktionsfähig; Automatisierung möglich
F-INT-08 KI-API: KI-Copilot-Funktionen sind über die API erreichbar (für externe Automatisierung) KI-Befehle können via API gesendet werden; Ergebnisse werden als JSON zurückgegeben

4. Nicht-funktionale Anforderungen

4.1 Performance

ID Anforderung Akzeptanzkriterium
NF-PERF-01 Große Projekte: Anwendung muss Projekte mit 50.000+ Elementen flüssig darstellen (60fps) Benchmark: 50.000 Linienelemente werden bei 60fps gerendert (Canvas 2D mit Indexierung oder WebGL)
NF-PERF-02 Ladezeit: Initiale Ladezeit < 3 Sekunden bei Standard-Internetverbindung Lighthouse-Performance-Score >= 80; First Contentful Paint < 1,5s
NF-PERF-03 Speicher-Effizienz: Browser-Speicherverbrauch bleibt < 500MB bei 50.000 Elementen Speicherverbrauch wird überwacht und bleibt unter 500MB
NF-PERF-04 Kollaborations-Latenz: Echtzeit-Synchronisation < 1 Sekunde bei normaler Netzwerkverbindung Latenz wird gemessen und bleibt unter 1 Sekunde
NF-PERF-05 KI-Antwortzeit: KI Copilot antwortet < 3 Sekunden auf einfache Befehle Antwortzeit wird gemessen; einfache Befehle (< 3s); komplexe Operationen zeigen Fortschritt

4.2 Rendering-Technologie (Architektur-Empfehlung Open Source)

Basierend auf Recherche (Stand 2025/2026). Alle Empfehlungen verwenden ausschließlich Open-Source-Komponenten.

Technologie Einsatzbereich Begründung Open-Source-Verfügbarkeit
Canvas 2D (mit Indexierung & Layer-System) Primärer Renderer für 2D-CAD Kann 50.000+ Elemente bei 60fps rendern; gute Balance aus Performance und Entwicklungs-Aufwand Browser-Native API (keine Library nötig); rbush (R-Tree, MIT) für räumliche Indexierung
WebGL (optional, Hybrid) Performance-Boost für sehr große Szenen (> 100k Elemente) GPU-Beschleunigung; höhere Komplexität; erst bei Bedarf implementieren regl (MIT) oder Three.js (MIT) als WebGL-Abstraktion
SVG NICHT als primärer Renderer geeignet DOM-Overhead bei > 3.000-5.000 Elementen; Performance-Einbruch
WebAssembly Berechnungsintensive Operationen (DXF-Parsing, Geometrie-Operationen) Nahe-native Performance für Parsing und Mathematik Rust + wasm-bindgen (MIT/Apache); dxf-parser in Rust portierbar

Empfehlung: Canvas 2D mit räumlichem Index (rbush/R-Tree) und Layer-basiertem Rendering als primäre Technologie. WebGL (via regl oder Three.js) als optionale Hybrid-Schicht für extrem große Szenen reservieren.

4.3 Kollaborations-Architektur (Open Source)

Aspekt Empfehlung Begründung Open-Source-Verfügbarkeit
Synchronisation CRDT (Yjs) über WebSocket Konfliktfreie Synchronisation; bewährt in Figma und modernen kollaborativen Apps Yjs (MIT), y-websocket (MIT)
Transport WebSocket für Dokument-Daten; WebRTC optional für Cursor-Daten WebSocket: zuverlässig, server-seitig kontrollierbar; WebRTC: niedrigere Latenz ws (MIT), y-webrtc (MIT)
Persistenz Server-seitige Persistenz der CRDT-Dokumente Single Source of Truth; Versionshistorie; Offline-Sync bei Reconnect y-leveldb (MIT), IndexedDB client-side
Skalierung WebSocket-Server mit Pub/Sub pro Raum (Zeichnung) Mehrere Zeichnungen parallel; isolierte Räume; horizontale Skalierung möglich Redis Pub/Sub (BSD) für Multi-Server-Skalierung

4.4 KI-Copilot-Architektur (OpenAI-kompatibler Endpoint)

Aspekt Empfehlung Begründung
KI-Anbindung OpenAI-kompatibler API-Endpoint (user-provided) User bringt eigenen Endpoint mit (OpenAI, OpenRouter, Ollama OpenAI-Compat, vLLM OpenAI-Compat, etc.); kein lokales Modell-Deployment nötig
Konfiguration base_url + api_key in Admin-Settings Admin trägt API-URL und API-Key ein; KI ist nach Konfiguration sofort funktionsfähig
Function Calling LLM Function Calling / Tool Use Pattern CAD-Operationen werden als Functions registriert; LLM ruft Functions auf; Ergebnisse zurück an LLM
KI-Transport Backend leitet KI-Anfragen an konfigurierten OpenAI-kompatiblen Endpoint weiter Frontend sendet KI-Anfrage an CAD-Backend; Backend leitet an externen API-Endpoint weiter; LLM generiert Function Calls; Backend führt aus
CAD-Function-Registry Zentrales Verzeichnis aller CAD-Operationen als aufrufbare Functions LLM kann nur registrierte Functions aufrufen; sicher; erweiterbar durch Plugins
Context Injection Aktueller CAD-Zustand (Zeichnung, Selektion, Layer, Zoom) wird als Context an LLM gesendet LLM hat Kontext; kann kontextbezogene Antworten geben
Guardrails Safety-Layer für destruktive Operationen Verhindert ungewolltes Löschen; erfordert Bestätigung

Architektur-Pattern:

User Input (Text/Sprache)
    → CAD-Backend leitet an OpenAI-kompatiblen API-Endpoint weiter
    → LLM generiert Function Call (z. B. draw_line(x1, y1, x2, y2))
    → CAD-Function-Registry führt Function aus
    → Canvas aktualisiert sich
    → Ergebnis an LLM zurück ("Linie gezeichnet von A nach B")
    → LLM generiert Bestätigung an User

4.5 Open-Source-Lizenz & Komponenten

ID Anforderung Akzeptanzkriterium
NF-OSS-01 Open-Source-Lizenz: web-cad wird als Open Source veröffentlicht (Lizenz: AGPL-3.0 oder MIT, siehe Q-01) Lizenz-Datei (LICENSE) im Repo; alle Quellen öffentlich
NF-OSS-02 Nur Open-Source-Komponenten: Alle verwendeten Libraries, Tools, Frameworks und KI-Modelle müssen Open-Source-Lizenzen haben (MIT, Apache-2.0, BSD, ISC, LGPL, AGPL) Keine proprietären Abhängigkeiten; Lizenz-Audit in CI/CD
NF-OSS-03 Lizenz-Kompatibilität: Alle Abhängigkeiten sind untereinander lizenzkompatibel Lizenz-Kompatibilitätsanalyse durchgeführt; keine Konflikte
NF-OSS-04 DXF-Bibliothek: Open-Source DXF-Parser/Writer verwenden (z. B. dxf-parser, dxf-writer in JS oder Rust) DXF-Import/Export funktioniert mit Open-Source-Library
NF-OSS-05 DWG-Bibliothek (Optional): Falls DWG-Import unterstützt wird, Open-Source-Library verwenden (z. B. libredwg, GNU GPL) DWG-Import funktioniert mit Open-Source-Library; keine kommerziellen Bibliotheken
NF-OSS-06 KI-Anbindung offen: KI wird über einen OpenAI-kompatiblen API-Endpoint angebunden; kein proprietäres KI-Modell fest codiert Jeder OpenAI-kompatible Endpoint funktioniert (OpenAI, OpenRouter, Ollama, vLLM); User wählt seinen eigenen Provider

4.6 Sicherheit

ID Anforderung Akzeptanzkriterium
NF-SEC-01 Authentifizierung: E-Mail/Passwort-basierte Authentifizierung (entschieden, siehe Q-02) Login funktioniert; Passwörter gehasht (bcrypt/argon2); Sessions sicher (HTTP-only Cookies, CSRF-Schutz)
NF-SEC-02 Autorisierung: Rollenbasierte Zugriffskontrolle für Projekte und Aktionen Berechtigungen werden server-seitig enforced
NF-SEC-03 Daten-Transport: HTTPS/WSS für gesamte Kommunikation TLS für alle Verbindungen; keine unverschlüsselte Kommunikation
NF-SEC-04 Input-Validierung: Import-Dateien werden validiert (DXF, SVG, PDF) Maliziöse Dateien werden abgewiesen; Schema-Validierung erfolgt vor Verarbeitung
NF-SEC-05 KI-Safety: KI-Copilot-Operationen haben Guardrails (keine destruktiven Operationen ohne Bestätigung) Safety-Checks verhindern ungewollte Datenlöschung; Bestätigung erforderlich für kritische Operationen

4.7 Deployment

ID Anforderung Akzeptanzkriterium
NF-DEP-01 Docker-Deployment: Anwendung kann in Docker-Containern betrieben werden Dockerfile und docker-compose.yml vorhanden und funktionsfähig
NF-DEP-02 Coolify-Deployment: Deployment via Coolify ist möglich Coolify-kompatible Konfiguration vorhanden; Deployment-Dokumentation erstellt
NF-DEP-03 Umgebungs-Konfiguration: Konfiguration über Umgebungsvariablen Keine fest codierten Credentials; alle Secrets über Env-Variablen
NF-DEP-04 Datenbank: SQLite als Standard-Datenbank (entschieden, siehe Q-03); Datenbank-Schicht ist abstrahiert für spätere Migration SQLite funktioniert; Schema definiert; Migration zu PostgreSQL möglich
NF-DEP-05 KI-Anbindung: KI wird über externen OpenAI-kompatiblen API-Endpoint angebunden kein separater KI-Container nötig KI-API-URL und API-Key werden über Umgebungsvariablen konfiguriert; keine lokale KI-Infrastruktur erforderlich

4.8 Plattform & Browser-Kompatibilität

ID Anforderung Akzeptanzkriterium
NF-PLAT-01 Browser-Unterstützung: Chrome, Firefox, Edge, Safari (aktuelle Versionen) Anwendung läuft in allen genannten Browsern; keine Browser-spezifischen Fehler
NF-PLAT-02 WebAssembly-Unterstützung: Browser muss WebAssembly unterstützen Fallback-Strategie für Browser ohne WebAssembly oder klare Fehlermeldung
NF-PLAT-03 Web Speech API: Browser muss Web Speech API unterstützen (für optionale Voice-Input) Voice-Input funktioniert in unterstützten Browsern; Fallback auf Text-Eingabe

5. Annahmen (Assumptions)

  1. Primär Desktop: Die Anwendung wird primär auf Desktop-Geräten (≥1280px Breite) verwendet; mobile Unterstützung ist nicht Teil der initialen Version.
  2. Deutsche UI: Die Benutzeroberfläche wird primär auf Deutsch entwickelt; Mehrsprachigkeit kann später hinzugefügt werden.
  3. Keine 3D: Die Anwendung ist rein 2D; keine 3D-Modellierung oder 3D-Ansicht.
  4. DXF als primäres Austauschformat: DXF ist das wichtigste Import/Export-Format für CAD-Interoperabilität; DWG ist optional und von Open-Source-Library-Verfügbarkeit abhängig.
  5. CRDT als Synchronisations-Standard: CRDT (Yjs) wird als Standard für Echtzeit-Kollaboration angenommen; OT wird nicht verwendet.
  6. Canvas 2D als primärer Renderer: Canvas 2D mit räumlichem Index (rbush) wird als primäre Rendering-Technologie angenommen; WebGL ist optional.
  7. Einzelner Server-Deployment: Initiales Deployment ist ein einzelner Server (Docker/Coolify); horizontale Skalierung ist später möglich.
  8. SVG-Import als Bibliothekserweiterung: SVG-Dateien werden primär für die Bibliothek importiert; SVG als Projekt-Import ist sekundär.
  9. Open Source: Alle Komponenten sind Open Source; web-cad selbst wird als Open Source lizenziert (AGPL-3.0 oder MIT).
  10. Bestuhlungs-Stühle als Bibliothek-Blöcke: Stühle für Bestuhlungs-Tools werden als Blöcke in der Bibliothek definiert, nicht fest codiert.
  11. E-Mail/Passwort-Auth: E-Mail/Passwort ist die Authentifizierungsmethode; keine OAuth2/SSO in der initialen Version.
  12. Universelle Erweiterbarkeit: Die Plugin-Architektur ist so konzipiert, dass die Software später in jede Richtung erweiterbar ist (neue Branchen, Formate, UI-Komponenten).
  13. SQLite als Standard-Datenbank: SQLite wird als Standard-Datenbank verwendet; Datenbank-Schicht ist abstrahiert für spätere Migration zu PostgreSQL/MySQL.
  14. API-First-Design: Die Software ist API-first designed; das Backend ist ein API-Server, die UI ist ein API-Client. Dadurch ist die Software an andere Systeme anhängbar.
  15. KI Copilot als Kern-Feature: Der KI Copilot ist von Anfang an in die Core-Architektur integriert kein Afterthought. CAD-Operationen sind als Functions registriert, die vom LLM aufgerufen werden können.
  16. OpenAI-kompatibler KI-Endpoint: KI wird über einen OpenAI-kompatiblen API-Endpoint angebunden (user-provided); kein lokales Modell-Deployment. User bringt eigenen Endpoint mit (OpenAI, OpenRouter, Ollama OpenAI-Compat, vLLM OpenAI-Compat, etc.).
  17. Function Calling als KI-Pattern: Das LLM verwendet Function Calling / Tool Use, um CAD-Operationen auszulösen. Das LLM generiert keine direkten Canvas-Befehle, sondern ruft registrierte Functions auf.
  18. Modularität: Core, Plugins, KI-Backend und UI sind lose gekoppelte Module mit definierten Schnittstellen.

6. Non-Goals (Nicht im Scope der initialen Version)

  1. Keine 3D-Modellierung rein 2D; keine 3D-Ansicht, keine Höhen, keine 3D-Renderings.
  2. Keine mobile App oder mobile-optimierte UI Desktop first; mobile wird erst bei Bedarf addressed.
  3. Keine lokalen Druck-/Plot-Konfigurationen PDF-Export ersetzt direktes Drucken in der ersten Version.
  4. Keine AutoCAD-LISP-/Macro-Skripting-Engine keine benutzerdefinierten Skripte in LISP/AutoLISP.
  5. Keine parametrische Modellierung keine Constraint-basierte Geometrie oder parametrischen Relationen.
  6. Keine BIM-Integration keine IFC-Importe, keine BIM-Datenmodellierung.
  7. Keine Desktop-Installation rein web-basiert; keine Electron-/NW.js-Desktop-App.
  8. Keine Multi-Tenant-Isolierung auf Organisationsebene initiale Version ist Single-Tenant; Multi-Tenant später.
  9. Keine erweiterten Druck-Layouts keine Plot-Styles, Linienstärken-Tabellen oder Print-Studio-Konfigurationen.
  10. Keine Video-/Audio-Kommunikation keine integrierte Video- oder Audio-Calls zwischen Nutzern.
  11. Keine automatische Flächenberechnung / Mengenermittlung in der ersten Version nicht enthalten.
  12. Kein OAuth2/OIDC/SSO E-Mail/Passwort reicht; SSO kann später als Plugin nachgerüstet werden.
  13. Keine AutoCAD-Block-Editor-Äquivalenz Block-Definitionen können bearbeitet werden, aber kein vollständiger Block-Editor wie in Desktop-AutoCAD.
  14. Keine CAD-Standards-Verwaltung keine DWS-Dateien oder Standards-Checking wie in Desktop-AutoCAD.
  15. Keine 3D-Viewing anders als AutoCAD Web (das DWG-3D-Viewing bietet), ist web-cad rein 2D.
  16. Keine autonomes KI-Zeichnen der KI Copilot führt Befehle auf Anweisung aus, aber zeichnet nicht selbstständig komplexe Zeichnungen ohne User-Anweisung. Autonomes Zeichnen ist ein späteres Feature.
  17. Keine KI-Training/Fine-Tuning die initialen KI-Modelle werden nicht fine-getuned; Standard-Modelle mit Function Calling werden verwendet.

7. Entschiedene Fragen (Resolved)

# Frage Antwort Entscheidung
Q-01 Soll die Anwendung Open Source oder Closed Source sein? Welche Lizenz? Open Source Entschieden: Software wird als Open Source lizenziert (AGPL-3.0 empfohlen für Copyleft-Schutz, MIT als Alternative). Nur komplett offene Komponenten werden verwendet.
Q-02 Welche Authentifizierungsmethode wird bevorzugt? E-Mail/Passwort Entschieden: E-Mail/Passwort als Authentifizierung. Keine OAuth2/OIDC/SSO in der initialen Version. SSO kann später als Plugin nachgerüstet werden.
Q-03 Welche Datenbank soll verwendet werden? SQLite Entschieden: SQLite als Standard-Datenbank. Datenbank-Schicht ist abstrahiert für spätere Migration. Software ist API-first/modular designed für Integration mit anderer Software.
Q-15 Soll das KI-Backend lokal oder remote laufen? Remote (OpenAI-kompatibel) Entschieden: KI wird remote über einen OpenAI-kompatiblen API-Endpoint angebunden. Kein lokales Modell-Deployment (kein Ollama, kein vLLM lokal). User bringt eigenen Endpoint mit.
Q-16 Welche KI-Modellgröße ist akzeptabel? User-Sache Entschieden: Modellgröße ist nicht unsere Concern der User bringt seinen eigenen Endpoint mit. Wir binden nur einen OpenAI-kompatiblen API-Call ein.

8. Offene Fragen

# Frage Priorität Auswirkung bei Nicht-Beantwortung
Q-04 Gibt es eine erwartete Nutzerzahl / Anzahl gleichzeitiger Kollaborateure pro Zeichnung? Mittel Skalierungs-Architektur, WebSocket-Server-Design
Q-05 Soll DWG-Import unterstützt werden? Wenn ja, welche DWG-Versionen? Mittel Library-Auswahl (libredwg, GNU GPL)
Q-06 Welche Stuhl-Typen / Bibliothekseinträge werden initial benötigt? Mittel Initial-Bibliothek, Bestuhlungs-Tool-Design
Q-07 Sollen Bestuhlungs-Tools weitere Event-Elemente unterstützen (Tische, Bühnen, Absperrungen)? Mittel Tool-Scope, Bibliothek
Q-08 Ist eine Kommentar-/Annotations-Funktion für Kollaborateure gewünscht? Niedrig UI-Design, Kollaborations-Features
Q-09 Sollen Projekte in Ordnern/Projektgruppen organisiert werden können? Niedrig Projekt-Management-UI
Q-10 Gibt es Anforderungen an Barrierefreiheit (WCAG 2.1 AA)? Niedrig UI-Design, Testing-Aufwand
Q-11 Soll es ein API für externe Integrationen geben (REST/GraphQL)? Niedrig Architektur-Erweiterung
Q-12 Welche Maßeinheiten sollen unterstützt werden (metrisch, imperial, beides)? Niedrig Bemaßungs-Logic, UI
Q-13 AGPL-3.0 oder MIT als Lizenz? Niedrig Lizenz-Datei, Copyleft vs. Permissive
Q-14 Soll der KI Copilot Spracheingabe (Voice) von Anfang an unterstützen oder erst später? Niedrig UI-Design, Web Speech API Integration

9. Technologie-Recherche & Empfehlungen

9.1 Rendering-Technologie

Recherche-Ergebnisse (Stand 2025/2026):

  • SVG: Gut für einfache Grafiken; DOM-Overhead bei > 3.000-5.000 Elementen → Performance-Einbruch. Nicht geeignet für CAD mit großen Zeichnungen.
  • Canvas 2D: Kann 50.000+ Elemente bei 60fps rendern, wenn räumliche Indexierung (Quadtree/R-Tree) und Layer-basiertes Culling eingesetzt werden. Empfohlen als primärer Renderer.
  • WebGL: Höchste Performance für sehr große Szenen (> 100k Elemente); GPU-Beschleunigung; jedoch höherer Entwicklungs-Aufwand. Als optionale Hybrid-Schicht reservieren.
  • WebAssembly: Nahe-native Performance für Berechnungen (DXF-Parsing, geometrische Operationen). Empfohlen für rechenintensive Aufgaben.

Quellen:

  • SVG Genie Blog: SVG vs Canvas vs WebGL Performance Comparison (2026)
  • AlterSquare: WebGL vs Canvas for Browser-Based CAD Tools
  • Medium (@codetip.top): SVG vs Canvas vs WebGL for Diagram Viewers
  • PMC: Cross-Device Benchmark of Modern Web Animation Systems

9.2 Multi-User Kollaboration

Recherche-Ergebnisse (Stand 2025/2026):

  • CRDT (Conflict-free Replicated Data Types): Moderner Standard für kollaborative Anwendungen; verwendet von Figma und vielen modernen Apps; leichter korrekt zu implementieren als OT.
    • Yjs (MIT): Beliebteste CRDT-Bibliothek; unterstützt Text, Arrays, Maps, XML; WebSocket- und WebRTC-Bindings vorhanden.
    • Automerge (MIT): Alternative CRDT-Bibliothek; ähnliche Features.
  • OT (Operational Transformation): Älterer Ansatz (Google Docs); komplexer korrekt zu implementieren; erfordert zentrale Server-Logik.
  • Transport: WebSocket für Dokument-Synchronisation; WebRTC für Cursor-Positionen (niedrigere Latenz).
  • Persistenz: Server-seitige Speicherung der CRDT-Dokumente für Single Source of Truth und Versionshistorie.

Empfehlung: CRDT (Yjs, MIT) über WebSocket als primäre Kollaborations-Architektur.

Quellen:

  • Medium (toonsquare.tech): Real-Time Collaborative Editor with CRDT and Durable Objects
  • Velt Blog: OT vs CRDT in 2026; Yjs WebSocket Server Guide
  • Daydreamsoft: Real-Time Collaboration Using CRDTs and OT
  • Onshape: Cloud-native CAD Collaboration

9.3 KI-Copilot-Architektur

Recherche-Ergebnisse (basierend auf Known Best Practices und früheren Suchergebnissen zu AutoCAD AI 2026/2027):

  • AutoCAD 2026/2027 AI Features: Autodesk integriert KI für automatisches Block-Placement, Dimensioning, Layer-Assignment und Error-Detection mittels Machine Learning. (Quelle: cadcenterhyderabad.com, arkance.us)
  • LLM Function Calling / Tool Use: Der Standard-Pattern für KI-Copiloten in Software-Anwendungen. Das LLM erhält eine Liste von verfügbaren Functions/Tools und generiert strukturierte Function Calls, die von der Anwendung ausgeführt werden.
    • Beispiel: draw_line(x1=100, y1=200, x2=300, y2=400) → CAD-Engine führt Funktion aus → Canvas aktualisiert sich
    • Vorteil: Sichere, kontrollierte KI-Ausführung; LLM hat keinen direkten Canvas-Zugriff
    • Verwendet von: OpenAI (Function Calling), Anthropic (Tool Use), Open-Source-Modelle via Ollama/vLLM
  • Open-Source KI-Backends:
    • Ollama (MIT): Lokaler Model-Server; einfach zu deployen; unterstützt Llama, Qwen, DeepSeek; Function Calling via JSON-Format
    • vLLM (Apache-2.0): Hochperformanter Inference-Server; optimiert für Throughput; unterstützt OpenAI-kompatibles API
    • llama.cpp (MIT): Minimaler C++-Inference-Server; läuft auf CPU und GPU; für Resource-constrained Environments
  • Open-Source LLM-Modelle mit Function Calling:
    • Llama 3/4 (Meta, Llama License): 8B/70B/400B Parameter; gute Function-Calling-Unterstützung
    • Qwen 2.5 (Alibaba, Apache-2.0): 7B/14B/32B/72B Parameter; explizit für Tool-Use trainiert
    • DeepSeek (MIT): 7B/67B Parameter; gutes Code-Verständnis; Function-Calling-fähig
  • Context Injection: Der aktuelle CAD-Zustand (Zeichnung, Selektion, Layer, Zoom, Maßstab) wird als strukturiertes Context-Objekt an das LLM gesendet. Dadurch kann das LLM kontextbezogene Antworten und Function Calls generieren.
  • Mehrschritt-Operationen: Für komplexe Befehle (z. B. "Erstelle einen Raum und bestuhle ihn") kann das LLM eine Sequenz von Function Calls generieren, die nacheinander ausgeführt werden.
  • Guardrails / Safety: Ein Safety-Layer prüft jeden Function Call vor der Ausführung. Destruktive Operationen (Löschen aller Elemente, Überschreiben ganzer Zeichnungen) erfordern explizite User-Bestätigung.

Empfehlung: OpenAI-kompatibler API-Endpoint (user-provided) als KI-Anbindung. Function Calling Pattern mit zentraler CAD-Function-Registry. Context Injection für Kontext-Verständnis. Guardrails für Safety. Kein lokales Modell-Deployment der User bringt seinen eigenen Endpoint mit (OpenAI, OpenRouter, Ollama OpenAI-Compat, vLLM OpenAI-Compat, etc.).

Quellen:

  • cadcenterhyderabad.com: AutoCAD 2027 AI Features
  • arkance.us: AutoCAD 2026 New Features (BSEARCH, Centerline Layer)
  • Ollama Documentation: Function Calling Support
  • vLLM Documentation: OpenAI-Compatible API
  • Qwen 2.5 Model Card: Tool Use Training
  • Allgemeine Best Practices für LLM Function Calling / Tool Use Pattern

9.4 Open-Source-Technologie-Stack (Empfehlung)

Schicht Empfehlung Lizenz
Frontend-Framework React (MIT) oder Vue.js (MIT) oder Svelte (MIT) MIT
Rendering Canvas 2D (native) + rbush (MIT) für räumliche Indexierung MIT
WebGL (optional) regl (MIT) oder Three.js (MIT) MIT
CRDT/Sync Yjs (MIT) + y-websocket (MIT) MIT
Backend-Framework Node.js (Express/Fastify) oder Python (FastAPI) MIT
WebSocket-Server ws (MIT) für Node.js oder websockets (BSD) für Python MIT/BSD
Datenbank SQLite (Public Domain) Standard; PostgreSQL (PostgreSQL License) optional Open Source
DXF-Parser dxf-parser (MIT, JS) oder Rust-Port mit wasm-bindgen MIT
DWG-Parser (optional) libredwg (GPL) GPL
PDF-Generierung pdf-lib (MIT) oder jsPDF (MIT) MIT
SVG-Verarbeitung Native Browser-API oder svg.js (MIT) MIT
Auth bcrypt (Apache) oder argon2 (MIT/CDDL) Open Source
KI-Anbindung OpenAI-kompatibler API-Endpoint (user-provided) funktioniert mit OpenAI, OpenRouter, Ollama (OpenAI-Compat), vLLM (OpenAI-Compat) User-provided
KI-Client OpenAI SDK (MIT) oder native fetch/axios MIT
API-Dokumentation OpenAPI/Swagger (Apache-2.0) Apache
Containerisierung Docker (Apache 2.0) Open Source
Deployment Coolify (AGPL-3.0) Open Source

9.5 Architektur-Referenzen

  • AutoCAD Web: Browser-basierte CAD-Oberfläche mit streamlined UI, Side-Panel, Command Line, Blocks/Layers-Tabs. Siehe Section 12 für detaillierte Feature-Referenz.
  • AutoCAD 2026/2027 AI: KI-Features für Block-Placement, Dimensioning, Layer-Assignment, Error-Detection.
  • Onshape: Cloud-native CAD mit echter Multi-User-Kollaboration; Single Source of Truth; keine Datei-Kopien.
  • Figma: Browser-basierte Design-Tool mit CRDT-basierter Kollaboration; inspirierend für UI und Sync-Architektur.
  • xDraftSight: Cloud-basierter 2D-CAD; browser-basierte Architektur.

10. Abhängigkeiten & Risiken

Risiko Beschreibung Mitigation
DXF/DWG-Kompatibilität DXF-Parser muss verschiedene DXF-Versionen korrekt verarbeiten Open-Source-Library (dxf-parser, MIT) verwenden; Tests mit realen DXF-Dateien
Performance bei großen Zeichnungen 50k+ Elemente können Browser überlasten Canvas 2D mit räumlichem Index (rbush); Viewport-Culling; Virtualisierte Layer
Kollaborations-Komplexität CRDT-Synchronisation für komplexe CAD-Daten ist nicht trivial Yjs als bewährte Bibliothek; inkrementelle Implementierung; erst einfache Operationen, dann komplexe
Open-Source-DWG-Support libredwg (GPL) hat eingeschränkte DWG-Version-Unterstützung DWG als optional markieren; DXF als primäres Format
Browser-Speicherlimit Sehr große Projekte können Browser-Speicherlimit überschreiten Lazy-Loading; Kompression; IndexedDB für Persistenz
Plugin-System-Komplexität Universelles Plugin-System kann Core-Stabilität gefährden Plugin-Isolation (Sandbox/try-catch); Plugin-Manifest mit deklarativen Abhängigkeiten
KI-Fehlerhafte Befehle LLM könnte fehlerhafte oder unerwartete Function Calls generieren Guardrails; Function-Validation vor Ausführung; Bestätigung für destruktive Operationen
KI-Latenz LLM-Inferenz beim externen API-Provider kann mehrere Sekunden dauern Streaming-Responses; Fortschrittsanzeige; Timeout-Handling;Fallback auf manuelle Bedienung
KI-API-Verfügbarkeit Externer KI-API-Endpoint kann nicht erreichbar sein (Netzwerk, Wartung, Rate-Limit) Klare Fehlermeldungen; Retry-Logik; CAD bleibt ohne KI voll nutzbar
KI-Kontext-Größe CAD-Zustand kann groß sein (viele Elemente); LLM-Context-Limit begrenzt Context-Summary statt vollständiger Zeichnung; nur relevante Ausschnitte senden

11. Deployment-Erwartungen

Aspekt Erwartung
Containerisierung Docker (Dockerfile + docker-compose.yml) CAD-Backend + Frontend (2 Container)
Orchestrierung Coolify auf coolify-01 (46.225.91.159)
Domain TBD z. B. cad.media-on.de
SSL Let's Encrypt via Coolify/Traefik
Datenbank SQLite (Standard); Datenbank-Schicht abstrahiert für Migration
KI-Anbindung OpenAI-kompatibler API-Endpoint (extern) kein separater KI-Container; API-URL + API-Key über Umgebungsvariablen
WebSocket-Server Separater Container oder integriert; WebSocket-Proxy via Traefik
Persistenz Docker-Volume für Datenbank und Datei-Storage (Grundrisse, Bibliothek)
Skalierung Initiale Version: Einzelner Server; später horizontal skalierbar

12. AutoCAD Web Feature-Referenz

Diese Sektion dokumentiert die recherchierten Features von AutoCAD Web App als Vergleichsbasis für web-cad.

12.1 CAD-Grundfunktionen in AutoCAD Web

Basierend auf Recherche (Scan2CAD Review, Autodesk Produktseiten, Softonic Review, Reddit/Diskussionen):

Kategorie Verfügbare Tools/Features in AutoCAD Web
Zeichnen (Draw) Polyline (PLINE), Line, Circle, Arc, Rectangle, Polygon
Bearbeiten (Modify) Move, Offset, Mirror, Rotate, Trim, Extend, Copy, Scale, Fillet
Bemaßung (Dimensioning) DIM (Linear, Aligned, Radial), MLEADER (Multi-Leader)
Annotation/Text MTEXT (Multiline Text), REVCLOUD (Revision Cloud), Text
Raster & Fang (Snap) Object Snaps (Endpoint, Midpoint, Intersection), Snap Overrides, Polar Tracking, Ortho
Auswahl (Selection) Einzelauswahl, Fenster-Auswahl, Kreuz-Auswahl
Blocks Insert (aus Blocks-Tab), Create, Edit (via Command Line)
Layers Layer-Verwaltung (On/Off, Lock/Unlock, Farbe, Linientyp)
XREFs External References werden unterstützt (im selben Ordner wie Parent-File)
Command Line Vollständige Command-Line-Eingabe wie Desktop-AutoCAD
UI-Elemente Side Panel (Commands), Blocks Tab, Layers Tab, Command Line, Status Bar

12.2 AutoCAD Web UI-Struktur

UI-Element Beschreibung
Streamlined UI Reduzierte, fokussierte Oberfläche für 2D-Drafting weniger überladen als Desktop
Side Panel Seitliches Panel mit Befehls-Auswahl (Alternative zur Command Line)
Command Line Befehlseingabe via Tastatur (wie Desktop-AutoCAD)
Blocks Tab Tab im Side Panel zum Einfügen von Blöcken
Layers Tab Tab im Side Panel für Layer-Verwaltung
Canvas Area Haupt-Zeichenbereich mit Zoom/Pan
Status Bar Status-Anzeige (Snap, Ortho, etc.)
Ribbon Begrenzte Ribbon-Elemente (weniger als Desktop)

12.3 AutoCAD Web Limitierungen (vs. Desktop AutoCAD)

Limitierung Beschreibung
Kein Block Editor Kein vollständiger Block-Editor wie in Desktop; Block-Bearbeitung nur via Command Line
Keine Tool Palettes Keine Tool-Paletten wie in Desktop-AutoCAD
Kein LISP/AutoLISP Keine LISP- oder AutoLISP-Skripting-Unterstützung
Keine Macros Keine Macro-Aufzeichnung oder -Wiedergabe
Keine 3D-Bearbeitung Fokus auf 2D-Drafting; keine 3D-Modellierung oder -Bearbeitung
Begrenzte 3D-Viewing DWG-3D-Viewing ist möglich, aber kein 3D-Editing
Keine CAD Standards Keine DWS-Dateien oder Standards-Checking
Keine erweiterten Plot-Konfigurationen Begrenzte Plot-/Druck-Optionen vs. Desktop
Begrenzte Datei-Formate Primär DWG; DXF-Support begrenzt; keine direkten DGN/DWF-Exporte
Keine Parametric Constraints Keine parametrischen Constraints (geometrische oder dimensionale)
Keine Express Tools Keine Express-Tools-Sammlung wie in Desktop
Begrenzte Anpassung Keine CUI-Anpassung (Custom User Interface)
Freie Version limitiert Free-Version kann nur DWG-Dateien öffnen/anzeigen; Editieren erfordert Subscription
Schwergewichtige Tasks Major drafting/editing-heavy lifting erfordert weiterhin Desktop

12.4 AutoCAD Web Import/Export-Formate

Format Support Bemerkung
DWG Import & Export Primäres Format; Vollunterstützung
DXF ⚠️ Begrenzt DXF-Support vorhanden aber weniger umfassend als Desktop
PDF Export PDF-Export unterstützt
DGN Nicht unterstützt Kein DGN-Import/Export in Web-Version
DWF Begrenzt Kein direkter DWF-Export in Web-Version
SVG Nicht unterstützt Kein SVG-Support in AutoCAD Web

12.5 Vergleich: AutoCAD Web vs. web-cad (Target)

Feature AutoCAD Web web-cad (Target) Vorteil web-cad
Rendering Proprietär (Autodesk) Canvas 2D + rbush (Open Source) Open Source, kontrollierbar
Kollaboration Begrenzt (Autodesk Docs) CRDT (Yjs) Echtzeit-Kollaboration Echte Echtzeit-Kollaboration
KI Copilot ⚠️ Begrenzt (AutoCAD 2026 AI) Vollständiger KI Copilot mit Function Calling Offen, steuerbar, alle CAD-Funktionen
LISP/Scripting Nicht unterstützt Non-Goal (initial)
Plugin-System Nicht verfügbar Vollständiges Plugin/Tool-System Erweiterbar in jede Richtung
SVG-Import Nicht unterstützt Vollunterstützt Bibliothek-Erweiterung
DXF-Support ⚠️ Begrenzt Vollunterstützt (Open Source) Vollständiger DXF-Support
DWG-Support Vollunterstützt ⚠️ Optional (libredwg, GPL) AutoCAD Web überlegen hier
Bestuhlungs-Tools Nicht verfügbar Reihen & Block-Bestuhlung Branchen-spezifisch
API-First Keine öffentliche API REST-API, API-first design An andere Software anhängbar
Lizenz Proprietär (Subscription) Open Source (AGPL-3.0/MIT) Frei nutzbar
Deployment Autodesk Cloud Docker/Coolify (self-hosted) Self-hosted, volle Kontrolle
UI Streamlined, Side Panel AutoCAD Web-inspiriert + erweitert Bekannte UI + mehr Features
Datenbank Proprietär (Autodesk Cloud) SQLite (Public Domain) Self-hosted, kontrollierbar
Mehrsprachigkeit Mehrere Sprachen ⚠️ Deutsch first, i18n später

12.6 Quellen AutoCAD Web Referenz


13. Handoff

Requirements Status

  • Draft v4 erstellt: Ja (2026-06-19)
  • Entschiedene Fragen: Q-01 (Open Source) , Q-02 (E-Mail/Passwort) , Q-03 (SQLite + API-first) , Q-15 (Remote/OpenAI-kompatibel) , Q-16 (User-Sache)
  • Testbare Anforderungen: Ja alle funktionalen und nicht-funktionalen Anforderungen haben konkrete Akzeptanzkriterien
  • Akzeptanzkriterien konkret: Ja
  • Assumptions: 18 dokumentiert (erweitert um OpenAI-kompatiblen KI-Endpoint)
  • Non-Goals: 17 dokumentiert
  • Offene Fragen: 7 (0 hoch, 3 mittel, 4 niedrig priorisiert)
  • AutoCAD Web Referenz: Vollständige Feature-Analyse inkl. Limitierungen und Vergleich
  • Open-Source-Stack: Vollständiger Stack mit Lizenzen (KI-Anbindung: OpenAI-kompatibler Endpoint, user-provided)
  • KI Copilot: 15 detaillierte Anforderungen (F-AI-01 bis F-AI-15) mit Function Calling Pattern, Guardrails, OpenAI-kompatibler Endpoint
  • Integration/Modularität: 8 Anforderungen (F-INT-01 bis F-INT-08) für API-first, REST-API, Webhooks, Headless-Modus
  • Plugin-System: 8 Anforderungen (F-EXT-01 bis F-EXT-08) für universelle Erweiterbarkeit

Ready for Architecture

  • Ja alle hoch- und mittel-priorisierten Fragen geklärt; Architektur-Phase kann starten
  • KI-Copilot-Architektur: OpenAI-kompatibler API-Endpoint + Function Calling + CAD-Function-Registry
  • API-First-Design ist als Architektur-Vorgabe definiert
  • Deployment: 2 Docker-Container (CAD-Backend + Frontend); KI ist externer API-Call
  • Verbleibende offene Fragen (Q-04 bis Q-14) sind mittel/niedrig priorisiert und können während oder nach der Architektur-Phase geklärt werden
  • Technologie-Empfehlungen stehen als Architektur-Vorgaben bereit

Empfohlene nächste Schritte

  1. User-Review der aktualisierten requirements.md (v4)
  2. Freigabe für Architektur-Phase (Phase 2)
  3. Delegation an Solution Architect mit Vorgaben: Open-Source-Stack, KI-Copilot (OpenAI-kompatibler Endpoint + Function Calling), API-First, Plugin-System, 2 Container