Integrations
Enables LLMs to interact with Blender through a unified TypeScript interface, allowing for animation creation, keyframe manipulation, and other 3D operations with automatically generated native plugins.
Provides C++ code generation for native implementations in 3D applications like Unreal Engine, translating the abstract tool definitions into platform-specific code.
Generates Python implementations for 3D software like Blender, enabling animation control, object manipulation, and other 3D operations through native code.
3D МКП
Обзор
3D-MCP — это универсальная реализация Model Context Protocol для 3D-программного обеспечения. Она создает унифицированный интерфейс TypeScript для LLM, позволяющий им взаимодействовать с Blender, Maya, Unreal Engine и другими 3D-приложениями через единый согласованный API.
Основная философия и проектные решения
3D-MCP построен на четырех взаимосвязанных архитектурных принципах, которые вместе создают единую систему для создания 3D-контента:
- Проектирование Entity-First : четко определенные сущности предметной области формируют основу всех операций, обеспечивая единообразное моделирование данных на разных платформах.
- Типобезопасные CRUD-операции : автоматическая генерация операций создания, чтения, обновления, удаления с полной проверкой типов.
- Уровень атомарных операций : минимальный набор платформенно-специфичных реализаций, которые обрабатывают основные операции.
- Компонуемая архитектура инструментов : сложная функциональность, созданная путем объединения атомарных операций платформенно-независимым способом.
Такая архитектура создает инверсию зависимостей, при которой детали реализации, специфичные для платформы, изолируются до атомарных операций, в то время как большая часть кодовой базы остается независимой от платформы.
Почему именно эти дизайнерские решения?
Проект Entity-First был выбран по следующим причинам:
- 3D-приложения используют разные объектные модели, но общие основные концепции (сетки, материалы, анимация)
- Схемы Zod предоставляют единый источник истины для проверки, типизации и документирования.
- Строгая типизация выявляет ошибки во время компиляции, а не во время выполнения
- Богатые метаданные позволяют ИИ лучше понимать объекты домена
Операции CRUD как основа, потому что:
- Они четко соответствуют тому, что 3D-приложениям необходимо делать с сущностями.
- Стандартизированные шаблоны снижают когнитивные издержки
- Автоматическая генерация устраняет повторяющийся код с помощью
createCrudOperations
- Каждая сущность автоматически получает одинаковый согласованный интерфейс.
Разделение атомарного и составного инструмента по следующим причинам:
- Только атомарные инструменты требуют реализации на конкретной платформе (~20% кодовой базы)
- Составные инструменты работают на всех платформах без изменений (~80% кодовой базы)
- Новым платформам необходимо реализовать только атомарные операции, чтобы получить всю функциональность
- Поддерживаемая архитектура с четким разделением задач
Техническая Архитектура
1. Архитектура CRUD, ориентированная на сущности
Основой системы является богатая система типов доменных сущностей, которая генерирует операции CRUD:
Схемы сущностей обеспечивают:
- Проверка схемы : проверка параметров во время выполнения с подробными сообщениями об ошибках
- Информация о типе : Полные типы TypeScript для помощи IDE
- Документация : Самодокументируемый API с описаниями
- Генерация кода : шаблоны для платформенно-специфических реализаций
Схема архитектуры сущности
2. Архитектура составного инструмента
Система создает четкое разделение между атомарными и составными операциями:
Такая архитектура обеспечивает ряд технических преимуществ:
- Атомарные операции (~20% системы):
- Напрямую взаимодействуйте с API платформы
- Нужны реализации для конкретных платформ
- Сосредоточьтесь на операциях с отдельными сущностями (создание, чтение, обновление, удаление)
- Форма минимальной реализации, необходимой для новых платформ
- Сложные операции (~80% системы):
- Построен полностью из атомных операций
- Никакого платформенно-специфического кода
- Реализовать концепции доменов более высокого уровня
- Работает на любой платформе без модификации
Поток композиции инструмента
Ключевые файлы для архитектуры составного инструмента:
- composited.ts: Инструменты моделирования составных частей
- composited.ts: Инструменты для создания составной анимации
- composited.ts: Инструменты для комбинированного такелажа
3. Конвейер генерации кода
Система автоматически генерирует реализации для конкретных платформ из определений TypeScript:
Ключевые аспекты системы генерации:
- Извлечение сущностей : анализирует схемы Zod для понимания структуры сущностей.
- Сопоставление параметров : преобразует типы TypeScript в собственные типы платформы.
- Генерация проверки : создает проверку параметров на целевых языках.
- Шаблоны реализации : предоставляют шаблоны кода, специфичные для платформы.
Система кодогенерации реализована в:
- plugin-codegen.ts : Основной скрипт генерации кода
- extract-schemas.ts : извлекает схемы Zod из файлов TypeScript во временные файлы JSON.
4. Организация домена
Система организована по доменам, которые отражают рабочие процессы создания 3D-контента:
- Ядро : базовые сущности и операции, используемые во всех доменах.
- Моделирование : создание сетки, редактирование и топологические операции
- Анимация : ключевые кадры, кривые, клипы и управление анимацией
- Оснастка : скелетные системы, элементы управления и деформации
- Рендеринг : материалы, освещение и настройки рендеринга
Каждый домен следует одной и той же организационной схеме:
entity.ts
: Определения сущностей, специфичные для доменаatomic.ts
: Атомарные операции для доменных сущностейcompounded.ts
: высокоуровневые операции, созданные на основе атомарных инструментов
Диаграмма структуры домена
5. Архитектура CRUD, ориентированная на сущности
Система реализует сложный подход, ориентированный на сущности, где:
- Сущности как модели доменов : каждый домен (моделирование, анимация, оснастка) определяет свои основные сущности, которые представляют его фундаментальные концепции. Они реализованы как схемы Zod с богатой информацией о типах.
- CRUD как основа : каждая сущность автоматически получает полный набор операций CRUD (создание, чтение, обновление, удаление) через утилиту
createCrudOperations
:
- Повторное использование и наследование сущностей : основные сущности, определенные в
core/entity.ts
расширяются сущностями, специфичными для домена, что способствует повторному использованию кода и единообразному проектированию во всех доменах. - Архитектура, вдохновленная DDD : система следует принципам проектирования на основе предметной области, организуя код вокруг сущностей и агрегатов предметной области, а не технических проблем.
Такая архитектура обеспечивает несколько ключевых преимуществ:
- Согласованность : все сущности имеют одинаковые шаблоны для основных операций.
- Сокращенный шаблон : операции CRUD генерируются автоматически
- Четкая организация : инструменты организованы вокруг доменных сущностей.
- Разделение задач : каждый домен управляет своими собственными сущностями, используя при этом общие шаблоны.
Сочетание расширенных моделей сущностей с автоматическими операциями CRUD создает надежную основу, которая упрощает разработку, сохраняя при этом гибкость для операций, специфичных для предметной области.
Начиная
Рабочий процесс разработки
- Определение сущностей : создание или расширение схем сущностей в
src/tool/<domain>/entity.ts
- Генерация CRUD : использование
createCrudOperations
для генерации атомарных операций. - Создание составных инструментов : создание высокоуровневых операций из атомарных инструментов.
- Генерация плагинов : запуск генератора кода для создания реализаций для конкретных платформ.
Внося вклад
Архитектурные решения 3D-MCP делают его уникально расширяемым:
- Добавить новые сущности : определить новые сущности и автоматически получить операции CRUD
- Добавить новые составные инструменты : объединить существующие атомарные операции для создания новых функций.
- Добавить новые платформы : реализовать интерфейсы атомарных инструментов в новом плагине.
Более подробную информацию о том, как внести свой вклад, можно найти в нашем руководстве по внесению вклада.
3D-MCP: единый API для управления всем 3D-программным обеспечением
You must be authenticated.
Tools
Универсальная реализация протокола контекста модели, которая служит семантическим слоем между LLM и программным обеспечением для 3D-творчества, предоставляя стандартизированный интерфейс для взаимодействия с различными инструментами создания цифрового контента через унифицированный API.
- Обзор
- Основная философия и проектные решения
- Почему именно эти дизайнерские решения?
- Техническая Архитектура
- Начиная
- Рабочий процесс разработки
- Внося вклад
Related Resources
Related MCP Servers
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -14PythonApache 2.0
- -securityFlicense-qualityA Model Context Protocol server that enables LLMs to create, modify, and manipulate Excalidraw diagrams through a structured API.Last updated -7JavaScript
- -securityFlicense-qualityA simple application demonstrating Model Context Protocol (MCP) integration with FastAPI and Streamlit, allowing users to interact with LLMs through a clean interface.Last updated -3Python
- -securityFlicense-qualityA Model Context Protocol server that connects AI tools and LLMs to Figma designs, enabling them to extract design data, analyze design systems, and generate development documentation.Last updated -TypeScript