· Claude Fable 5.1 · 同题横评:three.js 百万粒子黑洞
一个 TDZ 错误黑屏,一轮反馈自己修好:Fable 5.1 的修复版
Claude Fable 5.1 一次生成的版本因为 TDZ 错误初始化中断、整页黑屏;把机器采集的错误堆栈原样回传,它 111 秒一轮修好了。这里跑的是修复版——能跑,但画面几乎全白,而且 ?t= 逐字节复现的契约在修 bug 的过程中被改坏了。
运行演示
WebGL · 会占用显卡
拖动旋转 · 滚轮缩放 · 空格暂停 · 1/2/3 切配色 在新窗口全屏打开 ↗
这是怎么做出来的
- 模型
- Claude Fable 5.1
- us.anthropic.claude-fable-5-1
- 方式
- 一次生成
- 输出 token
- 26.5k
- 耗时
- 4 分 55 秒
- 产物
- 584 行单文件 HTML
- 人工修复
- 1 轮错误回传
一次生成那一版是黑屏的,因为一个暂时性死区(TDZ)错误:
ReferenceError: Cannot access 'fps' before initialization
at updateHUD (index.html:535:20)
at applyPalette (index.html:503:7)
applyPalette() 在初始化早期调用了 updateHUD(),而后者读了一个更晚才 let fps = … 声明的变量。
值得肯定的是它自己实现的 __DEMO_ERROR 钩子正常工作了,把堆栈规规矩矩显示在了页面上——
错误处理写对了,就是代码有 bug。
然后只做了一轮修复,反馈内容全是机器采集的客观信息:真实错误堆栈、__DEMO_READY=false、
控制台错误数、“画面除错误框外全黑”,没有人工告诉它该怎么改。111 秒后修好:__DEMO_READY 为 true,
页面错误和控制台错误都是 0。
跑在这个页面上的就是修复版。它带来了两个新问题,也一并留着:
- 画面几乎全白。整幅是浅蓝白的雾,看不到黑洞与吸积盘结构,过曝比 Astra 那一版严重得多。
?t=的确定性契约被破坏。同一个?t=7.5连拍两次,截图 sha256 不再相同—— 一次生成那版是可复现的,修 bug 的过程中把时间锁或随机源改坏了。
粒子数是 300,000,三家里最少(另两家都自报 100 万)。初始化耗时 25.5 秒。
操作:拖动旋转、滚轮缩放、空格暂停、1/2/3 切配色。
同组对比
演示用的 three.js r170 由本站自己托管,运行时不请求任何第三方域名。 作者以个人身份发布,测试自付费用,内容不代表任何雇主立场。