ThreeJSON 横空出世:一个 JSON 驱动、AI 友好的开源 3D 引擎(基于 Three.js)

11 小时 8 分钟前
 tianhehechu

我写了一个非常牛叉的东西,做梦笑醒了,不敢孤芳自赏,分享给 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 交互世界。

核心架构与技术特性

1. 规范真源:JSON 为王 (Single Source of Truth)

ThreeJSON 中,JSON 是场景的唯一规范真源

2. 完备的声明式对象与组件体系

内置丰富的声明式对象,支持位置、旋转、缩放、材质、纹理、动画和事件的完整参数化配置:

3. 高效的对象管理与运行时变更

4. 动态交互、动画与扩展机制

面向 AI 与 Agent 的下一代设计

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 本地体验,预计近几天会修复该问题。

2750 次点击
所在节点    分享创造
46 条回复
franklioxygen
11 小时 1 分钟前
Failed to load resource: the server responded with a status of 404 ()
tianhehechu
10 小时 59 分钟前
@franklioxygen Demo 挂在 GitHub Pages ,试试魔法一下。
aoyi
10 小时 40 分钟前
Demo 什么都运行不出来
senooo
10 小时 18 分钟前
Demo 什么都运行不出来 +1
Yasuke
10 小时 17 分钟前
有点想看做梦笑醒是什么样子,龇牙咧嘴吗?
qrobot
10 小时 15 分钟前
@tianhehechu Failed to load resource: the server responded with a status of 404 ()

你先打磨一下在宣传吧。 别怪梯子的问题
JiZhiDeboy
10 小时 13 分钟前
@tianhehechu 能访问 v2 肯定是挂着梯子的,另外提示的是 404 理解一下什么场景是出 404 ,跟梯子没有关系。
tianhehechu
10 小时 9 分钟前
@aoyi 正在修复这个问题,预计下午就能正常用了
tianhehechu
10 小时 8 分钟前
@qrobot 好的,我看一下
skuuhui
10 小时 2 分钟前
v 站是玩具项目严父
Sundayz
9 小时 59 分钟前
1. “AI 不必尝试去生成晦涩且容易出错的 Three.js 源码”,2023 年你可以这么说,但现在已经 2026 年了;
2. 看描述只能定义场景,那业务代码放在哪呢
3. “高效加载外部 3D 模型(如 glTF/FBX )”,基于 Three.js 做了哪些模型加载优化
4. Three.js 的 API 设计真的很复杂吗,比这个更加复杂吗,这个对原始 API 的覆盖率有多少
5. 建议用这个把 Three.js 的 examples 全部复刻一遍,才能只能知道是不是真的简化代码了,是不是使用起来会更加灵活
tianhehechu
9 小时 55 分钟前
@franklioxygen 问题已修复。若仍然遇到,可清除页面缓存或使用其他浏览器打开。感谢反馈。
tianhehechu
9 小时 55 分钟前
@aoyi 问题已修复。若仍然遇到,可清除页面缓存或使用其他浏览器打开。感谢反馈。
tianhehechu
9 小时 54 分钟前
@senooo 已修复。若仍然遇到,可清除页面缓存或使用其他浏览器打开。感谢反馈。
tianhehechu
9 小时 54 分钟前
@qrobot 已修复。感谢反馈。若仍然遇到,可清除页面缓存或使用其他浏览器打开。
tianhehechu
9 小时 54 分钟前
@JiZhiDeboy 已修复,页面标签页图标路径错误导致的 404 。感谢反馈。
tianhehechu
9 小时 52 分钟前
@Sundayz 让 AI 去用原生 Three.js 写出一个场景,与用 JSON 去描述一个场景,token 消耗是不同的。ThreeJSON 非常节省 token ,而且能让 AI 对场景作精细调整。
Atoony
9 小时 32 分钟前
查看宿主应用样例时,full.js 还是 404
RockerXH
9 小时 29 分钟前
用这个做 3D 打印的 3D 建模是不是简单很多
ddy10086
9 小时 22 分钟前
所以 json 数据源怎么来呢,建模软件导出的数据格式 还要转换一下吗。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1225155

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX