Skip to main content
Glama

Battenmark

Offene, backend-neutrale CAD-Infrastruktur für KI-Agenten und Software.

CI License schema MCP

Battenmark bietet eine typisierte, backend-neutrale Schnittstelle zum Erstellen, Bearbeiten, Inspizieren, Validieren und Exportieren maßgeblicher CAD-Geometrie über austauschbare CAD-Backends. Aufrufer fordern create_hole an – niemals PartDesign::Hole. Kein Transport besitzt das Modell; ein kanonischer Dienst tut dies.

ChatGPT / Claude / Gemini / Grok / Codex / local models / IDE agents / custom apps
                                   │
                    MCP / HTTP / Python / CLI
                                   │
                                   ▼
                         Battenmark Core
                                   │
                    typed CAD operations / CAD IR
                                   │
                        Backend Registry
                                   │
             ┌─────────────────────┼──────────────────────┐
             ▼                     ▼                      ▼
          FreeCAD                JSCAD              future adapters
     authoritative B-rep        preview        build123d/CadQuery/etc.
  • FreeCAD / OpenCascade – maßgeblicher B-Rep-Kern (Headless-JSON-lines-Worker)

  • JSCAD – In-Process-Vorschau-/Envelope-Backend (nicht die Quelle der Wahrheit)

Schnellstart

Voraussetzungen: Node.js ≥ 20 und npm. FreeCAD ist für den Kerndienst optional und nur für das maßgebliche B-Rep-Backend erforderlich.

npm install
npx tsc --noEmit   # type check
npm test           # fast kernel-free suites (parametric, selectors, registry)

FreeCAD-Backend

sh scripts/bootstrap-macos.sh      # macOS: discovers /Applications/FreeCAD.app
sh scripts/install-freecad.sh      # Linux: installs headless 1.0.2 AppImage (no FUSE)
npm run test:freecad               # proves the real worker end-to-end

Ermittlungsreihenfolge: $AGENTCAD_FREECAD_CMD → macOS-FreeCAD.app-Bundles → Homebrew → extrahiertes Linux-AppImage → PATH. Siehe docs/MACOS.md und docs/LINUX.md.

Transporte

Transport

Einstiegspunkt

MCP stdio

npx agentcad-mcp

HTTP

npx agentcad serve --port 8787, dann /api/v1/... (Bearer-Token über AGENTCAD_API_TOKEN)

CLI

npx agentcad --help

Python

python/agentcad – siehe examples

Beispiel für den Python-Client:

from agentcad import AgentCad

c = AgentCad(base_url="http://127.0.0.1:8787", token="secret-token")
pid = c.project_create("demo")["project_id"]
c.create_box(pid, 80, 50, 12)
print(c.rebuild(pid)["data"]["volume_mm3"])   # 48000

Related MCP server: freecad-tool-server

Golden-Smoke-Modell

Der kanonische Release-Smoke-Test ist eine 80 × 50 × 12‑mm‑Box = 48.000 mm³, verifiziert über JSCAD, FreeCAD, HTTP, CLI, MCP und den Python-Client (test:transport-parity). Diese Vorlage sollte nicht leichtfertig geändert werden.

Funktionen

  • Backend-neutrale, typisierte CAD-Operationen mit explizitem Schema (agentcad_schema_version: 2)

  • FreeCAD/OpenCascade als maßgebliches B-Rep; JSCAD als Vorschau

  • Skalare Parameterausdrücke und Abhängigkeitsauswertung

  • Semantische Flächen-/Kantenselektoren (top_perimeter, …), die sich nach Bearbeitungen neu auflösen

  • Persistente Geometriereferenzen (gref) mit expliziten Fehlern für „verloren“/„mehrdeutig“

  • Durchgangs-, Sack-, Zylindersenk- und Kegelsenkbohrungen

  • Verrundungen und Fasen · lineare und rechteckige Muster

  • STEP-/FCStd-/STL-Austausch · PNG-Vorschauen in vier Ansichten

  • Dynamische Backend-Register mit Fähigkeitsermittlung pro Backend

  • Ein serialisierter FreeCAD-Worker mit Kill-/Restart-Wiederherstellung

