☰
Antigravity+Blender MCP:自然语言驱动智慧仓储数字孪生建模实践
2026/11/3 8:54:06 网站建设 项目流程

1. 这个项目到底在做什么:三个关键词串起一条流水线

先说结论:Antigravity + Blender MCP 这条组合,核心是把"AI代理"接到"3D建模软件"上,让 AI 不只是陪你聊天,而是真的动手在 Blender 里把模型建出来。我这次用它做的是一个智慧仓储数字孪生的初版场景——有仓库建筑、货架阵列、托盘和 AGV 路径,全程用自然语言驱动,基本没手动捏模型。

先拆一下标题里的三个词,搞清楚它们各管哪一段。

MCP 是 Model Context Protocol,中文一般叫模型上下文协议。它解决的问题很直白:AI 模型默认只能看文字,碰不到你的软件、文件、数据库。MCP 就是给 AI 开了一堆"接口",让它能调用外部工具。你可以把它理解成 AI 世界的 USB-C 接口——以前每个外设都要专属线,现在统一成一个标准口,插上就能用。Blender MCP 就是社区里有人写的、专门让 AI 控制 Blender 的 MCP 服务端,AI 通过它能新建物体、改材质、摆位置、加曲线,几乎覆盖建模常用操作。

Antigravity 是一个 AI Agent 平台,也就是能执行长任务的智能代理。它跟普通聊天机器人最大的区别是:你给它一个目标,它能自己拆步骤、调工具、跑代码、检查结果,出错还能自己改。Blender MCP 是它的工具之一,你可以把它理解成 AI 的"手"。

那数字孪生在这一套里是什么?数字孪生说白了就是在数字世界里做一个物理对象的镜像副本,仓库的数字孪生就是把真实的库房布局、货架、设备、作业动线在三维场景里还原出来,用于展示、仿真、调度验证。以前做这套东西,建模是最大瓶颈——一个像样的仓储场景,用传统建模方式要按天算,而且大多数业务人员根本不会 Blender。用了 AI + MCP 之后,门槛被压到很低:你只要能把需求说清楚,AI 就能把场景搭出来。

所以这个项目真正解决的是"从自然语言到三维场景"的效率问题。适合谁?三类人:一是做数字孪生项目但建模人手不够的工程师,二是想用 AI 提升 3D 工作流的设计师,三是刚接触 MCP 想找一个完整体验场景的开发者。这篇是上篇,重心放在环境搭建、链路打通和仓储核心场景建模上,交互和前端展示留到下篇。

2. 环境准备与首次连接:让 Antigravity 能指挥 Blender

2.1 先装 Blender 并确认 MCP 服务端能跑起来

不管 MCP 协议多热闹,最终落点还是在 Blender 上。我用的是 Blender 4.x LTS 版本,插件兼容性最稳。安装没什么好说的,官网下对应系统版本,装完打开,进 Preferences -> Plugins 看一眼,确认 Blender MCP 的插件已经启用。

这里有个大多数教程不会细说的关键点:Blender MCP 是分两端的,一端是 Blender 里的插件(负责接收指令并执行),另一端是 MCP Server(负责把 AI 的请求翻译成 Blender 能懂的操作)。你在 Antigravity 里配的是 MCP Server 的地址,但 Blender 本身必须打开且插件处于启用状态,这条链路才通。

我推荐用 uvx 方式启动 MCP Server,命令很简单:

uvx run blender-mcp

如果你机器上还没装 uv,先装 uv 再执行上面这行。启动后终端会显示类似MCP server listening on http://127.0.0.1:8000的日志,这个地址就是后面要填给 Antigravity 的。注意,如果你用源码方式启动,要留意启动目录,别让 bpy 模块找不到,这也是新手最常卡住的地方。

窗口管理器上,我建议 Blender 窗口和终端窗口各占屏幕一半,启动 MCP Server 后切回 Blender,看一眼右上角插件面板是否有端口监听提示。没有提示也不用慌,只要终端没报错、端口能访问,链路就是通的。

