演示

实验里跑得起来的那部分。每个页面都是一份单文件 HTML,没有构建步骤、没有后端, three.js 也是本站自己托管的——把地址给别人,对方打开就能看到同一个东西。

演示都是 WebGL 场景,需要一点显卡;手机上跑得动,但会热。 卡片点开是说明页,运行要再点一次——不会有东西在你没同意的时候开始烧 GPU。

blackhole

同题横评:three.js 百万粒子黑洞

深空中的黑洞与橙青色吸积盘,四周是百万级粒子星尘,左上角是 EVENT HORIZON 标题与 HUD 状态
· GPT-6 Astra

星门 / 吸积盘:一次生成的百万粒子黑洞

同一段提示词只调用一次、不做任何人工修改,GPT-6 Astra 交出 1230 行单文件 HTML:100 万粒子、自定义 GLSL 吸积盘、UnrealBloomPass 后期,零控制台报错,?t= 锁定时间后截图逐字节可复现。缺陷也留着——bloom 把事件视界洗白了。

一次生成 ·3 分 1 秒 ·1230 行
画面被一道巨大的白色弧光边缘占满,看不到黑洞与吸积盘结构,左上角 HUD 显示 20.0 FPS 与 1,000,000 粒子
· GPT-5.6 Terra

构图崩坏的那一版:代码全对,相机怼在了发光体内部

同一段提示词,GPT-5.6 Terra 一次生成:759 行、100 万粒子、零报错、HUD 和 ?t= 锁帧钩子全部实现。但相机与场景尺度没配好,画面里只剩一道巨大的白色弧光——技术上没有任何错误,视觉上是失败的。

一次生成 ·2 分 5 秒 ·759 行
浅蓝白色雾状画面,几乎看不到黑洞与吸积盘结构,HUD 显示 10 FPS 与 300,000 粒子
· Claude Fable 5.1

一个 TDZ 错误黑屏,一轮反馈自己修好:Fable 5.1 的修复版

Claude Fable 5.1 一次生成的版本因为 TDZ 错误初始化中断、整页黑屏;把机器采集的错误堆栈原样回传,它 111 秒一轮修好了。这里跑的是修复版——能跑,但画面几乎全白,而且 ?t= 逐字节复现的契约在修 bug 的过程中被改坏了。

一次生成 ·4 分 55 秒 ·584 行
黑色深空中的黑洞,吸积盘呈橙金色螺旋条纹,中心事件视界为纯黑,画面层次分明
· GPT-6 Astra + Codex CLI

同一题交给 Agent:Astra + Codex CLI 自己截图自己改,三轮收工

同一段黑洞提示词,这次给的是一个能跑命令、能截图、能读回像素统计的 Agent。GPT-6 Astra 在 Codex CLI 里自主迭代三轮,把粒子数拉到 1,048,576,自己发现并压掉了一次生成那版的 bloom 过曝,固定时间截图哈希完全一致。

Agent 自主迭代 ·10 分 34 秒 ·575 行
纯黑中心的黑洞,外围是带螺旋条纹的吸积盘与两道极向喷流,一侧因多普勒效应更亮
· Claude Fable 5.1 + Claude Code

五轮把平均亮度从 0.43 压到 0.10:Fable 5.1 + Claude Code

同一段黑洞提示词交给 Claude Code 里的 Fable 5.1,42 轮对话、41 次工具调用、$4.24。它每一轮都自己渲染、读像素统计、判断哪里过曝,五轮之后中心恢复纯黑、螺旋条纹和多普勒增亮侧都出来了——一次生成的那版是黑屏的。

Agent 自主迭代 ·15 分 2 秒 ·696 行 ·$4.24