ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Antigravity+Blender MCP:智慧仓储数字孪生自动建模实战

Antigravity+Blender MCP:智慧仓储数字孪生自动建模实战

1. 项目背景与整体思路

1.1 传统智慧仓储数字孪生的建模痛点

这两年做智慧仓储项目,绕不开一个词:数字孪生。简单说,就是把物理世界里的仓库在电脑里完整还原出一套 1:1 的三维场景——货架、库位、AGV、输送线、人员动线,全部映射到数字空间,再和 WMS(仓库管理系统)的数据打通。传统的落地路径一般是:先让建模师用 Blender 或 3ds Max 手工建一套仓库场景,导出成 glTF 或 FBX,然后在 Unity、Three.js 或者自研引擎里做交互和渲染,最后再接入实时数据流。这个流程最大的痛点不在渲染,而在建模环节。

我接触过好几个项目,3D 场景的交付周期常常占到整个项目工期的一半以上。原因很现实:手工建模速度慢,而且不同建模师产出的模型命名混乱、坐标不统一、层级结构千奇百怪。数字孪生最怕的不是模型丑,而是模型和业务数据对不上——WMS 告诉你"A0101 库位有货",结果场景里根本找不到叫 A0101 的物体,或者坐标完全错位。这意味着,建模从一开始就不能只靠美术手感,必须用规则化、数据化的方式去生成。

1.2 为什么选择 Antigravity + Blender MCP

我最近在试着走一条新的工作链路:用 Antigravity 作为 AI 编程环境,AI Agent 负责理解需求、组织指令,通过 Blender MCP 这个中间层,把指令变成 Blender 里的具体操作。试了几周之后,我可以比较负责任地说,这条路在"快速产出规则化三维场景"这件事上,比传统手工建模有明显的量级提升。

Antigravity 这类 AI IDE 的核心价值,不光是补全代码,更重要的是它的 Agent 模式可以自主执行多步任务。你要做的只是用自然语言描述需求,比如"在 Blender 里建一个 36 米乘 24 米的仓库地面,放在 y=0,命名 Floor,材质用浅灰色",它就会自己去调用工具、执行操作、检查结果、修正错误。而 Blender MCP 是整个链路里最关键的桥梁——它把 Blender 的内部操作暴露成一个个标准工具,AI 不需要懂 Blender 的 Python API 也能驱动建模。

选这套组合还有一个现实原因:Blender 是免费开源的,本身自带 Python API 和几何节点,程序化建模能力很强,做仓储这种"规则几何体组合"非常合适。相比直接用 Three.js 写代码建模,Blender 的优势是即时可视、后续还能渲染和做动画;相比纯手工建模,它又可以完全程序化、完全可复用。Antigravity + Blender MCP 相当于把这个程序化建模过程中的"编程"环节也替代掉了。

1.3 工具链路与角色分工

把整套架构讲清楚,其实只需要三行:

  • Antigravity:扮演大脑。接收你的自然语言需求,拆解任务,决定调用什么工具,处理执行结果。
  • Blender MCP Server:扮演神经和手。运行在 Blender 插件里的本地服务,把 AI 发来的指令翻译成 bpy 代码并执行。
  • Blender 本体:扮演工作台。创建场景、管理物体、赋予材质,所有三维资产的最终生成和呈现都在里面发生。

三者之间通过 MCP(Model Context Protocol)协议通信。MCP 定义了统一的接口:AI 可以查询有哪些工具、调用某个工具、传参数、拿结果。Blender MCP 就是这套协议在 3D 软件上的具体实现,由开源社区维护。插件安装后会在本地起一个 Socket 服务,默认监听 127.0.0.1:9876,Antigravity 通过 MCP 客户端连接这个端口,两边就接通了。

这里有个容易误解的点:MCP 不是 WebSocket 或者 RPC 那种需要你写业务逻辑的通信方案,它更像是给 AI 和软件之间定了一份"菜单 + 点餐规则"。AI 只需要知道菜单上有哪些菜、每道菜需要什么配料,至于后厨怎么炒,它不需要关心。把这一层抽象做好了,AI 就能以很低的适配成本去控制一个桌面软件。

2. 环境搭建:从零跑通 AI 与 Blender 的通信

2.1 安装 Blender MCP 插件端

