Battenmark
Battenmark
Открытая, нейтральная к бэкенду CAD-инфраструктура для ИИ-агентов и программного обеспечения.
Battenmark предоставляет типизированный, нейтральный к бэкенду интерфейс для создания, редактирования, проверки, валидации и экспорта эталонной CAD-геометрии на взаимозаменяемых CAD-бэкендах. Вызывающий код запрашивает create_hole, но никогда — PartDesign::Hole. Моделью не владеет ни один транспорт; её владельцем является один канонический сервис.
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 — эталонное ядро B-rep (headless JSON-lines воркер)
JSCAD — внутрипроцессный бэкенд предпросмотра/оболочки (не источник истины)
Быстрый старт
Требования: Node.js ≥ 20 и npm. FreeCAD необязателен для основного сервиса и требуется только для эталонного B-rep бэкенда.
npm install
npx tsc --noEmit # type check
npm test # fast kernel-free suites (parametric, selectors, registry)Бэкенд 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Порядок обнаружения: $AGENTCAD_FREECAD_CMD → пакеты macOS FreeCAD.app → Homebrew → извлечённый Linux AppImage → PATH. См. docs/MACOS.md и docs/LINUX.md.
Транспорты
Транспорт | Точка входа |
MCP stdio |
|
HTTP |
|
CLI |
|
Python |
|
Пример использования 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
Эталонная smoke-модель
Канонический релизный smoke-тест — это объединение 80 × 50 × 12 мм = 48 000 мм³, проверяемый через JSCAD, FreeCAD, HTTP, CLI, MCP и Python-клиент (test:transport-parity). Не меняйте этот фикстур без веской причины.
Возможности
Типизированные операции, нейтральные к бэкенду, с явной схемой (
agentcad_schema_version: 2)Эталонный B-rep FreeCAD/OpenCascade; предпросмотр JSCAD
Скалярные параметрические выражения и вычисление зависимостей
Семантические селекторы граней/рёбер (
top_premeter, …), которые переинициализируются после правокПостоянные геометрические ссылки (
gref) с явными ошибками «потеряно/неоднозначно»Сквозные / закованные / с цековкой / с зенковкой отверстия
Скругления и фаски · линейные и прямоугольные массивы
Обмен STEP / FCStd / STL · предпросмотр PNG в четырёх проекциях
Динамический реестр бэкендов с определением возможностей для каждого бэкенда
Один последовательный воркер FreeCAD с восстановлением через kill/restart
Статус платформ
Платформа | Статус |
macOS Apple Silicon | Tier 1 — подтверждено на реальном оборудовании (arm64, macOS 26.6.2, FreeCAD 1.1.3) |
Linux x86_64 | headless / валидировано для разработки (FreeCAD 1.0.2 AppImage) |
macOS Intel | не проверено |
Windows | не поддерживается / не проверено |
Известные ограничения
Это альфа-ПО до версии 1.0; API могут меняться.
Сборки, сопряжения и ограничения сборки отсутствуют
Нет круговых масси [no circular patterns]
Резьбы — это косметические метаданные, а не спиральные тела
Импортированный STEP — это только импорт геометрии, а не автоматическая её реконструкция
Нативные FCStd-документы сохраняют исторические формы PartDesign; Battenmark измеряет итоговый Tip Body (суммирование исторических тел даёт двойной счёт)
Один последовательный воркер FreeCAD (плохие пулы)
Предпросмотр рендерится в JSCAD, а не в режиме скрытых линий OCC
Полное топологическое именование не решено; постоянные
grefсмягчают эту проблему
Полный список: docs/LIMITATIONS.md.
Документация
Тема | Документация |
Архитектура и основы | |
Контракт операций и схема | |
Бэкенды и ядра | docs/BACKENDS.md · docs/FREECAD.md · docs/JSCAD.md · docs/KERNEL.md |
Транспорты | docs/MCP.md · docs/HTTP.md · docs/CLI.md · docs/PYTHON.md · docs/CLIENTS.md |
Сервис и хранение данных | |
Импорт / экспорт и предпросмотр | |
Платформы и валидация |
Идентификаторы совместимости
Публичный бренд — Batternmark. Исторические инженерные идентификаторы сохранены намеренно и представляют собой интерфейс совместимости, а не второй бренд: AgentCadService, agentcad_schema_version, переменные окружения AGENTCAD_*, бинарные файлы agentcad / agentcad-mcp. Внутренняя версия сервиса 0.5.6 намеренно отличается от тега релиза; см. docs/VERSIONING.md.
Участие в разработке и безопасность
См. CONTRIBUTING.md и SECURITY.md. Кодекс поведения: CODE_OF_CONDUCT.md.
Лицензия
Apache-2.0 для этого репозитория. FreeCAD/OpenCascade запускаются как отдельный процесс под лицензией LGPL (скрипты воркера выполняются внутри FreeCADCmd). См. LICENSE, NOTICE и 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