我已经从事AI驱动的3D生成工作超过一年了。

我反复遇到的一个问题,并不是让模型生成一些几何形状,而是如何从一条提示(prompt)得到一个我可以检查、修改、并真正导入到游戏项目中、而无需每次都从头再来的成果。

扩散式3D工具可以给出一个网格(mesh),但往往缺乏与之配套的工作流程。而如果让一个智能体(agent)松散地操控Blender或其他完整的3D软件包,当你需要精确修改某部分并保持其余部分不变时,也会变得混乱不堪。

于是我创建了Kiln。

Kiln是一个开源的程序化3D引擎和智能体工具链,用于用JavaScript构建可编辑的资源。

对于游戏开发来说,我认为它的用武之地在于快速、有序的资源原型制作:道具、机械、车辆、建筑、环境、布景装饰和刚体动画。一个智能体可以构建一个资源,从多个角度渲染它,检查其结构,修改其中一部分,然后导出GLB,而无需重新生成整个资源。

它还设计为具有较高的令牌(token)效率。智能体按需发现图元,而不是在上下文中携带整个API;通过紧凑的修订引用保存源代码;进行有针对性的编辑,而不是在每次交互中重新发送或重写整个程序。我尚未将其转化为通用的令牌节省百分比,因为实际成本取决于模型和框架,但减少重复上下文是架构的一部分。

智能体不是一次性返回一个完成的网格,而是通过Kiln的工具来处理资源。在典型运行中,智能体会:

  • 发现可用的几何体和材质辅助工具
  • 编写并验证资源程序
  • 渲染多个视图并读取结构测量值
  • 检查单个部件、内部结构和动画状态
  • 针对不可变的源修订版本进行精确编辑
  • 保存JavaScript、GLB、预览、清单和修订历史

沙盒目前公开了12个类别中的105个图元和辅助工具。包括基本形状、CSG布尔运算、曲线、程序化材质、车架、轮组、建筑辅助工具、动画、检查和导出工具。其目的是避免智能体每次需要齿轮、管材、倒角箱体、碟形件、框架或重复组件时重新发明基础几何数学。

Kiln不仅仅是一个MCP服务器。MCP只是其中一种适配器。该项目包括引擎、CLI、TypeScript库、智能体技能以及用于Strands等智能体框架的集成。你可以使用任何框架和多模态模型。运行时、编码客户端和GPU渲染器可以部署在不同位置,模型主要需要工具调用和视觉能力,以便检查自己的渲染结果。

附视频图库部分中的大部分资源都是从简单提示词一次性生成的,耗时大约一分钟左右。其中一些包含像视频中那样的修改。我没有将它们打磨成生产级美术资产。我想展示的是第一遍生成实际看起来是什么样子,以及同一份源代码如何在审查和编辑循环中持续演进。

我也不建议任何人将每个生成的GLB不加修改地直接放入已发布的游戏中。你仍然需要遵循常规的艺术方向、拓扑、材质、优化、碰撞、LOD、骨骼绑定和引擎集成标准。Kiln擅长的,是快速得到一个具体的、可编辑的原型,并在此之后保持迭代的有序性。

Kiln目前仍处于测试阶段。到目前为止,我大部分的集成测试都是在Three.js中进行的,包括Kiln自带的基于Three.js的查看器,以及GLB验证工具。与真实的Unity、Godot、Unreal及其他引擎管线的对接尚未经过充分的实战检验。我正在努力实现一个适当打包的1.0版本,来自真实游戏项目的反馈将帮助我决定在此之前需要收紧哪些方面。

渲染在本地进行,当有兼容硬件时可选用GPU渲染器。该项目采用MIT许可证。

GitHub:https://github.com/matthew-kissinger/kiln

交互式图库和源代码:https://kilnstudio.tools

我特别欢迎游戏开发者在实际项目中使用Kiln后的反馈。你可以将生成的资源导入到现有项目中,也可以围绕Kiln生成的资源构建一个小型项目。

请分享你制作了什么、哪些地方好用、哪些地方出了故障,以及你不得不进行的修复。最大的摩擦点在哪里:枢轴与缩放、拓扑、材质、碰撞、LOD、层级、动画,还是其他方面?