SolidCraft ist eine in purem Rust entwickelte Open-Source-CAD-Anwendung für parametrische 3D-Modellierung, die auf Desktop-Plattformen, im Web sowie via MCP-Server für KI-Agenten läuft. Die Architektur umfasst eine parametrische Feature-Timeline, einen eigenen Constraints-Solver für Skizzen sowie Unterstützung für STEP-, IGES-, STL- und 3MF-Dateien. Das Projekt nutzt den Truck-Modellierungskernel und ist unter den Lizenzen MIT oder Apache-2.0 verfügbar.
Wichtigste Punkte
Programmiersprache und Plattformen: Das Projekt ist komplett in Rust geschrieben und unterstützt Windows, macOS, Linux (via AppImage, Flatpak, Snap, .deb, .rpm) sowie den Browser mittels WebAssembly (WASM).
Modellierung und Timeline: Bietet eine parametrische Feature-Timeline (Extrudieren, Revolvieren, Sweepen, Loften, Verrunden, Fasen, Hohlkörper, Muster) mit inkrementellem Rebuild und editierbaren Features sowie Baugruppen, Gelenken und Bewegungssimulationen.
Skizzen- und Constraint-Solver: Kombiniert geometrische Konstruktionen (nach Owen 1991 und Fudos–Hoffmann 1997) mit einem Levenberg-Marquardt-Solver zur Bestimmung von Freiheitsgraden und Maßen wie Koinzidenz, Parallelität, Tangente und Krümmung (G2).
KI-Integration (MCP): Besitzt einen integrierten Model Context Protocol (MCP)-Server (solidcraft-cli mcp), der es KI-Agenten wie Claude Code ermöglicht, CAD-Modelle headless oder live in der Anwendung zu erstellen, zu messen und zu steuern.
Import und Export: Unterstützt den verlustfreien Export von STEP (AP242), IGES 5.3, 3MF, STL und OBJ sowie den Import von STEP- und IGES-Dateien als Basiskonstruktionen.
Hardware-Unterstützung: Erkennt native 3Dconnexion SpaceMouse- und SpaceNavigator-Geräte über HID-Schnittstellen unter Linux und Windows.
Architektur-Schichten: Ist modular in sechs Schichten aufgebaut, von L0 (Geometrie, Vektoren, Netze) über L1 (Skizzen, Solver, B-Rep-Kernel) und L2 (Parameter, Timeline) bis hin zu L3 (I/O), L4 (Engine) und L5 (UI mit egui/wgpu und MCP).
Diskussions-Highlights
Verwendeter Modellierungskernel: Diskussionsteilnehmer wiesen darauf hin, dass SolidCraft auf dem Open-Source-B-Rep-Kernel Truck (ricosjp/truck) aufbaut, während andere browserbasierte CAD-Tools wie CADara auf OpenCASCADE setzen.
Entwicklungsaufwand: Es wurde angemerkt, dass die Erstellung eines eigenen B-Rep-Kernels eine enorme Menge an Arbeit erfordert, weshalb die zukünftige Reifung und Stabilität von SolidCraft mit Spannung beobachtet wird.
Namen und Vorbilder: Spekulationen über den Namen und die Benutzeroberfläche umfassten mögliche Anlehnungen an Solid Edge oder Autodesk Inventor, wobei der Entwickler betont, dass das Projekt unabhängig entwickelt wurde und Clean-Room-Richtlinien einhält.
Glossar
B-Rep (Boundary Representation): Ein Verfahren in der CAD-Modellierung, bei dem dreidimensionale Körper durch ihre begrenzten Oberflächen (Flächen, Kanten und Ecken) mathematisch beschrieben werden.
C2-Interpolation: Eine mathematische Stetigkeitsbedingung für Kurven oder Flächen, bei der die Krümmung an den Nahtstellen stufenlos und glatt ineinander übergeht.
Constraints (Bedingungen): Geometrische Einschränkungen in Skizzen (wie parallel, senkrecht, konzentrisch), die festlegen, wie sich Linien und Punkte zueinander verhalten und bei Maßänderungen mitbewegen.
egui: Eine sofort ausführende (immediate mode) GUI-Bibliothek für die Programmiersprache Rust, die für plattformübergreifende grafische Benutzeroberflächen genutzt wird.
Levenberg-Marquardt-Algorithmus: Ein numerisches Optimierungsverfahren, das in CAD-Solvern eingesetzt wird, um nicht-lineare Gleichungssysteme bei der Skizzenbemaßung zu lösen.
MCP (Model Context Protocol): Ein offener Standard, der es KI-Modellen ermöglicht, sicher und standardisiert auf lokale Tools, Dateisysteme und Applikationen zuzugreifen.
STEP (Standard for the Exchange of Product model data): Ein genormtes Dateiformat (ISO 10303) zum verlustfreien Austausch von 3D-CAD-Daten zwischen verschiedenen CAD-Systemen.
WASM (WebAssembly): Eine binäre Code-Technologie, die es ermöglicht, Hochsprachen wie Rust mit nahezu nativer Geschwindigkeit im Webbrowser auszuführen.
wgpu: Eine sichere, moderne Grafik- und Compute-Bibliothek in Rust, die auf WebGPU sowie plattformspezifischen APIs wie Vulkan, Metal und DirectX aufsetzt.