别再用老办法做数字孪生了:一座集装箱码头的三个月与三天
传统数字孪生项目动辄数十万预算、数月周期,交付即固化。本文通过一个真实码头项目的对照实验,展示如何用 ZCode + GLM 大模型将开发周期压缩至数天,一人完成全部资产与仿真。文章深入拆解“参数化生成”与“对话式迭代”方法论,揭示快与慢的本质差异。

港口码头的数字孪生,十年前是上市软件公司才敢接的项目——建模外包、引擎定制、 周期以季度计、预算以十万计,最要命的是:交付那天就已经过时。本文用一个刚交付的真实 项目做对照实验:同一座集装箱码头,用 ZCode + GLM 大模型的人机协作方式重新做一遍—— 一人、零外包、数天完成,32 个 GLB 资产、1500 个集装箱、9 辆作业车辆、3 台 RTG、3 台 岸桥、一艘 260 米集装箱船,以及一套”外卡过闸进场 → RTG 卸箱堆码 → 内集卡接力 → 岸桥装船 → 新船靠泊”的完整业务闭环仿真,144 FPS 实时运行。本文不谈概念,只讲两件事: 过去到底慢在哪,现在到底快在哪,以及那套可以让任何物理场景”搬进浏览器”的协作 方法论。
一、过去怎么做:传统数字孪生项目的”四座大山”
在聊新方法之前,先把老流程完整摆出来。一个传统码头数字孪生项目,通常是这样跑的:
第一座山:建模。 项目组把需求文档发给建模外包团队,建模师在 3ds Max/Maya 里 逐个拉模型:一台岸桥三到五天,一座闸口两天,集装箱算便宜的——买素材库。随后是 漫长的”确认—修改—再确认”:比例不对、颜色不对、位置不对,每一轮往返以天计。 改一个闸口通道?排队等排期。
第二座山:动画。 模型进引擎后,车辆要走起来、机械要动起来,靠 K 帧或脚本: 外卡绕场一圈、RTG 上下往复。动画是”演”出来的,与真实作业规则无关——所以永远 经不起业务方一句追问:”我们内集卡不是这么跑的。”
第三座山:改需求即返工。 建模改一版、导出换格式、引擎里重新摆位、动画重调—— 四道工序联动,一个小需求就是一周。于是项目后期大家心照不宣:别再提需求了,先 上线再说。
第四座山:性能。 精细模型堆进引擎,几百个 draw calls 变几千个,帧率崩塌; 于是减面、烘焙、LOD,又是一笔预算。
四座山叠起来,就是行业的默认报价:数十万预算、三到六个月、交付即固化。数字 孪生本应是”活的镜子”,做出来却成了”昂贵的照片”。
二、现在怎么做:把”建模问题”变成”生成问题”
新的做法只做了一次观念转换:不再问”模型怎么建”,而是问”这个场景由哪些参数 描述”。 集装箱码头恰好是最适合这种思路的场景——它的每个对象都高度参数化:
- 集装箱 = 颜色 + 尺寸(6.058 × 2.438 × 2.591 米)
- 堆场箱区 = 行 × 列 × 层
- 岸桥 = 轨距 30.5m + 大梁仰角
- 闸口 = 通道数 + 雨棚跨度
于是在 ZCode 里,开发方式变成了与 GLM 的对话式声明:”给集装箱堆场加一条 箱区,6 列 × 4 层,12 种箱色混排”——大模型直接改写生成器参数,分钟级重跑出 一整套新场景。
整个制作过程,浓缩成一张图就是四步:上传参考图 → 技能生成 GLB → 打开 Web 演示页 → 对话式迭代。真实操作中,使用者只做了三件事:发一张闸口照片、说一句业务规则、在浏览器里确认效果——其余全部由 ZCode + GLM 完成,本机要安装Blender建模软件。
第一步:上传参考图。 把闸口照片、堆场平面图,或任何”想要的样子”直接发给大 模型——布局、结构、配色关系,一张图胜过千字需求文档。


第二步:技能与大模型生成 GLB。 ZCode 按行业模板调用建模工具链:程序化生成 器按真实尺寸产出集装箱、堆场、岸桥等 30 余个 GLB 资产,纹理自动内嵌;闸口这类 精细单体由 Blender 无头建模导出,标牌文字直接使用系统字体挤出立体红字。
第三步:生成 Web 演示页面。 AI 同步产出 three.js 孪生页面——浏览器打开即见 1:1 码头实时运转:车辆行驶、机械作业、面板跳动,无需安装任何软件,分享一个网址 即可演示。

