跪拜 Guibai
← All articles
Frontend · JavaScript · Interview

A 600B open-weight MoE builds a full 3D Chinese Chess game in one day — here's where it shines and breaks

By 怕浪猫 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Open-weight Chinese flagship models have crossed into usable territory for individual developers, but the bottleneck is shifting from generation speed to verification capability. Anyone using these models for real work needs a perft-like acceptance process, because model-produced code will pass ordinary tests yet still contain version-specific and interaction-level bugs that only appear under real execution.

Summary

A developer tasked Step 5 Preview, StepFun's flagship open-weight model, with building a full 3D Chinese Chess game. The result: a 701KB single-file web app with seven uniquely shaped pieces rendered from Three.js primitives, procedurally generated Canvas textures, full rule enforcement (including cannon captures and horse-leg blocks), dynamic lighting, and a moving spotlight. Move generation passed the authoritative perft count (44/1920/79666) and 52 Node assertions guard against regressions. The whole thing went from zero to deliverable in one day.

The model's benchmark profile: 600B total parameters with 27B activated per token (4.5%), 92-layer narrow-deep Transformer, 1M token context, native text/image/video input. Open weights shipped on Hugging Face (BF16, 28 shards). Third-party scores show 44 AA Intelligence Index, 33.3% on Terminal-Bench 4.0, and 85.0% on Terminal-Bench 2.1. It lags Claude Opus 5 by 6 points on DeepSWE (67.7% vs 74.0%) at roughly one-eighth the official cost per task.

The developer's field notes catalog the failure modes: three.js r149 color management washing out textures, geometry coordinates sinking pieces into the board, reversed zoom direction, swallowed clicks during animations, and missing rotation resets on undo. The takeaway: the model handles the 90% that's straightforward, but the remaining 10% only surfaces when actually run — and that's where perft, assertions, and a human acceptance checker become non-negotiable.

Takeaways
— Step 5 Preview is StepFun's open-weight flagship: 600B total params, 27B active per token (4.5% activation), 92-layer Transformer, 1M token context, native text/image/video input.
— Open weights released Oct 15, 2026 on Hugging Face as stepfun-ai/Step-5-Preview-BF16, split into 28 shards; self-hosting needs 4x B300 or 8x H200 for FP8, roughly 1.2TB of BF16 weights.
— The generated chess game passed perft initial-position validation: 44 / 1920 / 79666, matching Chess Programming Wiki reference values, plus 52 Node assertions.
— All game visuals are procedurally generated: pieces from Three.js primitives, textures from Canvas; no asset files exist in the project.
— API pricing: $1/million input tokens, $2.7/million output, $0.05/million cache read, ~100 tokens/s official generation speed.
— Third-party benchmarks: AA Intelligence Index 44, Terminal-Bench 4.0 33.3%, Terminal-Bench 2.1 85.0%. Self-reported: DeepSWE 67.7%, SWE-Marathon 72.7%, CyberGym 84.7%, GPQA Diamond 93.5%.
— DeepSWE gap to Claude Opus 5 is 6 points (67.7% vs 74.0%) at about one-eighth the official cost per task.
— On Terminal-Bench 4.0, Step 5 Preview scores 2.6x Kimi K3 (33.3% vs 12.6%), while both have the same AA Intelligence Index of 44.
— Real bugs found by running the game: three.js r149 needs sRGBEncoding on CanvasTexture or colors wash out; geometry coordinates sink pieces into the board; zoom direction reversed; clicks during animation are swallowed; undo doesn't reset piece rotation.
— The model adds its own polish: a parabolic trajectory for cannon captures, check state with pulsing red light, dynamic lighting with moving shadows and ambient particles.
— Community GGUF quantized versions exist; about 2000 downloads in eight days.
— Step 5 Preview topped OpenRouter Trending on Oct 10, with weekly and daily call volumes ranking second globally.
— Official internal test: model autonomously optimized a GPU kernel to 508 TFLOPS, beating Claude Opus 5's 493 TFLOPS, at about one-eighth the cost.
— The deliverable is an 11-module JS project bundled to a single 701KB file that works offline via file://.
— The developer's role that day was primarily acceptance checking: running perft, checking assertions, reviewing screenshots, reproducing user-reported anomalies.
Conclusions

Benchmark numbers without methodology are meaningless: the same model is 2.6x a rival on Terminal-Bench but tied on AA Index, and 6 points behind a closed flagship on DeepSWE. Reading total scores in isolation would lead to opposite conclusions about the model's agentic ability.

The failure modes reported are not about model ignorance but about version-specific environmental knowledge — color management in three.js r149, geometry coordinates, interaction edge cases. This sort of knowledge rarely appears in training data and requires real execution to surface, which is why human validation remains essential.

The 10% of bugs that appear only when running turn the development workflow from prompting into acceptance testing. The model accelerates the 90% that's well-represented in training data, but the last mile of correctness is a verification pipeline the developer must provide themselves.

The price-performance tradeoff is stark: paying one-eighth the cost for 6 points lower on DeepSWE is a rational trade for many batch or high-volume tasks, but useless for a mission-critical system where one wrong fix is expensive.

The open-weight release plus community quantizations changes the cost of experimentation for individual developers: they can now run a 600B-parameter model locally, something previously out of reach, even if it costs 8 GPUs for full precision.

Concepts & terms
perft
A move generation validation method for chess engines that counts all possible legal moves at a given depth. For a starting position, the counts are 44 at depth 1, 1920 at depth 2, 79666 at depth 3. Matching published reference numbers confirms the move generation logic is correct.
sparse MoE (Mixture of Experts)
A neural network architecture where only a small subset of parameters activates for each token. Step 5 Preview has 600B total parameters but only 27B (4.5%) active per token, reducing inference cost while keeping model capacity.
sRGBEncoding
A color management setting in Three.js that tells the renderer a texture is in sRGB color space rather than linear. Without declaring it, textures are treated as linear and end up washed out after tone mapping, a common Three.js gotcha.
OpenRouter Trending
A public ranking of AI models by API usage on the OpenRouter platform, indicating real-world demand from developers rather than just benchmark scores.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