做一个数字孪生项目,真正麻烦的往往不是"把模型显示出来"。
模型加载之后,还有场景布局、灯光、材质、天气、特效、相机漫游、设备交互、实时数据接入......这些工作拆开来看都不算陌生,但组合到一个项目里,开发量会迅速膨胀。
所以我一直在想:能不能把数字孪生项目中重复度最高的部分,做成一个可视化编辑器?
这就是 ThreeFlowX。
先看最终效果
下面这个工业园区场景,包含厂房、道路、车辆、围栏、烟囱、火焰、烟雾、绿化和工业设备等内容。它不是一张预渲染效果图,而是 ThreeFlowX 编辑器中可以继续选择、移动、配置和联动的实时 3D 场景。


ThreeFlowX 的目标并不是让用户完全告别代码,而是把建模之后那些重复、零散的开发工作,变成拖拽和配置。
简单来说:
模型负责"长什么样",ThreeFlowX 负责"怎么摆、怎么动、怎么交互、怎么接数据"。
1. 像搭积木一样组织 3D 场景
编辑器左侧提供了模型、数字孪生元素、图表、特效、文本、图片、视频、着色器、树木、几何体和灯光等资源。
使用时,可以直接把需要的内容拖进场景,再通过右侧面板修改位置、旋转、缩放、材质和阴影。
目前支持导入:
- GLB / GLTF
- FBX
- OBJ
- STL
- USDZ
这意味着已有的 Blender、3ds Max 或其他建模软件资产,可以继续使用,不需要围绕编辑器重新制作一遍。

2. 没有现成模型,也能快速补齐场景
搭建园区时,经常会缺少一些不起眼、但又不能没有的内容,例如道路、围墙、路灯、消防栓、停车杆、厂房和烟囱。
如果每个物体都重新建模,成本并不低。
ThreeFlowX 内置了一批可参数化的数字孪生元素,包括:
- 道路、围栏、围墙和大门
- 路灯、交通灯和交通标志
- 消防栓、消防管和停车杆
- 厂房、厂区建筑、鼓风机房
- 烟囱、哨塔、气象站、电锅炉
这些元素并不是不能修改的固定素材。用户可以直接调整长宽高、颜色、数量、开合程度、水位、压力等参数。
例如,拖入一段围墙后,可以修改长度和立柱数量;拖入停车杆后,可以调整抬杆幅度;拖入消防设备后,还可以配置阀门开启程度。

3. 数字孪生不只是"能看",还要"能交互"
很多 3D 项目最后停留在模型浏览阶段:可以旋转、缩放,但无法表达业务。
ThreeFlowX 提供了可视化交互事件配置。可以为模型绑定单击、双击、鼠标移入和鼠标移出事件,并组合执行:
- 高亮或聚焦模型
- 移动相机
- 显示、隐藏、移动、旋转模型
- 播放模型动画
- 更新文字内容
- 播放或暂停视频
- 跳转业务页面
- 启动相机漫游
- 显示消息提示
例如,点击厂房后让镜头自动聚焦,同时高亮设备并显示运行参数。这类常见交互不需要再单独编写一套射线检测和事件分发代码。
交互还可以增加条件判断,比如"设备状态异常时才显示警告",或者"相机进入指定区域后触发某个动作"。

4. 通过 WebSocket 接入实时数据
低代码编辑器如果只能搭场景,距离数字孪生还有很远。
ThreeFlowX 支持配置 WebSocket 任务,让外部系统通过消息控制场景中的对象,例如:
- 更新模型位置、旋转和缩放
- 控制模型显隐及颜色
- 更新设备文本
- 播放或停止设备动画
- 控制视频播放
- 移动相机或启动漫游
- 聚焦指定设备
假设后台推送一条设备告警消息,前端场景可以把对应设备标红、镜头聚焦到设备,并同步更新旁边的信息面板。
这样一来,3D 场景就不再是一张独立的大屏,而是业务数据的一种空间化表达。

ThreeFlowX 适合哪些场景?
目前比较适合的方向包括:
- 工业园区与智慧工厂
- 设备监控与运维平台
- 仓储物流可视化
- 智慧交通与园区安防
- 能源、水务和环保监测
- 3D 数据大屏与项目演示
它不能替代 Blender 等专业建模软件,也不会让复杂业务完全不写代码。
它解决的是建模完成之后,大量重复的场景搭建和交互开发工作。对于需要频繁制作 3D 项目的团队来说,这部分时间往往更值得被节省。
写在最后
ThreeFlowX 仍在持续完善。
我更希望它成为一个真正能参与项目交付的工具,而不只是一个用来展示模型的 Three.js Demo。
如果你正在做数字孪生、智慧园区或 3D 可视化项目,也欢迎体验并提出建议。哪些功能最影响实际交付,哪些操作还不够顺手,都可以一起讨论。