
以前做一个数字孪生项目,可能需要几万行代码。
模型加载、灯光配置、粒子特效、相机动画、鼠标交互......
大量时间都花在重复性的工程开发上,而真正的业务逻辑反而只占很小一部分。
做了几年 Three.js 之后,我一直在思考:
有没有一种方式,可以把这些重复工作全部可视化?
于是,我开始开发 ThreeFlowX。
为什么会有 ThreeFlowX?
第一次接触 Three.js 时,我和很多开发者一样。
一个场景,从零开始。
加载模型。添加灯光。调整材质。添加HDR。写后处理。绑定鼠标事件。写动画。
一个稍微复杂一点的数字孪生项目,很容易就变成几万行代码。
真正耗费时间的,并不是 Three.js 的渲染能力,而是:
- 场景搭建
- 参数调试
- 交互开发
- 动画配置
- 重复性代码
于是我开始尝试,把这些重复工作全部抽象出来。
慢慢地,就形成了今天的 ThreeFlowX。
编辑器初始界面:

它并不是一个简单的编辑器
很多人第一次看到 ThreeFlowX,会觉得:
"这是不是就是一个模型查看器?"
其实并不是。
它更像是一套 Three.js 场景生产工具。
除了模型编辑之外,还可以完成整个三维项目的大部分场景搭建工作。
例如:
- 场景管理
- 模型管理
- 材质编辑
- 灯光配置
- 后处理
- Shader
- 粒子系统
- 相机动画
- 鼠标交互
- UI组件
- 数据绑定
这些能力,都可以通过可视化方式完成。

丰富的3D场景资源
为了减少开发成本,编辑器内置了大量常用资源。
例如:
✅ 3D模型
支持:
- GLTF
- GLB
- FBX
- OBJ
✅ 灯光
支持:
- 平行光
- 聚光灯
- 点光源
- HDR环境光
✅ 场景资源
支持:
- 视频
- 图片
- Icon
- 文本
- HTML标签
- Shader
- ECharts图表
- 粒子系统
很多以前需要自己封装的功能,现在拖拽即可完成。

从"写代码"变成"拖拽配置"
以前。
一个模型加载以后。要写:
arduino
scene.add()
mesh.position
mesh.rotation
mesh.scale
不停修改代码。不停刷新页面。不停调参数。
而现在。
直接拖进去即可。位置。旋转。缩放。
实时修改。所见即所得。
整个过程更加符合设计软件的使用习惯。
我最喜欢的功能:低代码交互系统
对于 Three.js 来说。真正复杂的,其实不是模型。
而是交互。
例如:
点击模型以后:改变颜色。播放动画。显示隐藏。修改文本。播放视频。控制其它模型。这些以前都需要写大量代码。
例如:Raycaster, Tween动画管理,事件监听一个简单交互。可能就是几百行代码。
而在 ThreeFlowX 中。
这些都变成了:配置
选择事件。选择动作。保存即可。无需写任何业务代码。

相机漫游
数字孪生项目几乎都会涉及:
自动巡检。园区浏览。展厅介绍。
传统开发方式。
需要写大量 Tween 动画。路径计算。缓动控制。
现在。
直接编辑路径即可。
支持:
- 路径编辑
- 多关键帧
- 自动巡航
- 第一视角
- 飞行浏览


不止支持浏览器
很多编辑器只能运行在 Web。
而 ThreeFlowX 同时支持:
- Web
- Windows
- macOS
- Linux
基于 Electron 构建。
无论是企业内部工具。
还是交付给客户。
都可以快速部署。

实际应用场景
目前,它更适合以下项目:
- 数字孪生
- 智慧园区
- 智慧工厂
- 工业互联网
- WebGIS
- 三维可视化平台
- 数据驾驶舱
- 展厅展示
这些项目,大部分都存在大量重复性的三维场景搭建工作。
而 ThreeFlowX 的目标,就是帮助开发者把更多精力放在业务逻辑上,而不是重复造轮子。

写在最后
从最初为了提高自己的开发效率,到逐步演变成一套完整的 Three.js 低代码场景编辑器,ThreeFlowX 的成长离不开一次次真实项目的打磨。
我始终认为,Three.js 的价值不只是渲染一个炫酷的三维场景,更重要的是帮助开发者快速构建真正可落地的数字孪生、WebGIS 和三维可视化应用。
如果这篇文章能给同样在做 Three.js 开发的你带来一些启发,欢迎一起交流,也欢迎分享你在三维开发过程中遇到的问题和经验。相信通过不断完善工具和实践,我们都能把更多时间投入到真正创造价值的事情上,而不是重复编写那些早已可以被可视化替代的代码。
项目体验地址: