Battenmark
Battenmark
Infraestructura CAD abierta y neutral respecto al backend para agentes de IA y software.
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-endOrden 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 |
|
HTTP |
|
CLI |
|
Python |
|
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"]) # 48000Related 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 cambiosReferencias de geometría persistentes (
gref) con errores explícitos de pérdida o ambigüedadOrificios 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
grefpersistente lo mitiga
Lista completa: docs/LIMITATIONS.md.
Documentación
Tema | Doc |
Arquitectura y fundamentos | |
Contrato de operación y esquema de | |
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 | |
Importa / exportación y vista previa | |
Plataformas y validación |
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.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Create, inspect, validate, and save editable 3D building scenes with Pascal's hosted MCP server.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.MIT
- AlicenseNot gradedqualityAmaintenanceEnables 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 npm29MIT
- AlicenseNot gradedqualityBmaintenanceEnables engineering agents to perform parametric CAD operations through a controlled MCP gateway built on FreeCAD, with transactions, diagnostics, and reproducible verification.2GNU Lesser General Public v2.1 only