我写了一个非常牛叉的东西,做梦笑醒了,不敢孤芳自赏,分享给 V 友们同乐。
一句话介绍:ThreeJSON 支持使用 JSON 文本描述构建 3D 场景的一切。
本项目使用 MIT 协议开源。
GitHub 仓库地址: https://github.com/nnrj/threejson
Demo 页面: https://nnrj.github.io/threejson/
Npm: https://www.npmjs.com/package/threejson
可使用 VSCode 打开后,用 Live Sever 插件打开其中的 示例 html 页面体验。
ThreeJSON 的哲学浓缩成四句话: Scene as Data —— 场景即数据 Runtime as Engine —— 运行时即引擎 Domain as Extension —— 业务域即扩展 Agent as Operator —— Agent 即操作者
说人话就是:
你负责描述世界,AI 负责创造和修改世界,ThreeJSON 渲染和运行世界。
目前项目已开源,欢迎 V 友 们围观、试玩、提 Issue 。
[开始念经]
ThreeJSON 是一个 JSON 驱动的 Three.js 声明式场景运行时与 Web3D 引擎。它不是对 Three.js 的简单 API 包装或替代品,而是建立了一条完整的数据驱动链路:场景描述 统一解析 → 对象创建 → 场景装配 → 实时运行 → 增量修改 → 场景持久化。
通过将 3D 场景抽象为结构化数据,ThreeJSON 解耦了业务逻辑与底层渲染,让开发者无需重复编写冗长的初始化代码,即可高效构建复杂的 3D 交互世界。
在 ThreeJSON 中,JSON 是场景的唯一规范真源。
Object3D 的实时修改,可随时增量同步并导出为普通文件、数据库记录或 .tjz 资源压缩包。内置丰富的声明式对象,支持位置、旋转、缩放、材质、纹理、动画和事件的完整参数化配置:
threeJsonId、uuid、refName 或 name 快速定位对象。上层系统无需遍历复杂的 Three.js 树状场景树,即可在 systemBucket 或自定义分类桶中实现毫秒级查改。AnimationMixer 完美承接外部 glTF 模型内嵌的复杂骨骼与机械动画。handler 与 registry 机制向外延伸。开发者可针对“机房”、“港口”、“园区”、“工厂”等垂直数字孪生领域,自定义专属的模型组装方式、API 钩子和视觉规范。ThreeJSON 为大语言模型( LLM )和自主 Agent 提供了天然契合的 3D 场景表达方式。AI 不必尝试去生成晦涩且容易出错的 Three.js 源码,只需输出高度结构化的场景 JSON 。Agent 可以通过稳定的对象 ID 、JSON Patch 、动态命令接口和运行时变更为场景注入智能。
其核心设计哲学可完美概括为:
Scene as Data + Runtime as Engine + Domain as Extension + Agent as Operator
当前( 2026 年 7 月 6 日),GitHub Pages 页面加载不出场景,可在 Clone 本地体验,预计近几天会修复该问题。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.