11月5日,一个叫GLB-3D-Coder的模型在开源社区上线,作者是独立开发者CCORE,授权方式是Apache 2.0。它的参数量只有40亿,基座是阿里Qwen3.5-4B。这个模型做的事听起来有点绕:你描述一个低模道具,它不给你一个三维网格文件,而是写出一整个自包含的网页,页面用Three.js把物体搭出来,右下角有个导出按钮,点一下才下载标准GLB文件。发布两天内,下载量超过两万次。
主流的文生3D路线是直接预测几何。模型输出顶点坐标、面片索引、材质贴图,结果是一个二进制文件。这条路的问题是产出不可读:用户拿到一个网格,想改一根管子的走向,只能回到建模软件里重新塑形,或者重新生成一遍。
GLB-3D-Coder换了个思路。它输出的是构建这个物体的程序:哪几个几何体、各自什么尺寸、摆在什么位置、用什么材质。这些内容以JavaScript的形式写出来,人能读、能改、能做版本对比。想调整某根管子的粗细,改一个数字就行,不必重跑模型。
这个选择还带来一个副产品:错误类型变了。直接生成网格的模型,出错时通常表现为几何融化、面片穿插、法线翻转,这类错误很难定位也几乎无法手修。而写代码的模型,出错时是语法错误、变量重名、漏掉导出调用,这类错误看一眼就能改。测试者就遇到过一次:模型生成的页面加载不出来,检查后发现是一个语法错误,手工改掉就正常了。
40亿参数在今天的模型版图里算很小的,它能做出可用结果,靠的是数据的针对性。据公开信息,训练集叫ThreeJS-3D-GLB-Assets,包含3918条已经渲染验证、并且能成功导出GLB的样本,覆盖40个领域,从角色、武器、载具到模块化建筑、道具、环境布景。
这个数据集的关键词是"验证过"。网上抓来的Three.js代码很多,但能让物体正确显示、并且导出流程完整的比例不高。模型如果在这类噪声数据上训练,学到的是似是而非的写法。而只喂验证过的完整样本,模型学到的是"一套能跑通的模式",包括场景初始化、光照设置、材质定义、导出函数调用这些容易被省略但又必不可少的环节。
这也是为什么它在机械合理性上表现不错。测试里有一组对比,用同一批提示词分别喂它和通用大模型,提示词里明确要求线缆要从腰带接到背包、轮缘要卡在轨道上、灯具要有安装支架。通用模型能写出语法正确的Three.js,但它得靠常识去猜这些零件之间的空间关系;而这个在小规模、高针对性数据上微调过的模型,已经在训练里见过几千次类似关系被解决的样子。
实测数据很直白。在RTX 3090上,生成一把铁剑用了2分25秒,输出14091个词元,速度约每秒146.8个词元,导出的GLB文件66KB,能干净地导入Godot 4.7.2。在八核CPU、没有显卡的机器上,生成一个魔法药水用了16分钟输出10145个词元,一个带开合动画的木门用了28分钟输出15144个词元。
这个差距说明了一件事:它确实是能本地跑的,但"能跑"和"好用"之间隔着硬件。CPU路径的实际意义不是日常使用,而是在没有显卡的环境下验证可行性,或者处理一两个不急的资产。
更需要注意的是输出长度。模型卡里写明平均回复约两万词元,训练样本最长到七万二千词元,并且明确警告不要设8000词元的输出上限。原因是这个模型的产出是一整页HTML,代码被截断就等于整个资产报废。这条限制对部署者来说是硬约束,很多本地推理工具的默认上限恰好在这个量级,不改设置就会持续得到残缺的输出。
模型的定位很明确:低模。系统提示要求生成"质量良好的低模"资产,只在用户明确要求时加动画,并且必须包含可用的导出路径。这个定位决定了它的适用边界。
适合的场景是原型与游戏开发早期。做原型时需要大量便宜的占位资产:箱子、门、招牌、药水、路障。这些东西不需要精细,需要的是形状对、比例对、能进引擎、能碰撞。传统做法是去素材站买包或者自己拉模型,现在一句话加两分钟就能出,迭代速度完全不同。
不适合的场景也很清楚。写实角色、精细道具、复杂场景,这些仍然要交给图生3D的商业服务。原因不在参数量,而在表示方式:代码构建的几何本质上是参数化拼装,它能精确描述"一个圆柱加一个球",但很难描述"一张有皱纹的人脸"。测试者也提到,材质、光照、动画在引擎里的表现可能与浏览器预览有差异,导出的GLB要拿到目标引擎里复核一遍。
这条路最容易被忽略的价值在协作侧。二进制网格文件没法做差异对比,两个人同时改一个模型,合并只能靠人工判断。而代码形式的资产可以用常规的版本工具管理,谁改了哪一行、改了什么参数,一清二楚。
这对团队工作流的影响是结构性的。美术与程序可以在同一个文件上协作:程序调导出逻辑与性能参数,美术调几何尺寸与材质。过去这两种修改发生在不同工具里,靠导出导入衔接,每次衔接都有信息损耗。
作者同步公开了数据集,并给出了十万条样本的路线图。这条路线说明他认为规模还能继续推。四十亿参数加近四千条验证样本就能到这个水平,如果再放大一个数量级,能不能覆盖更复杂的资产类型,是这个方向接下来最值得看的一点。开源的好处是这个问题会被很多人同时验证。