Step 5 Preview 模型写 3D 象棋,两个小时上线

5 阅读8分钟

先把东西摆出来。 3D 中国象棋:楚河汉界直接写在木纹盘面上,七种棋子七种独立造型,红方朱漆金字、黑方乌木金字,一盏聚光灯绕着棋盘慢慢转。完整规则——蹩马腿、塞象眼、炮翻山吃子、将士不出九宫、六十回合无吃子判和——全部实现,走法生成过了 perft 权威校验(44 / 1920 / 79666,与 Chess Programming Wiki 的参考值一致),52 项断言全过。 访问地址 https://jlnvv-tom.github.io/chinese-chess/

它不是我一笔一画写的,也不是哪个美术团队做的:是 Step 5 Preview,一天之内,从零生成。这篇拆两件事:这个模型的测评数字到底什么水平,以及它写 3D 这种东西,强在哪、卡在哪。

先看效果

SHOWTIME · 六张实机截图

3D 象棋全局视角

全局视角。七种棋子七种造型,全是 Three.js 图元拼的,整个工程里找不到一个模型文件。

红方棋子特写

红方特写。字牌是 Canvas 程序化生成的贴图,金漆描边,字号前后调过三轮才够醒目。

楚河汉界特写

楚河汉界。这四个字曾经整段消失——three.js r149 不声明 sRGBEncoding,贴图会被色调映射冲成白色。

炮的隔山吃子弹道

炮的隔山吃子被画成抛物线弹道。规则不可视化是初学者最大的困惑点,这层是模型自己加的。

将军状态

将军状态,受将方亮红色脉冲光。这个细节来自我反馈后的迭代,不是第一版就有的。

浮动缩放按钮

右下角浮动缩放按钮。第一版方向写反了,按+是拉远。

所有这些画面背后没有任何素材文件:棋子是 Three.js 图元拼的造型,木纹年轮、金漆字牌、光晕、远山剪影,全部由 Canvas 程序化生成贴图。光影是动态的——主聚光灯缓慢环绕产生移动投影,冷色轮廓光在呼吸,将军时红光脉冲,还有萤火粒子、上升光尘和体积光束。

打开你手上的项目,先回答一个问题:你的产品里,有多少视觉效果是 “应该由代码生成”却还在手动切的图?

02

PART

这个模型是什么来头

THE MODEL · 600B MoE

Step 5 Preview 是阶跃星辰(StepFun)的旗舰基模,2026 年 9 月 20 日先开 API,2026 年 10 月 15 日按约定开放权重,Hugging Face 上的仓库是 stepfun-ai/Step-5-Preview-BF16,28 个分片。

架构是稀疏 MoE:总参数 600B,每个 token 只激活 27B(约 4.5%),92 层“窄而深” Transformer,1M token 上下文,原生支持文本、图片和视频输入。价目表也摆一下:

项数字
输入价格1 美元 / 百万 token
输出价格2.7 美元 / 百万 token
缓存读取0.05 美元 / 百万 token
上下文窗口1M token
生成速度约 100 token/s(官方口径)

想自己部署的,先看门槛:官方 FP8 方案要 4 张 B300 或 8 张 H200;BF16 权重约 1.2TB,按 Forkast 的估算接近 8 张 H100 80GB。社区已经有第三方 GGUF 量化版在流通,上架八天约 2000 次下载——这是大多数人的现实路径。

03

PART

测评数字:哪些能信,哪些要打折

BENCHMARKS · 自报 vs 第三方

我把能找到的公开测评拉了一张表,并且标了口径——官方自报和第三方验证的可信度不是一回事:

测评项分数口径
Artificial Analysis 智能指数44(v4.3.2)第三方
Terminal-Bench 4.033.3%第三方
Terminal-Bench 2.185.0%第三方
DeepSWE v1.167.7%官方自报
SWE-Marathon v1.172.7%官方自报
CyberGym84.7%官方自报
GPQA Diamond93.5%官方自报
FrontierFinance66.4官方自报

两个读数值得单独说

第一,和闭源旗舰的差距在编程榜上很直观:DeepSWE v1.1 上 Claude Opus 5 是 74.0%,Step 5 Preview 是 67.7%——同一个榜差 6 个点,而按阶跃官方口径,单任务成本约为 Claude Opus 5 的八分之一。这个价差买 6 个点,划不划算,取决于你跑的是什么任务。

第二,更该看结构而不是总分。Terminal-Bench 4.0 上它是 Kimi K3 的 2.6 倍(33.3% 对 12.6%),而两者在 AA 智能指数上同为 44。通用智能打平、agentic 任务拉开差距,指向的是训练目标的差异:长程强化学习加上下文压缩,专门为多步骤任务调的。

