AI 3D建模工具: Tripo 3D | Meshy AI
11 月 9 日深夜(北京时间 10 日早上),Claude Fable 5.2 发布。数字生命卡兹克(@Khazix0918)当天写了篇实测,其中有两段是 3D:一个"清晨海边灯塔小渔港"的 360° 场景,一个上海苹果静安店的 3D 网页。
这两段被很多人读成"AI 直接生成 3D"。准确的说法是:它用代码生成了 3D,然后在浏览器里渲染。 而"直出"这个词,作者自己给了定义——一次 prompt、没有二次对话、没有后期加工。
这篇把那个过程拆开:它到底写了什么、为什么好看、贵在哪、哪些能抄。
一、先看产物:不是一个文件,是 18 个
作者贴的执行日志里,模型自己报的进度是:
"全部 18 个文件写完了(页面、Three.js 本地库和 17 个模块)。现在进浏览器验收:先做语法检查,再实际打开看效果。"
这条就把"直出"的想象打破了:它不是吐出一段 HTML,而是按模块拆文件、把 Three.js 本地库也带上(因为 prompt 要求离线可运行)、写完还要进浏览器验收。
顺带一句:那个"打开看效果"是真的开浏览器——日志里后面写着"已运行 12 个命令,已读 17 个文件"。
二、关键发现:prompt 里写着"不用外部素材"
这是全文最值得抄的一页。作者的 prompt 原文(截图):

原文 prompt 截图。注意【要求】那一段。
原文摘录:
"用 Three.js 做一个可直接双击 index.html 打开的「清晨海边灯塔小渔港」360° 沉浸式全景三维场景(离线可运行,经典 script,不用 ES module)……"
"【要求】所有素材用代码程序化生成,不用外部图片和模型:远景可用低面数简化,近景保证细节;随机数带种子保证每次一致;控制面数和后期开销,保证流畅;零控制台报错。代码按模块分文件逐个写,每写完一个文件汇报一句进度。"
也就是说:"全用代码"是 prompt 里写死的约束,不是模型的自发选择。 你不写这一句,它大概率会去引贴图、引模型。
更要紧的是这段里的另外几条——它们根本不是"审美描述",是验收清单:
| prompt 里的要求 | 它其实在约束什么 |
|---|---|
| 离线可运行、不用 ES module | 交付形态(双击就能开) |
| 随机数带种子、每次一致 | 可复现性(同一个 prompt 出同一个场景) |
| 模块分文件、写完汇报进度 | 可维护性(不是一坨) |
| 零控制台报错 | 可验收 |
这四条,比"要有氛围感"值钱得多。
三、它怎么自己发现画错了
日志里有一段,我认为是整篇文章最硬的部分:
"画面已经基本正常,构图和轮廓没问题,控制台也没有报错,但受光物体发黑、海面过曝,灯塔光束末端还有异常亮点。接下来先找原因。"
"读取各级渲染缓冲的像素值,定位全黑和过曝出在哪一步"
"根因已定位:天空着色器里背对太阳的方位和天顶处的 pow/normalize 会产生 NaN,并被烘焙进环境光贴图,导致受光材质和反射全部失效。接下来我会在所有着色器里给可能出现负底数或零向量的地方加上保护。"
"NaN 修掉后画面正常了:朝阳、反光带、灯塔、海水反射都出来了。继续看南面和西面。"

原文执行日志截图:先修 NaN(技术错),再改审美(树像棒棒糖、松树棱角偏卡通、岬角像土包、海鸥像雪人……)。
这段拆开来是四步:渲一帧 → 读像素 → 定位到着色器 → 加保护再渲。
这不是"生成",这是调试。而且它调的还是自己刚写的着色器。
四、好看的那张图,代价是什么

这张是"纯代码写的、在网页里渲染出来的静态帧"——几何、材质、灯光、雾、天空全由代码构造,没有任何外部模型或贴图。
代价在原文里写得很直白:
- 灯塔这个场景:跑了几十分钟。
- 上海苹果静安店:将近 2.5 小时。其中"上来第一件事先搜报道 → 查真实照片 → 挨个放大看细节 → 看了将近上百张、将近 1 小时",然后"建模又将近 1 个多小时"。
- 额度:作者 4 小时跑了 10 个任务,烧掉约 24% 的额度;他自己的结论是"贵是真贵",日常还是用 Opus 5.5 + 便宜的模型分工。
还有一个细节值得记:他看到"思考摘要里的图片预览"——也就是模型在过程中会渲出画面来看。它是在看自己画的东西,不是盲写。
五、和我们上周那篇的关系
上一篇综述里,我们把"AI 生成 3D"拆成四条路,这条是路径 A(three.js 代码 + 浏览器渲染)的真实样本。它补充了三件综述里没有的东西:
- 时间是分段的:搜索/看图 ≈ 1 小时,写代码/建模 ≈ 1 小时,其余是自检与修改。
- 自检回路是真的:读渲染缓冲像素、定位 NaN——和 BlenderFORGE 那个"代码执行器 + 预览渲染器"的沙箱是同一个机制。
- "全用代码"是 prompt 里的一句话,不是一个模型能力。你要它程序化,它才程序化。
六、我们能抄的三步
- 把 prompt 写成验收清单,而不是需求描述。写成"离线可跑 / 随机种子固定 / 零控制台报错 / 模块分文件",比写"氛围治愈"有用十倍。
- 要求它渲一帧给自己看。明确写"渲染后检查:受光是否发黑、是否过曝、远景是否有空面",模型就会去读像素——这一步是它自己发现的 NaN 的前提。
- 产物要代码,不要构建物。要
index.html + 模块,不要它导出的 GLB——前者能 diff、能改参数、能进 Git;后者只能重新生成。
七、边界
- 这是一篇个人实测,不是第三方复现。时间、额度、模型行为都是作者自报。
- "直出"不等于"无工具":它用了浏览器、用了本地 Three.js 库、用了联网搜索与上百张参考照片。作者的定义只是"没有二次对话、没有人工后期"。
- 视频那条作者没写清合成方式:40 秒致敬片那句"配乐是他自己写的、剪辑是他自己剪的",没有说明是用代码生成帧再编码,还是调了别的工具。这一层不能替他补。
- 规模:一个 360° 小场景、一栋建筑。没有产线、没有整城、没有可交付的工程精度——那属于我们综述里路径 D(工业 C#)要解决的问题。
来源
- 数字生命卡兹克(@Khazix0918),《实测 Claude Fable 5.2:审美与细节的绝对统治》,2026-11-09:https://x.com/Khazix0918/article/2119941585538572390(原文为 X Article,本文按原文顺序拆解,图片三张转自原文)
- 文中引用的模型发布信息与额度数据均取自原文;AA 指数 65 分登顶亦为原文所述
- 相关:three.js 成了 AI 生成 3D 的默认输出:四条路,验收还缺一把尺