先准备 Blender,我建议直接用 4.0 以上版本,Blender MCP 对较新版本的支持更完整。安装过程很常规:

  1. 从 GitHub 的 ahujasid/blender-mcp 仓库下载最新的插件压缩包(zip 格式)。
  2. 打开 Blender,进入 Edit(编辑)-> Preferences(偏好设置)-> Add-ons(插件)标签页。
  3. 点击右上角的 Install(安装),选择下载好的 zip 文件。
  4. 搜索 "mcp",找到 Blender MCP Server 条目,勾选启用。
  5. 启用后,在 3D 视图的侧边栏(N 键呼出)会多出一个 MCP 面板,点击 Start Server(启动服务),面板中会显示服务端口,默认是 9876。

这步最容易被忽略的是插件加载问题。Blender MCP 插件执行代码时是在 Blender 自己的 Python 环境里运行,如果 Blender 是通过某个管理器安装的,或者你手动改过 Python 路径,插件可能加载失败。遇到这种情况,优先检查插件是否成功装进addons目录,以及侧边栏有没有出现 MCP 面板。只要面板出来了,后续基本顺畅。

还有一个实操细节:插件启动后,不要关掉 Blender 窗口。MCP 的服务是常驻进程,Blender 一旦最小化到托盘或者被系统锁定,Socket 连接通常不会断,但执行 UI 相关操作时偶尔会超过 AI 的响应超时。我习惯在生成大场景时把 Blender 窗口放到副屏,不要做任何视图缩放操作,让 AI 在后台稳定跑。

2.2 在 Antigravity 中注册 MCP 服务

Antigravity 端的配置不复杂。它支持 MCP 服务器的注册方式与主流 AI IDE 一致,一般是在项目根目录或用户配置目录下维护一个 JSON 配置文件,把blender-mcp注册为标准 MCP 服务器。常用的配置如下:

{ "mcpServers": { "blender": { "command": "uvx", "args": ["blender-mcp"] } } }

这里uvx是 Python 生态里的一个工具,类似 npx 之于 Node.js,会自动下载并运行 Python 包,适合把 blender-mcp 这种带命令行入口的服务挂起来。如果你的机器上没有uvx,也可以先用pip install blender-mcp安装到当前 Python 环境,然后把 command 改成解释器路径,args 里填-m blender_mcp。不同版本的启动方式略有差异,以插件仓库 README 为准。

配置完成后,重启 Antigravity,然后在 MCP 服务器列表里应该能看到blender这个条目,确保它处于 Running 状态。这一步的关键点:Antigravity 和 Blender 之间通过 127.0.0.1:9876 这个本地端口通信,所以必须保证 Blender 端的 MCP Server 先启动,Antigravity 那边再去连接。顺序反了,连接会直接失败。我一般先打开 Blender、点击 Start Server,再进入 Antigravity 的会话。

2.3 首次连通验证的完整步骤

配置完不要急着做复杂场景,先做一次最小化连通测试:

  1. 确保 Blender 的 MCP 面板显示 Server Started(端口 9876)。
  2. 在 Antigravity 中新建对话,先把目标说清楚:"请通过 Blender MCP 检查 Blender 连接状态。"
  3. AI 通常会先调用check_socket_connection工具,然后返回类似 "Connected to Blender" 的结果。
  4. 继续要求:"在 Blender 中创建一个边长为 2 米的立方体,命名为 TestCube,放在原点。"
  5. 观察 Blender 场景里是否出现一个立方体,并且 Outliner(大纲视图)中出现 TestCube。

这五步走完,链路就算通了。如果第 3 步就失败,问题几乎都集中在端口不一致上——Blender 插件允许自定义端口,如果你改过,Antigravity 配置里的端口也要同步改。如果第 1 步失败,那就是 Blender 侧插件没加载成功,优先回看 2.1。

我第一次连通测试时踩过一个坑:Antigravity 配置的 MCP 客户端和 Blender 插件版本不匹配,老版本 blender-mcp 只实现了部分工具,导致某些指令有响应、某些指令静默失败。所以建议 Blender 插件和 Python 包都拉最新版,两边主版本至少是同一代。测试时故意试它一两个高级工具(比如execute_code),能走通就说明工具集完整。

3. 核心原理:MCP 如何把自然语言变成 3D 操作

3.1 用生活类比理解 MCP 协议

聊原理前先打个比方。MCP 的工作方式就像去餐厅吃饭:你不会直接冲进后厨对着厨师喊"把土豆切成丝",你会坐下看菜单,选好菜,告诉服务员"我要一盘酸辣土豆丝"。服务员把你的点单传给后厨,后厨做完端上来,你只关心菜好不好吃。在这里,AI 是顾客,Blender 是后厨,MCP 就是那份菜单加服务员。

从协议层面看,MCP 定义了几类基本操作:

  • tools/list:列出当前所有可用的工具,相当于浏览菜单。AI 通过它知道 Blender 能做什么。
  • tools/call:指定工具名和参数,执行一次实际调用,相当于下单。
  • 资源与提示词:一些非工具的信息交换,比如读取文档、获取上下文提示,相当于餐厅里的特色菜说明。

通信格式是 JSON-RPC 2.0,也就是一段带jsonrpc、method、params字段的 JSON 对象,在 Antigravity 和 Blender 之间通过本地 Socket 传输。这种设计带来的好处是跨语言、跨平台:任何支持 JSON 的工具都能接入同一条链路,这也解释了为什么 MCP 生态一出现就在各种软件里快速普及。

从产品设计角度看,MCP 最大的价值是"去插件化"。以前想让 AI 控制 Blender,要么给 AI 装一套专用的 SDK,要么让 AI 直接生成 Python 脚本再手动执行,非常别扭。MCP 把所有软件操作抽象成统一接口,AI 层面不用关心每个软件的内部差异。

3.2 Blender MCP 的常用工具清单

Blender MCP 插件暴露出来的工具,基本覆盖了三维场景建模的日常操作。我列几个高频使用的:

工具名作用典型参数
check_socket_connection检查 Blender 服务是否在线无
create_mesh创建基础网格物体(立方体、平面、圆柱、圆环等)type, size, location, name
add_object添加平面、文本、空物体等object_type, name, location
modify_object移动、旋转、缩放对象或修改属性object_name, mode, transformation
select_object / delete_object选择与删除物体object_name
get_object_tree获取场景大纲完整层级无
get_object_info获取单个物体的属性、类型、位置、旋转object_name
add_material / set_material新建材质、将材质赋给物体material_name, color, object_name
execute_code把一段 Python 代码直接交给 Blender 执行code

前几个是"具体操作型"工具,AI 使用它们时按部就班地完成建物体、移动、上色。最后一个是"万能后门",它允许 AI 把任意 bpy 代码丢进 Blender 执行。这意味着 AI 可以写 for 循环生成整个货架阵列,可以用数学函数生成曲线,也可以直接用 bpy.data 批量操作场景数据。

这个工具集的组织逻辑很有讲究:常规操作走专用工具,保证行为可控、结果明确;复杂操作走 execute_code,把自由度交给 AI。我在使用中体会很深的一点是,不要因为有 execute_code 就用它干所有事。专用工具的好处是每一步都可追溯,AI 出错时你能从调用记录里看出是哪一步;execute_code 一旦写出 bug,可能整个场景被清空,排查成本高。

3.3 Agent 的多步迭代执行逻辑

Antigravity 的 Agent 并不是每次把工具调用当成孤立的命令来执行,它对一个任务通常会走完整的规划-调用-检查-修正循环。以"生成一排货架"为例,内部流程大概是:

  1. 解析用户需求:抓取关键数字,比如货架数量、尺寸、间距、命名规则。
  2. 规划子任务:先创建货架底座,再创建立柱,再创建横梁,最后赋材质。
  3. 逐个调用工具:用 create_mesh 或 execute_code 执行每一步,拿到返回结果。
  4. 读取反馈:如果某个工具报错,它会尝试理解错误信息,调整参数后重试。
  5. 完成后汇报:给你一个总结,列出创建了哪些物体、放在什么位置。

这个循环看起来不复杂,但实际效果差别很大。我发现 Antigravity 在规划阶段的"建模思维"和你给的上下文强相关。如果你只是笼统说"生成一些货架",它可能会自由发挥尺寸;如果你把坐标系约定、尺寸规格、命名规范写清楚,它生成的代码质量会高一个档次。

还有一个重要机制:Blender MCP 的 execute_code 执行完不会自动截图给你。AI 看不到 Blender 的渲染结果,所以它判断"做没做对"主要靠工具返回的文本信息、场景对象树,以及你的文字反馈。这提醒我们,和 AI 协作建模时,最好养成"每完成一个层级就让它核对场景对象树"的习惯,让 AI 输出它认为的关键对象列表,你再用眼睛在 Blender 里确认。

4. 实操记录:半小时生成仓储数字孪生初版场景

4.1 先用文字定出场景规格