Plattformstatus

Plattform

Status

macOS Apple Silicon

Tier 1 – hardware-verifiziert (arm64, macOS 26.6.2, FreeCAD 1.1.3)

Linux x86_64

headless / für Entwicklung validiert (FreeCAD 1.0.2 AppImage)

macOS Intel

nicht verifiziert

Windows

nicht unterstützt / nicht verifiziert

Bekannte Einschränkungen

Dies ist eine Pre-1.0-Alpha-Software; APIs können sich ändern.

  • Noch keine Baugruppen, Masten oder Baugruppen-Constraints

  • Noch keine kreisförmigen Muster

  • Gewinde sind kosmetische Metadaten, keine helix-förmigen Volumenkörper

  • Importiertes STEP ist ein Geometrieimport – keine automatische parametrische Rekonstruktion

  • Native FCStd-Dokumente behalten die historischen PartDesign-Feature-Formen; Battenmark misst den endgültigen Body-Tip (das Aufrechnen der Volumenkörper würde doppelt zählen)

  • Ein serialisierter FreeCAD-Worker (kein Pooling)

  • Die Vorschau-Renderung wird von JSCAD von OCC-Hidden-Line übernommen, nicht von OCC-Hidden-Line

  • Das vollständige topologische Benennen ist nicht gelöst; persistente gref-Referenzen mildern es

Vollständige Liste: docs/LIMITATIONS.md.

Dokumentation

Thema

Dokumentation

Architektur & Grundlagen

docs/ARCHITECTURE.md · docs/FOUNDATION.md

Betriebsvertrag & Schema

docs/CONTRACT.md · docs/VERSIONING.md

Backends & Kernels

docs/BACKENDS.md · docs/FREECAD.md · docs/JSCAD.md · docs/KERNEL.md

Transporte

docs/MCP.md · docs/HTTP.md · docs/CLI.md · docs/PYTHON.md · docs/CLIENTS.md

Dienst & Persistenz

docs/SERVICE.md · docs/AUTH.md

Import/Export & Vorschau

docs/IMPORT.md · docs/PREVIEW.md

Plattformen & Validierung

docs/MACOS.md · docs/LINUX.md · docs/RELEASE.md

Kompatibilitäts-Kennzeichner

Die öffentliche Marke ist Battenmark. Historische technische Kennungen bleiben absichtlich bestehen und sind eine Kompatibilitätsfläche, keine zweite Marke: AgentCadService, agentcad_schema_version, die Umgebungsvariablen AGENTCAD_*, die Binärdateien agentcad / agentcad-mcp. Die interne Dienstversion 0.5.6 weicht absichtlich vom Release-Tag ab; siehe docs/VERSIONING.md.

Beiträge & Sicherheit

Siehe CONTRIBUTING.md und SECURITY.md. Verhaltenskodex: CODE_OF_CONDUCT.md.

Lizenz

Apache-2.0 für dieses Repository. FreeCAD/OpenCascade werden als separater LGPL-Prozess aufgerufen (die Worker-Skripte laufen in FreeCADCmd). Siehe LICENSE, NOTICE und THIRD_PARTY_NOTICES.md.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI to directly call FreeCAD for 3D modeling via the MCP protocol, providing 39 modeling tools including primitive creation, boolean operations, transformations, and export.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agent-driven CAD design through deterministic source files (.kcad.ts), including model evaluation, validation, and export to STEP/STL via MCP tools for review and introspection.
    121 npm
    29
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables engineering agents to perform parametric CAD operations through a controlled MCP gateway built on FreeCAD, with transactions, diagnostics, and reproducible verification.
    2
    GNU Lesser General Public v2.1 only