第四步:对话式迭代。 看见什么改什么——”堆场再加两列””抬杆要自动抬起””装 卸和装车要分开”——每一轮反馈分钟级变成场景里的真实变化。
具体分五步:
第一步:造一把”万能钥匙”。 让 AI 先写一个 250 行的 glTF 写出器(图元构造器材质分组 + GLB 容器编码),这是全部资产的地基——之后”建一堵墙””造一个码 头”都只是调用它、传坐标。
第二步:资产即参数。 集装箱、堆场箱区、岸桥、船舶、道路,全部按真实尺寸写成 声明式生成器。32 个 GLB 资产、1700 个场景节点,一条命令分钟级重建——改需求 的成本第一次低于拒绝改需求的成本。
第三步:精细单体交给 Blender。 闸口这类有机结构(拱形桁架雨棚、立体字)程序 拼盒确实糙——让 AI 写一份 Blender 无头建模脚本:桁架按弦杆腹杆建模、微软雅黑 字体挤出成红色立体字欢迎标牌、黄黑防撞岛逐段上色。脚本即模型,照旧可版本化。
第四步:纹理也程序化。 集装箱侧板的瓦楞明暗、底部锈迹、白色箱号代码带,用 图像库按箱色 + 随机种子生成——每只箱的锈迹位置都不同,却可复现、可批量换色。
第五步:浏览器就是验收终端。 本地起一个静态服务,每轮生成后浏览器截图人工 确认——不需要等建模师回图,确认周期从”天”变成”分钟”。
三、硬碰硬:同一座码头,两种做法的账本

