我让 GPT-6 做了一池锦鲤

我让 GPT-6 做了一池锦鲤

大家好,我是不会喷火的小火龙。

最近大家都在聊大模型的代码能力进化到了什么阶段。官方文档里反复强调复杂任务的端到端交付,社区里也满是几十秒搞定一个原型的演示。作为一个每月 Token 账单不低的实战派,我向来对跑分和 PPT 保持克制。一个模型到底是"能写代码"还是"能交付产品",只有扔进一个有真实物理和美学约束的深水区项目里,才能见真章。

于是我做了一个实验:在 Codex 环境里,让 GPT-6 从一份空白代码开始,完整交付一个运行在浏览器里的 3D 互动锦鲤池。

然而,整个过程最耐人寻味的不是它写代码有多快,而是在初版交付时,面对一屏全绿的自动化测试,我却发现"这哪是锦鲤"。


一、所有测试都跑通了,可镜头一拉近:"这哪是锦鲤"

初版的交付速度快得让人挑不出毛病。

从水面网格、摄像机轨道控制器,到鱼群的行为树与投喂系统,GPT-6 一气呵成。更让人放心的是,它顺手写了一套基于 Vitest 的自动化测试:投喂 9 粒饲料,池子里的鱼全部精准感应并准确吞咽,测试用例 6 项全绿。

在纯逻辑层面上,这个任务已经完美闭环了。

但作为一个做过几年产品的开发者,我没有只看终端里的绿勾,而是滑动滚轮,把摄像机拉到了水面之下。

画面放大的那一瞬间,我直接愣在屏幕前。

池水是清澈的,波纹在扩散,但这哪是锦鲤?它分明是用基础圆锥和几何体拼凑出来的彩色梭子。鱼头和鱼尾的粗细过渡像两根削尖的铅笔,鱼鳍薄得像贴在两旁的硬塑料片,在水里机械地左右摆动。

自动化测试能证明"鱼把食物吃了",却证明不了"在水里游的是一条锦鲤"。

这一刻我意识到,大模型编程的评测逻辑在今天发生了本质变化:逻辑自洽对于顶级模型已经不是门槛,真正的挑战始于代码跑通之后的人类肉眼验收。


二、为什么挑锦鲤池?它专治 AI 的"表面工程"

很多人用 AI 写代码,喜欢挑 TodoList、计算器或者后台 CRUD。那些项目的数据流太工整,很难触碰到代码生成与现实质感之间的真实暗礁。

我之所以挑 3D 锦鲤池,是因为它是一个典型的"多重物理与交互复合系统"。在立项之初,我便拉出了一个现代前端图形技术栈(React 19 + Three.js r180 + Codex),并立下了一条死规矩:零外部资产引入

整个项目不允许引入现成的 glTF/OBJ 3D 模型,也不准加载外部图片纹理。所有东西------从鱼体流线、鱼鳞凹凸、水面焦散折射、到涟漪衰减与昼夜环境音效,全部必须用代码程序化生成(Procedural Generation)。

这种约束专门用来筛掉 AI 的表面工程,因为它同时把四重难题推到了面前:

  1. 生物几何与次级运动:真实的鱼不仅沿脊椎做 S 形波动,背鳍、腹鳍和尾鳍还要带着明显的阻尼感和相位差。
  2. 多层交互状态机:点击水面要产生局部顶点位移,投喂饲料时鱼群要经历"游弋---索敌---冲刺---吞咽---离场"的动态切换。
  3. 昼夜灯光插值:日光、落日与夜景射灯之间要平滑过渡,同时联动水体透明度与水底焦散的对比度。
  4. 移动端性能兜底:水草采用 InstancedMesh 进行 GPU 合批渲染,桌面端保持 12 尾、移动端动态降频为 8 尾,确保在各类移动设备上稳定跑满 60 帧。

在这套严苛的物理约束下,只要模型代码里有一丁点敷衍,画面立刻就会崩塌。


三、一次审美返工,牵出了代码底层的真实暗礁

面对初版那些"彩色圆锥",我没有换会话重新生成,而是把镜头拉到近距离,给出了严厉的审美反馈:"体型太假,没有生物流线;花斑位置错乱;鱼鳍缺乏结构"。

真正的技术较量正是从这次返工开始的。这一改,直接把 GPT-6 逼到了 Three.js 和 WebGL 图形学的底层。

1. 骨架重塑:从对称圆锥到 11 控制点样条

初版的鱼为什么难看?因为大模型默认采用了均匀放样。现实中锦鲤的生物学特征非常特殊:肩部最宽且隆起,头部钝圆,而尾柄却极其收紧。

为了打破几何体的僵硬感,GPT-6 重写了几何体生成算法,引入了三次 Hermite 样条曲线(Hermite Spline),沿着鱼身纵向轴线精确布设了 11 个控制点。它将锦鲤的"肩宽"严苛设定为"尾柄"的 4 倍,并在背部拉出符合流体力学的微微拱起。同时,鱼鳍彻底告别单片多边形,采用 637 个顶点的扇面骨架重建了胸鳍与尾鳍,边缘带有细微的透明度渐变。

锦鲤的骨架终于有了水流冲刷出来的力量感。

2. 花纹颠倒:一行代码背后的 WebGL 坐标系暗礁

体型搞定后,新的视觉 Bug 冒了出来:红白、大正三色的锦鲤花斑,居然全贴到了鱼肚皮上,而原本该绚烂的鱼背却是一片惨白。