官方还有个内部测试:让它自主优化 GPU kernel,连跑 22 小时,最终 508 TFLOPS,超过 Claude Opus 5 同题的 493 TFLOPS,成本约八分之一——这是厂商内部口径,没法外部复现,看个方向就行。

市场用脚投过票:10 月 10 日它登顶 OpenRouter Trending 榜,周调用量、日调用量都排到全球第二。

04

PART

一天实录:强在哪,卡在哪

FIELD NOTES · 第一手过程记录

测评是别人的数字,我这边有一手的。这个象棋项目从零到交付都在一天内,过程和踩坑都记在案。

先说强的

规则正确性不是蒙的

perft(走法枚举计数)初始局面校验 44 / 1920 / 79666 三层全对。这里有个细节:初始局面每个炮有 12 着,第 12 着是“隔敌方炮吃对方底线马”——黑炮正好充当炮架。这个着法手工推演极易漏掉,模型自己穷举出来了,还配了 52 项 Node 断言防回归。

测试意识是自带的

Node 单元测试、Playwright 浏览器对局测试、单文件 file:// 验证,一条龙都有。交付也完整:打包脚本、README、截图文档,一个不缺。

交付形态是完整的

11 个 JS 模块分工清晰(规则/贴图/棋子/场景/相机/音效/AI/交互/UI/主控),一个打包脚本产出 701KB 单文件,file:// 直接跑,断网也能玩。

再说卡的——每一条都是我盯着实际跑起来才发现的

1

three.js r149 的色彩管理:CanvasTexture 不显式声明 sRGBEncoding,会被当线性色解释,过一遍 ACES 色调映射后整体泛白,“楚河汉界”四个字直接淡到看不见。这不是模型不懂,是版本特定的坑,得真机跑过才知道。

2

几何坐标的一致性:盘面盒顶面 y=0.64,棋子立在 0.61,全部沉进盘子里;刻线长度也超标(横线写了 8.72,应为 8.0)。这类错误看代码看不出来,只有渲染出来才现形。

3

交互细节连着一串:动画期间的点击会被静默吞掉,要加 pendingCell 点击队列;缩放方向第一版写反;相机投影中心换算漏除一个 2;悔棋恢复棋子时旋转没重置,棋子会躺平。

所以这一天的真实分工是:模型负责把 90% 的活干到 90 分,剩下 10% 是“真跑起来才能发现的问题”,全靠人当验收员。而这个项目的验收工具是 perft 和断言——没有它们,你根本不知道模型交付的规则引擎是不是对的。

05

PART

这对写代码的人意味着什么

WHAT IT MEANS · 三个判断

三个判断,不一定对,供参考。

1

瓶颈正在从“写”挪到“验”。模型出活的速度已经不是约束,约束是你有没有能力判断它对不对。这个象棋项目里,验证手段是现成的:象棋有 perft 这种权威计数,你的业务有什么?是测试覆盖率,是数据对账,还是一双盯截图的眼睛?

2

开源权重改变了试错成本。API 随用随开,OpenAI 兼容接口,迁移成本低;自部署门槛极高(8 卡起步),但社区量化版已经把“在自己机器上跑一个 600B 模型”变成了可能。对个人开发者,这是第一次能摸到这个量级的国产旗舰。

3

别信任何单一榜单。同一个模型,DeepSWE 上 67.7% 不算顶尖,Terminal-Bench 4 上却是开源集里的 2.6 倍选手。测评数字要连口径一起读,自报的和第三方验证的要分开看。

把这条挪到自己身上:如果明天让模型给你重写一遍核心模块,你凭什么判断它对不对?答不上来,就先别急着换工具——先补验证。

///

LAST

写在最后

CLOSING · 分工反转的一天

这个象棋项目给我最大的震动不是“模型会写 3D 了”,而是分工的彻底反转:我一天里做的最多的事,不是写代码,是当验收员——跑 perft、翻断言、盯截图、复现用户反馈的每一个怪象。模型负责快,我负责对。

Step 5 Preview 的数字摆在那:600B 参数、27B 激活、AA 指数 44、开源权重已上线。它当然不完美,DeepSWE 差闭源旗舰 6 个点,色彩管理这种版本坑照样踩。但“一天从零到一个能玩的 3D 象棋”这件事本身,说明国产旗舰已经进了可用的区间。

模型负责快,我负责对。

象棋的源码、全部截图、benchmark 原始表我都整理好了,后台回我 「step5」 就行。

你手上有没有那种“早就想做但卡在美术/前端”的东西?评论区留言告诉我,下一期我挑一个点赞最高的,用同一个模型从零写给你看。

既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。