2.2 在 Antigravity 里添加 MCP Server

Antigravity 的项目工作区里有 MCP 配置入口,一般在设置或者 Agent 相关的面板里能找到 "Add MCP Server" 按钮。选远程服务器类型,填刚刚启动日志里的地址,保存即可。

填地址时注意三点:一是协议前缀,本地是 http,千万不要手误填成 https;二是端口要一致,默认端口一般是 8000,但你本地如果多个服务在跑,端口可能被占用,MCP Server 启动日志会显示实际端口,以日志为准;三是地址用 127.0.0.1 还是 localhost,建议统一用 127.0.0.1,有些环境下 localhost 会解析到 IPv6 导致连接失败。

这里我踩过一个挺隐蔽的坑:Antigravity 里配置 MCP Server 后,不是立刻生效的。你要么开一个新的 Agent 会话,要么在会话里手动执行一次重新加载工具的操作,否则 AI 还是看不到新工具。我一开始配完直接继续聊天,AI 一直说"我没有这个工具",排查半天才发现是会话缓存问题。

2.3 首次连通性验证:说一句话,建一个立方体

链路通了没,别急着搞复杂场景,先做连通性验证。给 AI 下一句最简单的话:"在 Blender 中新建一个默认立方体,并把它移动到坐标 (0, 0, 1)。"

如果一切正常,你会看到 Blender 视口里真的出现了一个立方体,而且位置变了。这时候打开 Blender Outliner,能确认物体名称和坐标都符合预期。这一步至关重要,它证明了三件事:Antigravity 的 Agent 调用 MCP 正常、MCP Server 能驱动 Blender 插件、插件能执行建模操作。三板斧缺一不可,哪一环断了,后面全白搭。

我强烈建议你在这步多试几个基础指令,比如改材质颜色、旋转 45 度、复制一个物体。目的不只是验证,更是让 AI 在上下文里积累"它控制的是哪个 Blender 实例"的感知。多轮对话后,AI 对场景的把握会明显更精准。

2.4 连接参数速查表

把这次配置涉及的关键参数整理成一张表,方便你复现时对照检查。

参数推荐值说明
Blender 版本4.x LTS3.x 也可以但插件兼容性差一些
MCP Server 类型remote (SSE)本地服务走 SSE 协议
Server 地址http://127.0.0.1:8000以实际启动日志为准
Antigravity 会话新开会话配置 MCP 后需重开会话生效
验证指令新建立方体并移动用最简指令做链路验证

这些参数回头排查问题都要用到,建议你实际操作时顺手记一下终端日志里显示的端口,免得下次忘了。

3. 仓储数字孪生的核心建模实操

3.1 先用文本把仓库布局"说"出来

连通之后,第一件正事是搭仓库主体。传统做法是拉方块、挤面、倒角,一套流程下来小半天没了。MCP 模式下,你只需要把需求描述得足够具体,AI 会用 Blender Python API 把模型建出来。

我给的指令是这样分层写的:

请在 Blender 中创建一个智慧仓库建筑模型:长 60 米,宽 30 米,高 8 米。用立方体创建建筑主体,命名为 warehouse_main;在正面开一门一窗,门宽 4 米高 5 米,窗宽 2 米高 1.5 米;添加地面平面并赋予浅灰色材质。

这里有个关键:不是一句话,而是按"主体 -> 开口 -> 细节"拆分。AI Agent 执行长指令时,步骤拆得越清晰,出错的概率越低。它拿到指令后会先计算立方体的坐标范围,然后通过布尔运算做门洞窗洞,再设置材质。整个过程在 Blender 里会一步步呈现,你能实时看到建筑从无到有。