真正开干之前,最关键的一步反而跟 Blender 无关:把仓储场景的规格写清楚。数字孪生最忌讳一边建模一边改尺寸,AI 生成一堆物体后再让你全部重来。我建议在对话一开始就给 AI 一段"需求规格说明",像这样:

  • 仓库尺寸:长 36 米(x 方向),宽 24 米(y 方向),高 6 米。
  • 坐标约定:仓库中心为原点,地面 y=0,x 正方向为仓库纵向,y 正方向为横向。
  • 货架区:共 4 排货架,每排 6 组,每组长 3 米、宽 0.9 米、高 3 层(含地面层)。
  • 库位:每个库位深 0.8 米、宽 0.6 米、层高 1 米。
  • 通道:主通道宽 3 米,货架间通道宽 1.5 米。
  • 命名规则:地面 Floor;货架 Rack_R{排}_G{组};库位 Bin_R{排}_G{组}_L{层}。
  • 材质规则:地面浅灰,货架立柱深蓝,库位边框黄色线框,占用库位用红色方块表示。

把这 8 条发给 Antigravity,然后再下达"按以上规格搭建初版场景"的命令。为什么这样做?因为 AI 建模的成败,90% 取决于输入规格的清晰度。坐标和命名规则尤其重要,后面你要接 WMS 数据、做动画、做交互,全靠这一套规则。

4.2 第一轮指挥:生成地面与仓库边界

第一轮我通常只要一个物体:地面。命令可以这么下:

"使用 Blender MCP,在原点创建地面平面,x 宽 36 米,y 宽 24 米,命名为 Floor,添加名为 FloorMat 的浅灰色材质(RGB 0.8)。请先把材质创建好,再赋给平面,最后检查场景对象树确认。"

AI 收到后大致会做这几件事:调用 add_material 创建材质,调用 create_mesh 或 execute_code 创建平面,再调用 set_material 赋材质。你从 Antigravity 的执行日志里能看到每个工具的参数,这是一个很好的学习机会——看 AI 怎么把"创建浅灰色材质"翻译成color=[0.8, 0.8, 0.8]这样的参数。

有个细节值得注意:Blender 默认平面是 2 米乘 2 米,如果你只告诉 AI"创建地面"而不写尺寸,它多半会给你一个默认平面,后面所有货架坐标都会算不准。所以我在命令里总是把尺寸、原点一起写清楚。地面建好之后,我通常让 AI 再创建四根细长立方体作为边界标记,方便肉眼判断仓库范围。这个用 create_mesh 就能做,AI 自己会拼接参数。

如果这轮 AI 直接把地面建歪了,先检查是不是它调用了两次 create_mesh 导致重复物体,然后用 select_object + delete_object 清理,并告诉它"只保留 Floor,删除重复项"。这种纠正动作,AI 能听懂并记住。

4.3 第二轮指挥:程序化生成货架阵列

地面搞定之后,重头戏来了:生成 4 排货架、每排 6 组。如果用 create_mesh 一个物体一个物体调,AI 会累死,你也会等疯。正确姿势是让 AI 用 execute_code 写一段 bpy 脚本,用双重循环批量生成。我会这样下指令:

"在 Floor 上生成 4 排货架,每排 6 组。货架组尺寸 3 米 x 0.9 米 x 3 层,层高 1 米。第一排货架中心线从 x=-15 开始,排距 2.5 米,组间距 3.5 米。请用 execute_code 写 Python 脚本,使用 bpy 创建货架底座、立柱和横梁,所有物体命名遵循规格,命名前缀 Rack_R{排}_G{组}。生成完成后调用 get_object_tree 汇报。"

AI 生成的代码大概是这样(我整理过):

import bpy rows = 4 groups = 6 group_width = 3.0 group_depth = 0.9 level_height = 1.0 levels = 3 start_x = -15.0 row_gap = 2.5 group_gap = 3.5 for r in range(rows): for g in range(groups): x = start_x + g * group_gap z = r * row_gap # 创建底座 bpy.ops.mesh.primitive_cube_add(size=1, location=(x, 0.1, z)) obj = bpy.context.active_object obj.scale = (group_width, 0.1, group_depth) obj.name = f"Rack_R{r}_G{g}_Base" # 立柱和横梁部分由 AI 展开...

当然实际生成时 AI 会写得更完整,包含四根立柱和每层横梁。你只需要在对话里告诉它"货架组要有底座、四根立柱、三层横梁",它就会展开成足够多的物体。执行完,Blender 场景里立即出现一排排结构清晰的货架,这时用get_object_tree检查命名和数量,心里就有底了。

