Skip to main content
Glama

Battenmark

Infraestructura CAD abierta y neutral respecto al backend para agentes de IA y software.

CI License schema MCP

Battenmark ofrece una interfaz tipada y neutral respecto al backend para crear, editar, inspeccionar, validar y exportar geometría CAD autoritativa a través de backends CAD intercambiables. Quien la invoca solicita create_hole, nunca PartDesign::Hole. Ningún transporte posee el modelo; lo hace un único servicio canónico.

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 — kernel B-rep autoritativo (trabajador headless de líneas JSON)

  • JSCAD — backend de vista previa/envolvente en el mismo proceso (no es la fuente de verdad)

Inicio rápido

Requisitos previos: Node.js ≥ 20 y npm. FreeCAD es opcional para el servicio principal y solo se requiere para el backend B-rep autoritativo.

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

Backend de FreeCAD

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

Orden de detección: $AGENTCAD_FREECAD_CMD → paquetes de macOS FreeCAD.app → Homebrew → AppImage de Linux extraído → PATH. Consulta docs/MACOS.md y docs/LINUX.md.

Transportes

Transporte

Punto de entrada

MCP stdio

npx agentcad-mcp

HTTP

npx agentcad serve --port 8787 y luego /api/v1/... (token Bearer mediante AGENTCAD_API_TOKEN)

CLI

npx agentcad --help

Python

python/agentcad — consulta examples

Ejemplo de cliente Python:

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

Modelo golden de prueba de humo

La prueba de humo canónica de lanzamiento es una caja de 80 × 50 × 12 mm = 48 000 mm³, verificada mediante JSCAD, FreeCAD, HTTP, CLI, MCP y el cliente Python (test:transport-parity). No cambies este fixture a la ligera.

Capacidades

  • Operaciones CADe tipadas y neutrales el backend con esquema explícito (agentcad_schema_version: 2)

  • B-rep autoritativo FreeCAD/OpenCascade; vista previa JSCAD

  • Expresiones de parámetros escalares y evaluación de dependencias

  • Selectores semánticos de caras/bordes (top_perimeter, …) que se re-resuelven tras los cambios

  • Referencias de geometría persistentes (gref) con errores explícitos de pérdida o ambigüedad

  • Orificios pasantes, ciegos, con avellanado cilíndrico y avellanado cónico

  • Redondeos y chaflanes · patrones lineales y rectangulares

  • Intercambio STEP / FCStd / STL · vistas previas PNG en cuatro vistas

  • Registro dinámico de backends con descubrimiento de capacidades por backend

  • Un único worker de FreeCAD serializado con recuperación ante kill o reinicio

Estado de la plataforma

Platform

Estado

macOS Apple Silicon

Nivel 1 — verificado en hardware (arm64, macOS 26.6.2, FreeCAD 1.1.3)

Linux x86_64

headless / validado para desarrollo (FreeCAD 1.0.2 AppImage)

macOS Intel

sin verificar

Windows

no compatible / sin verificar

Limitaciones conocidas

Este es software alpha pre-1.0; las the APIs pueden cambiar.

  • Aún no hay ensamblajes, aceros no restricciones de ensamblado

  • Aún no hay patrones circulares

  • Las roscas son datos metadatos decorativos, no sólidos helicoidales

  • Importar STEP es una importación geométrica, no una reconstrucción paramétrica automática

  • Los documentos FCStd nativos conservan los shape de las características históricas de PartDesign; Battenmark mide la Punta final del Body (sumar los sólidos históricos produciría doble contación)

  • Un único worker de FreeCAD serializado (sin pooling)

  • El render en vista previa es JSCAD, no línea oculta de OCC

  • El nombrado topológico completo no está resuelto; el gref persistente lo mitiga

Lista completa: docs/LIMITATIONS.md.

Documentación

Tema

Doc

Arquitectura y fundamentos

docs/ARCHITECTURE.md · docs/FOUNDATION.md

Contrato de operación y esquema de

docs/CONTRACT.md · docs/VERSIONING.md

Backends y motores

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

Transportes

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

Servicio y persistencia

docs/SERVICE.md · docs/AUTH.md

Importa / exportación y vista previa

docs/IMPORT.md · docs/PREVIEW.md

Plataformas y validación

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

Identificadores de compatibilidad

La branding pública es Battenmark. Los identificadores históricos de ingeniería se mantienen a propósito y son una superficie de compatibilidad ", no, not a second brand: AgentCadService, agentcad_schema_version, variables de entorno AGENTCAD_*, los binarios agentcad / agentcad-mcp. La versión interna del servicio 0.5.6 difiere intencionalmente de la etiqueta de la release; consultar docs/VERSIONING.md.

Contribución y seguridad

Ver CONTRIBUTING.md y SECURITY.md. Consulta el Código de conducta: CODE_OF_CONDUCT.md.

Licencia

Apache-2.0 para este repositorio. FreeCAD/OpenCASCADE se invoca como un procesoLGPL separado (los scripts del worker run inside FreeCADCmd). Consultar LICENSE, NOTICE y 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