为什么建议尺寸给整数?因为 AI Agent 用的还是代码逻辑,整数可以避免坐标系里的浮点误差导致的面重叠、破面等问题。60x30x8 这个规格也不是拍脑袋,它是比较标准的单层仓库尺寸,货架区 40 米、通道 8 米、办公区 12 米,后面摆放货架时比例容易协调。

做完主体后,别忘了让 AI 设置单位:公制,米。Blender 默认单位有的版本是米、有的兼容设置比较混乱,单位不统一会直接导致后面生成货架尺寸错乱——你想要的货架高 5 米,结果建出来 5 个 Blender Unit,比例全歪了。

3.2 生成货架阵列:理解 AI 建模的"参数化思维"

仓储场景里货架是绝对主角。手动摆货架最痛苦的不是建一个,而是建一百个还要整齐。MCP 方案下,AI 本质是写了个循环代码来完成阵列。

我的指令:

在仓库内创建双深位货架阵列:共 5 排,每排 20 组货架。货架尺寸:长 1.2 米,深 1.1 米,高 5 米,每组货架 5 层隔板。排间距 3 米,组间距 0.1 米。货架主体用灰蓝色金属材质,隔板用深灰色。每个货架组命名规则:rack_row_col。

这里能明显感受到 AI 建模和手动建模的差异:你描述的是"参数",它生成的是"实例"。AI 会先创建一个货架组(Group),然后写一个嵌套循环,外层排、内层列,把每个实例放到对应坐标,再按命名规则改名。

我建议你特意要求 AI 把货架做成 Group 而不是散落的独立物体,原因有二:一是后面你要整体移动货架区或做碰撞检测,一个 Group 方便得多;二是 Antigravity 执行中如果需要微调,比如"把第 3 排整体向右移 0.5 米",对 Group 操作远比对散件操作可靠。

这个阶段最容易出的问题方向是朝向。仓库货架的开口方向是有讲究的,双深位货架,通道两侧的货架应该面对面。如果你的指令没提朝向,AI 默认全朝一个方向,后面加 AGV 路径时会发现叉车"没法作业"。保险做法是在指令里写明:"偶数排货架旋转 180 度,与相邻排形成对向布局。"

3.3 托盘与物资:小物件批量生成技巧

货架建好了,不能空着,得有托盘和物资箱子,否则数字孪生没有"内容"。

托盘我建议用标准尺寸:长 1.2 米,宽 1 米,高 0.15 米。这个尺寸是物流行业最通用的 ISO 托盘标准,数字孪生场景里贴近真实,后续接仿真数据时尺寸对得上。

直接复制货架的逻辑,让 AI 生成托盘阵列:

在每个货架的每个隔板上放置 1 个托盘,托盘尺寸 1.2 x 1 x 0.15 米。托盘用棕色木质材质。如果隔板长度放不下,自动居中放置。命名为 pallet_row_col_level。

这里有个细节值得展开:当物品种类多、数量大时,AI 的 token 消耗和计算能力会吃紧,一次全生成容易超时或卡死。我实际测试下来,100 个以上的实例拆分两批生成更稳。另外,"自动居中放置"这句话很值得加——AI 在编写生成逻辑时,如果不加这个约束,它可能直接按隔板左下角坐标放置托盘,看起来就是歪的。这个约束其实是在提醒 AI 把重心对齐到隔板中心。

物资箱子可以按场景需要做几种规格:标准周转箱 0.6 x 0.4 x 0.3 米,大号料箱 1 x 0.8 x 0.6 米。给箱子做三种颜色区分品类:蓝色半成品、绿色成品、黄色待检。这一步不光是好看,数字孪生里颜色是信息分层的手段,后面接业务数据时,颜色可以直接映射库存状态。

3.4 AGV 路径与动线:让场景"活"起来

静态模型堆完,仓库看起来是个死场景。数字孪生的核心在于"动",AGV 路径是首先要铺的。

Blender 里做路径最合适的是 Curve(曲线)。指令可以这样下:

