🚀 3D-MCP架构概述
3D-MCP是一个创新项目,致力于通过单一API统一各类3D软件。它采用模块化、分层的设计方式,让系统的扩展和维护高效且有序。
🚀 快速开始
安装依赖
bun install
运行示例
bun run examples/hello-world.ts
编写插件
- 创建新插件:
npm init -y my-plugin
- 实现适配器逻辑。
- 打包并分发。
✨ 主要特性
- 模块化设计:将系统划分为多个独立组件,每个组件负责特定功能域,提升了系统可维护性,使跨平台开发更便捷。
- 分层架构:采用四层架构,每层职责明确,涵盖表示层、服务层、持久化层和适配器层。
- 以实体为中心的CRUD架构:每个域有独特实体模型,通过Zod schema定义实体并自动生成CRUD操作,提高开发效率。
📚 详细文档
总体架构
3D-MCP的核心理念是把系统分割成多个独立组件,各组件负责特定功能域。这种设计不仅增强了系统可维护性,还让跨平台开发变得更简单。
核心组件
- 实体定义:所有功能域共享的基础实体由
core/entity.ts统一管理。
- 原子操作:针对具体功能域的原子操作分别存于各自文件(如
atomic.ts)。
- 复合操作生成器:通过组合原子操作,自动生成高层复合工具,位于
compounded.ts文件。
功能模块
- 核心模块:提供所有域共享的基础实体和工具。
- 建模模块:处理网格创建、编辑及拓扑操作。
- 动画模块:管理关键帧、曲线、片段等动画相关功能。
- 绑定模块:负责骨骼系统、控制层级及变形操作。
- 渲染模块:配置材质、光照及渲染设置。
分层设计
3D-MCP采用四层架构,每层职责清晰:
- 表示层:处理数据的序列化与反序列化,保证不同平台间的数据兼容性。
- 服务层:封装核心业务逻辑,提供统一API接口。
- 持久化层:实现数据存储与检索功能,支持多种存储方案。
- 适配器层:负责具体3D软件的集成工作,通过插件形式扩展系统。
域组织
各功能模块按特定工作流程组织:
核心组件
- 基础实体:所有域共用的基础数据结构定义在
core/entity.ts。
- 通用工具:提供跨域使用的共享功能和 utilities,位于
utils.ts。
建模域
- 实体定义:包含网格、顶点、面等核心建模概念的定义。
- 原子操作:如网格创建、拓扑修改等基本操作。
- 复合工具:提供高级建模功能,例如布尔运算、细分曲面等。
动画域
- 实体定义:涵盖关键帧、动画曲线、片段等动画相关概念。
- 原子操作:如关键帧插入、曲线调整等基础动画控制。
- 复合工具:支持复杂的动画逻辑编排,例如层叠动画、条件判断等。
绑定域
- 实体定义:包含骨骼、IK链、控制层级等绑定相关概念。
- 原子操作:如关节创建、约束添加等基本绑定操作。
- 复合工具:提供高级绑定功能,比如自动权重绘制、变形目标管理等。
渲染域
- 实体定义:涉及相机、光源、渲染设置等内容。
- 原子操作:如材质创建、光照配置等基础渲染控制。
- 复合工具:支持复杂的渲染逻辑编排,例如全局 illumination 设置、后处理效果叠加等。
实体为中心的CRUD架构
3D-MCP以实体为中心进行设计,每个域有独特实体模型。通过Zod schema定义这些实体,并自动生成CRUD(创建、读取、更新、删除)操作,极大提升了开发效率。
核心组件
- 基础实体:由
core/entity.ts统一管理。
- 共享功能:提供跨域使用的公用功能和 utilities。
🔗 文档扩展
如需进一步了解3D-MCP的实现细节,请参考以下文档:
通过以上设计,3D-MCP不仅实现了各功能域的有效隔离,还确保了系统的高度可扩展性和维护性。这种模块化的设计思路使得开发者能够轻松地添加新功能并进行定制化开发。