这张表里最值钱的一行是改需求响应。传统项目最大的成本不是首次建模,而是 “交付后每一次业务变化都要回到建模管线”——而程序化生成器让”改”回到了它本来 的成本位置:改一个参数,重跑一次。
两个真实的对比瞬间:项目中期业务方指出”闸口做得太糙,要按真实照片来,还要 有抬起放行的横杆”——传统流程里这至少是一轮建模外包沟通;在对话里,AI 用一份 Blender 脚本重建了闸口(拱形桁架雨棚、黄黑分隔岛、红白抬杆、检查亭、办公楼、 微软雅黑立体字标牌),一轮对话交付。另一处:卸货区曾与既有箱堆重叠、车辆斜停、 堆高超过设备净空——三个问题在同一轮仿真验证中暴露,AI 修正状态机与坐标后重跑, 回归断言全部通过。发现快、修复快、验证快——这九个字就是新做法的全部秘密。
四、快的前提:三个让 AI “接得住”的方法论
快不等于随便。对话式生成要成立,靠的是把不确定性关进笼子的三个方法:
方法论一:先库后场景。 项目第一轮对话不是做码头,而是让 AI 写”资产原语库”—— 几十行代码的图元构造器与 GLB 容器。库的接口(图元类型、材质分组、UV 规则、节点 命名)定了,之后所有场景生成都是”调用库、传参数”,AI 的发挥被约束在正确的轨道上。
方法论二:每轮必校验、浏览器即验收。 每一轮资产与场景生成后,立即跑一个结构 校验器(索引类型、缓冲区越界、尺寸清单)+ 浏览器人工截图。人不需要读代码,只看 图——本项目靠这套节奏把”发现—修复—验证”压缩到分钟级,先后抓出 UV 缺失、 索引越界、坐标错位等十余类问题。
方法论三:守恒恒等式做回归。 业务仿真的正确性不靠肉眼:项目为箱流建立了守恒 恒等式——出口堆位递减数 ≡ 装船数 + 在途数,每轮仿真断言一次。正是这条恒等 式,先后揪出”卸箱后集卡仍挂箱””装车后车上无箱””堆位与既有箱堆重叠”三处深层 缺陷——任何一处留到交付后,都是业务方对数字孪生失去信任的开始。
五、提示词与技能:把一次项目的经验,变成下一个项目的起点
人机协作开发里,真正值得沉淀的资产有两类:能跑的代码,和能复现代码的提示词 与技能。前者交付项目,后者交付能力——本项目在这两条线上都做了沉淀。
提示词:每个阶段一张”关键指令卡”
回看全程,真正决定产出质量的提示词只有寥寥数条,每条对应一个开发阶段:
阶段一·原语库:
用 Python 写一个 glTF 2.0 写出器:支持 quad/tri/box/prism 图元构造器、PBR 材 质分组、包围盒 UV、GLB 双 chunk 容器与程序 PNG 编码,250 行以内,three.js 可 直接加载。
阶段二·资产生成:
按 ISO 真实尺寸生成集装箱堆场:6 列 × 4 层,12 种箱色混排,单箱 6.058 × 2.438 × 2.591 米,侧板纹理程序生成(瓦楞明暗 + 锈迹 + 白色箱号代码带),纹理 内嵌 GLB。
阶段三·闸口建模(附参考照片):
参考这张闸口照片,用 Blender 建模多通道闸口:拱形桁架雨棚、圆柱门柱、微软雅 黑立体字红色欢迎标牌、黄黑防撞分隔岛、检查亭与办公楼,导出 GLB。
阶段四·业务规则(最关键的一条):
装卸分离:RTG-01/02 只卸外卡堆入进口堆位,RTG-03 只从出口堆位取箱装内集卡; 内集卡只载箱去码头;堆满 12 箱外卡在闸口滞留,出口堆位空则内集卡待发位等待; 疏运车每 150 秒运走一箱。
阶段五·表达:
给闸口雨棚加中文立体字欢迎标牌;给孪生页面加 KPI 面板、九车遥测表与事件流。
这些提示词的共同特征:一次只约束一件事、给足业务术语与真实尺寸、附参考图。 大模型负责把约束翻译成代码与模型,人负责判断”对不对、像不像”。
技能:把一次项目的经验,变成下一次项目的起跑线
项目交付后,又花了数轮对话把过程反哺成三个技能(ZCode 的技能 = 带触发条件 的标准化工作流,存放于用户技能目录,跨项目自动可用):
- digital-twin-generator(数字孪生生成器):本次经验的完整沉淀——五阶段工作 流、10 条硬性规则、四领域模板(港口已验证 / 交通 / 物流 / 仓库)、22 条踩坑清 单,以及可直接复用的 glTF 原语库。下次做交通枢纽、物流园区、立体仓库的孪生, 开场即有起跑线。
- project-architect(项目蓝图管线):一键产出 SPECIFICATION / IMPLEMENTATION / TASKS / BRANDING / PROMPT 五份蓝图文档——本项目的技术文档即由该管线复盘生成。
- article-edition-generator(文章版生成器):即本文——把技术文档转写为可阅 读传播的行业长文。
技能与提示词的分工很清晰:提示词是”一次性的指令”,技能是”可复用的能力”。 当一个项目里反复出现的协作模式被验证有效,就把它固化成技能——于是下一次,同样 的完整度不再需要同样长的时间。
六、真实效果:一座会在浏览器里“干活”的码头
最终交付的孪生页面,打开即是一座实时运转的码头:
- 闸口:外卡列队等待,红白抬杆自动抬起放行,车辆穿越多通道雨棚驶向堆场——雨棚 上红色立体字标牌清晰可读。
- 堆场:RTG-01/02 专职卸外卡,进口堆位逐箱堆高(满 12 触发闸口滞留等待疏运); RTG-03 专职装箱,出口箱堆随装船递减,空箱自动从进口堆位倒箱补足——堆场成为 进场流与装船流之间的真实缓冲。
- 码头:内集卡载箱抵达交接区排队,STS-02 岸桥锁取、外移、落箱,7 号贝位逐箱 长高;24 箱装满,事件流宣告”具备离泊条件”,40 秒后新船靠泊,新一轮开始。
面板上,九辆车、三台 RTG、一座船的实时相位与速度一目了然;事件流里,每一条等待、 让行、装船都有据可查。这就是”会干活”与”循环播放”的区别。
七、边界与清醒话:大模型做数字孪生的能与不能
方法很好,但有三句清醒话必须说:
一、AI 快在”参数化对象”,慢在”有机造型”。 集装箱、堆场、道路、桥梁这类高度 规则的对象,程序化生成又快又准;但仿真里的”主角级”精细单体(拟真人物、复杂机械 曲 面),仍需要 Blender 这类专业工具——本文的做法是让 AI 写 Blender 脚本去建模, 而非让它徒手拼盒子。工具边界没变,变的是使用工具的人从建模师变成了描述需求的你。
二、AI 不知道你的业务规则,除非你告诉它。 “装货的只装货,卸货的只卸货””前车 走了后车要进位””进口堆位满 twelve 箱要滞留”——这些规则全部来自业务方的真实反馈。 AI 负责把规则翻译成状态机并保证执行,规则本身必须由懂业务的人给出。这也是数字 孪生项目里人不可替代的部分。
三、验收靠人眼,但不止靠人眼。 浏览器截图解决”像不像”,守恒恒等式解决”对不 对”——两者缺一不可。只做前者,交付的是好看的视频;加上后者,交付的才是孪生。
八、结语:当“做数字孪生”变成“描述数字孪生”
回看这次实践,最大的变化不是省了多少钱,而是角色变了:业务人员不再需要把想法 翻译成建模语言再等外包实现——他直接用业务语言与大模型对话,看着想法在几分钟内 变成场景里会动、会排队、会作业的三维实体。
这套”程序化资产 + 状态机仿真 + AI 结对生成”的组合,不止适用于码头。交通干线、 物流分拨、仓储立体库、工厂产线——凡是”物理世界 + 业务规则”的组合,都可以用同 一套方法在浏览器里 1:1 复现并持续演进。当描述一个世界的成本降到一次对话,数字 孪生才真正从项目变成了能力。
本文由 @天涯轩 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自AI生成,由作者提供

起点课堂会员权益




以前做数字孪生,像请人装修,改个插座要等师傅有空;现在相当于告诉AI“这儿加个插座”,它当场就给你画出来。本质就是把“建模”变成了“说需求”,但前提是你得能说清楚是什么尺寸、什么颜色、放在哪。