空间产品工程商业项目· MindCloudX AI 一代产品系
MindCloudX AI 一代 3DGS 平台
云端 3DGS 重建与三维资产管理的 Web 宿主平台,通过 iframe 与版本化 Bridge 统一调度多个 3D 子应用,并配套 Electron 桌面端。
- Vue 3.5
- TypeScript
- Vite 7
- Pinia 3
- Electron 34
- PlayCanvas
- Three.js
- 我的角色
- 宿主平台与跨应用协议设计,3D 子应用集成与桌面端对接
- 材料说明
- 项目资料与交付记录
- iframe 接入的 3D 子应用
- 4
- 界面语言(zh-CN / en-US / ja-JP)
- 3
- 运行形态(Web 宿主 / Electron 桌面)
- 2
其余 1 项指标与口径
- 运行形态(Web 宿主 / Electron 桌面)
- 2
背景问题
3DGS 的数据管理、训练任务、预览与深度编辑分属不同技术栈。若每个能力各自做账号与页面,用户路径割裂,团队也难以独立迭代。
约束
- 子应用需要独立开发与部署,宿主不能耦合其内部实现。
- 大体量数据上传不能经过业务后端。
- 同一个编辑器既要嵌入 Web 平台,也要打包成桌面应用。
架构
┌──────────── Web 宿主平台(Vue 3)────────────┐
│ 账号 / 算力计费 / 数据集 / 训练任务 / 快照 │
│ │ 宿主桥接协议(鉴权时序 + 能力收口) │
│ ├─ iframe ─► 沉浸式浏览子应用(React) │
│ ├─ iframe ─► 3DGS 编辑器(定制 SuperSplat)│
│ ├─ iframe ─► Mesh 查看子应用 │
│ └─ iframe ─► 点云查看子应用(Potree) │
└───────────────────────────────────────────────┘
桌面端:Electron 壳 ─ app:// 协议托管编辑器产物 ─ IPC 原生能力桥
关键决策与取舍
- 鉴权时序保护:子应用初始化后发送
child-ready与request-auth,宿主下发认证状态后才允许发起私有请求,避免子应用提前访问数据。 - 能力收口到宿主:登录、分享、反馈、返回导航与语言切换统一由宿主执行,子应用只发命令。
- payload 可结构化克隆:禁止传递 Vue Proxy,避免跨 iframe 消息失败。
- 直传对象存储:数据集由前端直接上传,业务后端只签发凭证。
结果
- 四个 3D 子应用通过同一套协议接入,新增子应用时宿主侧改动很小。
- 桌面端复用同一套编辑器产物,安装包版本与子仓库版本保持一致。
我的职责
- 宿主桥接协议的设计与宿主侧实现。
- 3DGS 编辑器的定制层与 iframe 接入,桌面端的 Electron 壳与本地文件服务。
- 平台侧数据集上传与训练任务的前端流程。