空间产品工程商业项目· TorchCloud 二代产品系
TorchCloud 二代平台与混合场景编辑器
第二代云端空间计算平台,门户采用 Nuxt 混合渲染兼顾 SEO 与工作台,编辑器抛弃官方界面层,自研支持 3DGS、Mesh 与灯光混合编排的场景编辑器。
- Nuxt 4
- Vue 3.5
- Vite 8
- Tailwind 4
- Pinia
- PlayCanvas 2.21
- TypeScript
- 我的角色
- 平台架构设计,混合场景编辑器引擎层与撤销重做体系,Bridge 协议与上传组件
- 材料说明
- 项目资料与交付记录
- 混合编排对象类型(3DGS / 4DGS / GLB / 几何体 / 灯光 / 热点 / 运镜)
- 7
- 编辑操作纳入撤销重做栈
- 100%
- 编辑器分层(Vue 壳 / 纯 TS 引擎层 / 算法移植层)
- 3
其余 1 项指标与口径
- 编辑器分层(Vue 壳 / 纯 TS 引擎层 / 算法移植层)
- 3
背景问题
官方 SuperSplat 只能编辑单个高斯点云,且界面强绑定其自有 UI 体系;PlayCanvas 官方编辑器则依赖闭源后端,无法做 Splat 级编辑。二代平台需要一个能混合多种资产并且可以发布的编辑器。
约束
- 门户既要对外做 SEO,又要承载登录后的工作台。
- 编辑器要能作为子应用嵌入平台,也要能独立打开。
- 所有编辑操作必须可以撤销与重做。
架构
TorchCloud 门户(Nuxt 4)
├─ 公开页面:SSR / SSG,canonical / OG / JSON-LD / sitemap
├─ 工作台:CSR,禁入公开缓存
└─ packages/bridge ──► 编辑器 iframe(版本化协议,Origin 与 Schema 双重校验)
混合场景编辑器
Vue 壳(面板 / 工具栏)
└─ src/editor 纯 TS 引擎层(框架无关)
└─ src/editor/ported 算法移植层(选区 / 裁剪 / 数据处理)
关键决策与取舍
- 不直接用官方界面:编辑器抛弃 PCUI,使用无头 PlayCanvas 加自研 Vue 界面,换取布局与交互的自由度。
- 两条单向通道:引擎事件同步到 Pinia;UI 操作封装为带
execute / undo的命令对象交给引擎。这样撤销重做不依赖 UI 状态。 - 算法移植并锁行为:选区工具、删除裁切等操作从开源编辑器移植,先用 vitest 固化现有行为,再做剥离。
- 引擎版本锁定:算法基于特定版本移植,升级引擎必须全量回归选区工具。
- 业务归宿主:登录态、计费与自动保存由宿主负责,编辑器只做契约校验与回传。
结果
- 同一编辑器既可以嵌入门户,也可以作为独立应用打开,编辑数据共用同一套保存与加载流程。
- 编辑器支持多个 Splat 与 GLB 的实例化、灯光与热点的 TRS 编辑,以及视频导出。
我的职责
- 门户的渲染策略与 Bridge 协议设计。
- 编辑器引擎层、撤销重做体系与算法移植。
- 上传组件与项目持久化流程。