这个环节我踩过最大的坑是:AI 在 execute_code 里创建完物体后忘记清理bpy.ops的自动命名,导致生成一堆 "Cube.001"、"Cube.002"。所以我在命令里会特别强调"创建完物体后立即设置 name 属性",比如obj.name = f"Rack_R{r}_G{g}_Base"。这一步直接决定了后续的可维护性——数字孪生场景的未来全靠命名规则。

4.4 库位线与区域标识的视觉分层

货架骨架有了,但离数字孪生还差一步:库位可视化。一个库位不只是货架上的格子,它应该是一个明确的几何体,方便后续做数据关联和状态飘色。我给库位定的视觉规则是:空闲库位用黄色线框表示(wireframe),占用库位用红色实心方块表示。这个视觉分层思路非常重要,让三维场景一眼就能看出哪些位置有货、哪些没有。

命令示例:

"在每层货架的每个库位位置,创建一个 0.8 米深、0.6 米宽的线框立方体(wireframe display),颜色设为黄色,命名 Bin_R{排}_G{组}_L{层}。线框立方体要用 execute_code 创建,然后设置 display_type 为 WIRE。"

这里说的 wireframe 不是建模意义上的线框网格,而是 Blender 物体的一种显示方式,可以在 bpy 里这样控制:

obj = bpy.context.active_object obj.display_type = 'WIRE'

要让 AI 同时把材质改成黄色,还需要给物体赋一个带基础色的材质。我在命令里会明确要求"材质的 Viewport Display 颜色设为黄色",否则有些版本的 Blender 默认材质在视图里显示为白色,看不出效果。

这个过程会很考验 AI 的耐心,因为一个 4 排 x 6 组 x 3 层的仓库,库位数量是 72 个(单深位)。如果它用 create_mesh 一个个调,早就超时了。所以我一律要求它用 execute_code 跑 for 循环,你只需要看它最后有没有正确汇报数量,以及 Blender 里线框是否整齐排布。

4.5 进阶思路:用库存数据批量生成库位状态

到这里,初版静态场景已经基本成型。再往前一步,是让场景具备"数据驱动"能力。数字孪生真正值钱的地方在于:库位状态不是美术手调的,而是从 WMS 实际数据里长出来的。

我在第二个项目里试过这样的流程:

  1. 从 WMS 导出当前库位表,字段至少包含:库位编码、所在排/组/层、状态(空闲/占用)、SKU 编号。
  2. 整理成 JSON 文件,存到本地。
  3. 在 Antigravity 中告诉 AI:"读取当前目录的 wms_bins.json,根据每条记录的 status 字段,在对应库位坐标处生成红色立方体(占用)或不生成(空闲)。库位坐标按约定:排 r 的 x 起点、组 g 的 x 间距、层 l 的 y 高度来计算。生成后所有 Bin 数量等于 JSON 记录数。"

JSON 大概长这样:

[ { "bin_id": "R0_G0_L0", "row": 0, "group": 0, "level": 0, "status": "occupied", "sku": "SKU001" }, { "bin_id": "R0_G0_L1", "row": 0, "group": 0, "level": 1, "status": "free", "sku": "" } ]

AI 读取数据后,通过 execute_code 把坐标算出来,批量生成小立方体。整个过程不需要人工桥梁,数据文件直接变成三维状态。这里有个非常有价值的副作用:因为坐标是代码算出来的,场景里的物体位置和业务数据严格对应,以后做碰撞检测、路径规划、库存盘点都有了准确的三维基础。

坐标换算其实很直接:第 r 排第 g 组货架中心线的 x 坐标是start_x + g * group_gap,z 坐标按排距累加;第 l 层的 y 高度是base_height + l * level_height。数据表里的行列号只要映射到这两个公式,AI 就能定位任何一个库位。这种"数据到几何"的一一对应关系,是数字孪生后续所有功能的地基。

当然这里说的是静态快照。动态联动,比如每隔几秒刷新库存状态、AGV 按路径移动,需要再接实时数据流,这是下篇的内容。但你要明白,先把静态数据驱动的架子搭对,后面接动态数据就只是换数据源的问题。

5. 高频问题与排查心得

5.1 连接类问题速查

我整理了一份速查表,覆盖实际遇到过的 MCP + Blender 连接问题,按出现频率排序:

现象可能原因排查与解决
Antigravity 提示无法连接 MCP ServerBlender 端未启动 MCP Server回到 Blender,点击 MCP 面板的 Start Server
check_socket_connection 返回 False端口不一致确认 Blender 面板显示的端口与 Antigravity 配置一致,默认 9876
连接时通时断Blender 正在执行长任务阻塞 UI等 Blender 空闲后再发指令,不要在视图里频繁操作
MCP 面板找不到插件加载失败检查偏好设置里的插件是否勾选,卸载重装 zip
execute_code 执行后无反应代码有语法错误但被吞掉让 AI 在 code 末尾加print("DONE"),通过返回输出定位

第一个问题出现频率最高,尤其是同时开了多个 Blender 实例时。MCP 默认连接 9876,两个 Blender 实例可能抢占端口,导致 AI 连到错误的实例。我的建议是单独用一个 Blender 实例专跑 MCP,别多开。

5.2 工具调用与代码执行类问题

连接通了之后,真正磨人的是执行阶段的报错。典型问题有:

  • AI 调用 modify_object 时找不到对象。原因是对象名被 Blender 自动改了,比如创建了 Cube.001,AI 以为是 Cube。解决办法是让 AI 先调用get_object_info或get_object_tree查一下准确名称,再传参数。
  • execute_code 里用 bpy.ops.object.delete() 删不掉。这个 API 需要先选中对象,AI 经常会忽略。可以引导它用bpy.data.objects.remove(obj)替代,不需要选中。
  • 材质没生效。常见情况是 add_material 创建了材质但没有赋给物体,或者赋到了错误的材质槽。命令里要把"先创建材质、再选择物体、再赋材质"三步说全。
  • 坐标错乱。AI 在算货架坐标时把 x 和 z 搞混。这个要靠规格说明约束,我通常在命令里附带一句"x 代表仓库纵向,z 代表横向,y 代表垂直高度"。

遇到这些报错,我的处理原则是:不要替 AI 改代码,而是把报错信息原样贴回去让它自己修。Antigravity 通常能根据 traceback 找到问题。唯一要人工介入的时机是它连续修了三四次还没进展时,你就把目标拆小,让它只处理一排货架,跑通了再放大。

5.3 建模协作的节奏控制与避坑建议

最后聊几个软性经验,可能比上面的硬问题更值钱。

第一,永远不要一次给 AI 布置一个大而全的任务,比如"生成整套仓库场景,包括货架、AGV、包围区域、动线标识"。AI 虽然能做多步任务,但会在某个环节信息过载,要么漏细节,要么生成一堆需要返工的东西。我的节奏是:地面一轮、货架一轮、库位一轮、标识一轮、数据驱动一轮,每轮之间可以开新对话段落,让上下文保持清爽。

第二,学会逼 AI 自查。很多建模错误不是 AI 不知道规则,而是它忘了检查。命令末尾加一句"完成后用 get_object_tree 列举所有 Rack_ 前缀的对象,确认数量和命名正确",它能立刻发现遗漏。这比你去 Blender 里肉眼找快得多。

第三,坐标统一是生命线。如果你规划时用 x 作为长度、z 作为宽度,那么所有命令都要沿用这个约定。一旦中途换坐标系,AI 生成的一半物体位置全错,返工成本极高。数字孪生项目尤其如此,因为后续所有业务数据坐标映射都建立在这套约定上。

第四,仓库比较复杂的时候,比如有阁楼、站台、输送线,我建议在初始化阶段让 AI 先生成占位盒(低精度立方体表示设备区域),把整体空间关系定下来,之后再逐项替换成精细模型。这借鉴了软件工程的接口先行理念——先把布局对清楚,再填充实现。

从我实际操作的体会来说,Antigravity + Blender MCP 最适合的场景就是这种规则明确、数量大、可程序化的仓储类三维场景。它不能替代美术精细建模,但能把过去三周的工作量压缩到半天,而且产出的资产是结构化、命名规范、坐标准确的——这恰恰是数字孪生落地最需要的底座。

最后再分享一个细节:每次大场景生成前,在 Blender 里按一次 Ctrl+S 保存初始场景文件,给 AI 一个悔药。一旦 execute_code 写崩场景,你可以让 AI 重新加载这个文件,而不是在废墟上修补。我在踩过一次"整个场景被清空"的坑之后,这个习惯就再没断过。下篇我会写动态层:怎么把 WMS 实时数据接进来、库位状态定时刷新、AGV 路径动画怎么做,到时候这套静态底座才能真正活起来。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进