在仓库地面上创建一条 AGV 行驶路径:用贝塞尔曲线,起点在收货区坐标(-25, -10, 0.02),沿着主通道延伸,经过货架区两侧,终点在发货区(25, 10, 0.02)。路径宽度 2 米,添加黄色材质。

这里给坐标时,我建议你先让 AI 打印当前货架区的包围盒坐标,再基于这个坐标去设计路径。否则你凭感觉给坐标,路径很可能从货架中间穿过去。打印包围盒可以这样说:"请计算仓库内所有货架的最小和最大坐标,并在终端输出。"

实体路径做出来后,下篇你可以直接用 Blender 的烘焙动画或者 MCP 的帧控制命令,让一个简化的 AGV 小车沿路径运动。但要注意,贝塞尔曲线的方向决定了 AGV 的朝向,如果小车跑起来是倒着走的,说明曲线的起始端点反了,这是 Blender 曲线最经典的坑。

另外,路径的 z 轴坐标我特意写了 0.02,这个也是经验之谈:如果路径和地面平面完全同高(z=0),渲染时容易出现 z-fighting 闪烁,路径线条会被地面"吃掉"。抬高 0.02 米视觉上看不出来,但能避免大量渲染问题。

3.5 导出与复用:Blender 如何导出 JSON 给前端

仓储数字孪生最终大概率要上 Web 展示。Blender 里建完场景,导出问题必须提前想。

首选方案是 glTF(.glb 格式),这是目前 three.js 支持最好的格式,PBR 材质、动画、骨骼都能保留。操作指令:

将当前场景导出为 glb 格式,保存到项目目录,文件名 warehouse.glb。导出时选择仅选中项,开启"应用修改器"和"保留层级关系"。

第二个问题就是热词里有人搜的"Blender 如何导出 JSON"。这个得分清两种情况:如果你要的是模型几何数据,glb 本身就是最好的容器,不用硬导 JSON;如果你要的是业务数据——哪个货架叫什么、在哪个坐标、放了多少托盘——这才是 JSON 的用武之地。我推荐让 AI 写一段 Python 脚本,遍历场景中所有以 rack 或 pallet 开头的物体,把名称、坐标、尺寸和自定义属性抽出来,输出成 JSON:

import bpy, json data = [] for obj in bpy.data.objects: if obj.name.startswith("rack") or obj.name.startswith("pallet"): data.append({ "name": obj.name, "type": "rack" if obj.name.startswith("rack") else "pallet", "location": [round(v, 3) for v in obj.location[:]], "dimensions": [round(v, 3) for v in obj.dimensions[:]] }) with open("warehouse_data.json", "w") as f: json.dump(data, f, indent=2, ensure_ascii=False) print("exported", len(data), "objects")

这段脚本你可以让 AI 直接执行,也可以自己手动跑。配合 glb 模型文件,前端 three.js 加载 glb 拿到几何,加载 JSON 拿到业务数据,两者通过物体名称关联,数字孪生的"体"和"用"就分开了。

顺带提一句热词里有人搜"threejs 3D 好写吗"。如果你已经熟练 Blender 建模,three.js 的学习曲线主要卡在坐标系和材质系统上,但配合 glb 这种成熟格式,Web 展示的门槛比想象中低。下篇我会专门写前端加载和数据联动,这里先不展开。

4. 常见问题与排查技巧实录

4.1 高频报错速查表

这半个月我反复配置和调试,遇到的典型问题基本都集中在下面这张表里。你按表排查,大概率能省两个小时。

报错/现象常见原因处理方式
connect timeoutMCP Server 没启动或端口错误确认终端日志里的端口,检查地址前缀 http
tool not foundAntigravity 会话未重新加载开新会话,或手动刷新 MCP 工具列表
bpy module not foundBlender 插件环境异常确认插件已启用,重启 Blender 后再启动 Server
eligibility check failedAntigravity 账号资格受限检查账号状态,关注官方资格政策更新
agent execution terminated due to error单次指令过于复杂拆小任务,一次只做一件事
路径线条闪烁或被地面遮挡z 轴共面路径抬升 0.02 米
货架朝向不统一指令未说明朝向补一条旋转指令,按规则统一旋转
模型比例不协调Blender 单位未设公制统一单位为米,重新生成