顺着代码往下挖,才发现这是 Three.js 与 HTML5 Canvas 之间极易踩坑的坐标系暗礁:

  • 在 HTML5 Canvas 2D 绘图上下文中,坐标系原点在左上角,Y 轴正方向向下;
  • 而在 WebGL 纹理贴图标准中,UV 坐标系的原点默认在左下角,Y 轴正方向向上。

当用纯代码在 Canvas 内存画布里绘制随机噪波花斑,再作为 THREE.CanvasTexture 映射到三维鱼体时,整个纹理在纵向直接颠倒了。

修复这一问题的关键代码极其克制,只有一行:

typescript 复制代码
texture.flipY = false;

但这简简单单的一行,直接映射出代码生成在跨渲染管道时的底层认知深度。加上这行属性后,鱼背的花斑瞬间各归其位。

3. 从 6 项功能断言到 9 项数学断言

为了确保改模没有破坏原有的运行逻辑,测试用例从最初的 6 项扩充到了 9 项。

新增的 3 项测试不再仅仅检验投喂状态机的回调,而是在 Vitest 中引入了密集的几何断言:在鱼身截面上布设了 1,000 个采样点,针对法线向量的平滑连续性、UV 接缝的闭合度以及顶点位移的最大曲率做了严密的数学校验。

逻辑全通,视觉也终于摆脱了"彩色圆锥"。


四、当 AI 能写一切代码,开发者到底在验收什么?

看着池子里轻摆尾鳍、游弋吃食的锦鲤,我坐在屏幕前想了很久。

过去评判一个开发者的硬实力,往往看他敲代码的手速有多快、对 API 语法的记忆有多准、写复杂状态机需要几个小时。但在这个实验里,GPT-6 在几十秒内就能吐出几百行无语法错误的图形代码,几分钟内就能跑通一整套 Vitest 测试套件。

在这个时代,代码的执行力已经严重通胀,而人类的审美与场景判断力正在急剧通缩。

AI 可以在 30 秒内给出一个合规的算法,但它不知道一条鱼怎样摆尾才叫灵动;它能把 Canvas 纹理贴在 Mesh 上,但它不会觉得红斑长在肚皮上有多别扭。它只对给定的 Prompt 和测试用例负责,而对真实世界的质感一无所知。

自动化测试能算出食物距离、能断言状态机是否迁移,但它永远测不出什么叫"这哪是锦鲤"。

当写代码的边际成本趋近于零时,开发者的核心角色正在发生重塑:我们不再是逐行堆砌石块的泥水匠,而是那个坐在监工席上,手握审美准绳、验收体验边界的首席产品官。


五、给独立开发者的 3 条人机协作避坑清单

如果你也准备用 AI 工具链(不管是 Codex、Claude 还是 Cursor)从零做一款带有交互和图形细节的独立产品,这是我在锦鲤池里踩坑后总结的 3 条实战清单:

  1. 输入给具体物理约束,不给抽象形容词

    不要对 AI 说"做得写实一点、生动一点",这种抽象词只会带来幻觉和敷衍。明确告诉它"肩宽与尾柄比设为 4:1"、"沿纵向采用 11 控制点 Hermite 样条"、"鳍条做带阻尼的次级摆动"。具体的数学和空间参数,比一百个主观形容词都管用。

  2. 逻辑交给自动化测试,质感死守肉眼验收

    因果链明确的逻辑(摄食状态机、距离阈值、合批销毁),全部用自动化测试锁死,让 AI 自行编写并跑通;但光影漫反射、动态韵律、交互阻尼和美学平衡,哪怕测试全绿,也必须由你逐帧拉近去肉眼验收。

  3. 架构优先选纯代码程序化,降低重构阻力

    能用代码数学生成的资产,前期尽量避免引入沉重的外部静态资源包。轻量的纯代码结构能让 AI 在几十秒内完成整个模型的推倒重来,试错和返工的摩擦力几乎为零。


最后留个互动

你在用 AI 编程时,有没有遇到过那种"测试全绿、代码全对,但做出来的东西一眼难尽"的时刻?欢迎在评论区聊聊你的验收经历。

相关推荐
luj_17681 小时前
击穿分析五大关键步骤
开发语言·网络·c++·经验分享·算法
舒灿1 小时前
全网都在测鹈鹕,我用 DeepSeek-V4.1-Flash 跑了50+小时、超5000MTokens消耗的真实开发任务
chatgpt·ai编程·deepseek
必须会一定会2 小时前
LiTwin 任务004:JSON Schema、OpenAPI、TypeScript、Java DTO 质量门禁实现
人工智能·程序人生·ai编程
人才瘾大2 小时前
大模型四层推理缓存体系深度拆解:KV Cache、Prefix Cache、Prompt Cache与Semantic Cache
人工智能·prompt·ai编程
2601_967212722 小时前
安全供电轨道系统技术选型体系与防护技术特征分析
经验分享
上海广测检测科技有限公司3 小时前
服务器3C认证详解:认证单元划分、关键件变更与配置覆盖规则解读
经验分享
在世修行3 小时前
干货:三合一架构:GUI/HTTP/引擎如何共用一条任务队列
系统架构·ai编程·任务队列·trae work
郑州光合科技余经理4 小时前
本地生活系统:多业务订单字段怎么分账本导出
java·开发语言·前端·数据库·uni-app·php·ai编程
山间小僧10 小时前
「AI学习笔记」Agent Memory(二)跨会话记忆:从聊天记录到可演化的长期记忆
aigc·agent·vibecoding