热词里有人遇到 Antigravity 403 或者更新出错,这类问题通常不是代码问题,而是账号和环境层面的限制。我的建议是先确认最新版本和官方公告,如果账号资格检查过不去,大概率跟地区支持列表有关,这个只能看官方后续开放节奏,技术侧没什么能绕过的讨巧办法。

4.2 让 AI 稳定输出的三条对话技巧

很多人用 MCP 建模失败,不是技术不行,是"不会跟 AI 说话"。我总结三条实测有效的对话原则。

第一,一次指令只做一件事。别让 AI"建一个仓库,里面放满货架,然后加路径,再导出模型"。正确做法是按上面第三节的节奏,一个阶段一个指令。AI Agent 执行链越长,中间一步出错后面全崩的概率越大。

第二,关键参数必须显式说明。尺寸、数量、间距、朝向、材质,这些参数宁可啰嗦也要写全。你写"放一些货架",AI 真的可能放 3 个;你写"5 排 20 列、双深位、排间距 3 米",它才能建出可用的货架区。这里的原则是:把你脑子里的验收标准翻译成 AI 的约束条件。

第三,允许 AI 补充方案而不是直接执行。遇到复杂操作,比如"在货架两侧加安全围栏并预留维修通道",你可以先问 AI:"你打算怎么实现?列个步骤再执行。"这一步能提前发现 AI 的理解偏差,比执行后再返工省事得多。这算是 Agent 工作流里一个很好用的习惯。

4.3 性能和工程化建议

最后说点工程上的体会。用 MCP 建大场景,性能是绕不开的。

Antigravity 的 Agent 在执行 Blender 操作时,本质是发送 Python 脚本到 Blender 并执行。如果生成的物体数量特别大,比如几百个托盘的循环代码,Blender 会因为单帧执行大量操作而卡顿。我实际测下来,单次指令生成的物体数控制在 150 个以内,执行时间和稳定性都比较理想。多一些的话,拆成多次指令,每次指定范围。

另外,给物体规范命名不是洁癖,是工程需要。托盘这个例子很典型:如果 AI 生成的物体名是"Pallet.001""Pallet.002"这种自动序号,后面导出 JSON 做数据关联时,你根本分不清哪个托盘在哪个货架哪一层。按 rack_row_col 规则命名,数据联动就非常顺。

还有一个容易被忽略的点:Blender 场景里如果用 Cycles 渲染器,材质节点越多,渲染越慢。数字孪生场景通常不需要照片级渲染,建议用 Eevee 实时渲染器,材质简单一点,整个场景的响应速度会好很多,尤其是后续要做动画调试时。

最后分享一点心得

这套组合我用了大概两周,最大的感受是:Antigravity + Blender MCP 真正的价值不是帮你省掉建模的时间,而是把"想法到三维场景"的反馈回路压缩到了分钟级。以前你有个仓储布局的想法,要打开 Blender 手动拉半天才能验证;现在你只需要说几句指令,AI 就帮你把草稿打出来了,你省下的精力可以全部花在方案推敲和细节优化上。

我的习惯是先跟 AI 用文字把场景方案过一遍,再让它动手执行,这样返工率低很多。另外,数字孪生场景别一上来就追求大而全,先做一个小范围但有完整闭环的区域,比如 10 组货架加一台 AGV 跑通流程,再往里堆内容。这个项目目前只是上篇,仓库场景和资产已经建好,下篇我会把精力放在 AGV 动画、数据联动和 three.js 前端展示上,到时候继续分享踩坑记录。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询