L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Design et création · SKILL.md

supersplat

supersplat

Use when editing 3D Gaussian Splatting (3DGS) .ply models in browser — cleanup noise/floaters, crop, transform, color-adjust, animate camera, publish online. SuperSplat: open-source browser-based 3DGS editor by PlayCanvas with PLY/compressed PLY/Splat/KSplat/SOG export.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: supersplat description: "Use when editing 3D Gaussian Splatting (3DGS) .ply models in browser — cleanup noise/floaters, crop, transform, color-adjust, animate camera, publish online. SuperSplat: open-source browser-based 3DGS editor by PlayCanvas with PLY/compressed PLY/Splat/KSplat/SOG export." tags:

  • 3d
  • gaussian-splatting
  • 3dgs
  • webgl
  • webgpu
  • typescript
  • playcanvas
  • editor

项目地址: https://github.com/playcanvas/supersplat

在线编辑器: https://superspl.at/editor | 用户手册: https://developer.playcanvas.com/user-manual/gaussian-splatting/editing/supersplat/

许可证: MIT | 最新版本: v3.3.1(2026-09,详见 GitHub Releases)| 默认分支: main

概述

SuperSplat 是「3D 高斯泼溅领域的 Photoshop + 发布平台」:完全基于 Web、免下载安装、源码开源。它专为 3DGS「训练之后、上线之前」的后期处理而生,解决原始 .ply 噪点多、体积大、坐标不规范、缺乏清理/动画/发布能力等问题。

  • 检查 / 编辑:加载、查看、选择并删除高斯点(噪点、漂浮物 floaters)。
  • 变换 / 裁剪:平移/旋转/缩放、包围盒裁剪、多模型场景管理。
  • 外观优化:颜色调整、球谐(SH)带数控制。
  • 动画:相机姿态关键帧、时间轴、动画导出。
  • 导出 / 发布:多格式导出(含压缩),或一键发布到 PlayCanvas 托管获得分享链接。
  • 技术栈:TypeScript + PlayCanvas 引擎(createGraphicsDevice 初始化 WebGL2/WebGPU)+ PCUI 组件库 + i18next 国际化 + Rollup 构建。

3DGS 由 Inria 2023 年论文《3D Gaussian Splatting for Real-Time Radiance Field Rendering》提出,相比 NeRF 具备实时渲染、训练快、画质高的优势。


在线使用(推荐)

直接打开 https://superspl.at/editor,将训练产出的 .ply(COLMAP + gaussian-splatting / Postshot / Nerfstudio 等)拖入即可,无需安装。

典型后期处理流程:

  1. 导入 .ply 高斯模型。
  2. 清理:用选择工具框选/套索选中噪点与漂浮物 → 删除(删除仅打 deleted 标记,导出时才真正剔除,可撤销恢复)。
  3. 裁剪:用包围盒裁掉无关区域。
  4. 变换:摆正坐标系、调整朝向与比例(多模型场景可分别变换)。
  5. 调色:调整颜色、设置保留的 SH 带数。
  6. 动画(可选):设置相机关键帧与时间轴。
  7. 导出 / 发布:选择格式导出,或发布到云端。

导出格式

导出弹窗(src/ui/export-popup.ts)支持:

格式扩展名特点适用场景
标准 PLY.ply无损、体积大、通用归档、再编辑、跨工具交换
压缩 PLY.compressed.plyPlayCanvas 量化压缩,体积大幅减小,仍是 PLYWeb 加载、平衡体积与兼容性
Splat.splatantimatter15 紧凑二进制轻量 Web 查看器
KSplat.ksplatmkkellogg 的分块/可流式格式Three.js 高斯查看器
SOG.sogSelf-Organizing Gaussians,WebP 纹理存储,体积极小Web 发布、移动端

减小体积三板斧(常把数百 MB 压到几 MB):

  • 删除噪点:导出时被标记删除的点不写入,点数 = 原始 − 已删除。
  • Compress PLY:开启量化压缩。
  • 降低 SH Bands:高阶球谐占绝大多数属性;Web 场景常保留 0–1 阶即可,会损失少量视角相关高光但显著减小体积。

带查看器导出:可打包成自包含 HTML 或 ZIP(Package),含相机动画与循环模式(none / repeat / pingpong),双击即可在浏览器观看。


发布到 PlayCanvas 平台

一键发布(src/publish.ts、src/ui/publish-settings-dialog.ts)获得在线可分享、可嵌入链接:

  1. 登录校验:fetchUser() 请求 /api/id;未登录引导登录 PlayCanvas 账号。
  2. 填写设置:标题、描述、是否公开列出(listed)。
  3. 分片上传:PublishWriter 经 start-upload → signed-urls → 分片 PUT → complete-upload。
  4. 发布:调用 /splats/publish,格式为 SOG;开启 generateLods 则为 ssog(多分辨率 LOD,加载更快)。

本地开发与二次开发

git clone https://github.com/playcanvas/supersplat.git
cd supersplat
npm install            # 需 Node ≥ 20.19.0
npm run develop        # = watch(Rollup 监听构建)+ serve(静态服务 dist)

⚠️ SuperSplat 注册了 Service Worker(src/sw.ts)。开发调试务必关闭缓存:Chrome DevTools → Application → Service Workers 勾选 “Update on reload”,或 Network 勾选 “Disable cache”,否则可能看到旧版本。

常用脚本(package.json):

命令作用
npm run build生产构建(rollup -c)
npm run watch仅监听构建
npm run serve仅启动静态服务器
npm run lintESLint 检查 src

源码架构速览

模块职责
src/main.ts应用入口,按序装配编辑器;用 PlayCanvas createGraphicsDevice 初始化 WebGL2/WebGPU
src/events.tsEvents 类继承 PlayCanvas EventHandler,扩展函数注册/调用,是 UI 与逻辑解耦的核心
src/scene.ts / src/pc-app.tsScene 基于 PCApp,管理一组 Element(ElementType:Splat/Camera/grid/叠加层等)
src/splat.ts / src/splat-state.tsSplat 类封装 GSplat 资源与每点状态(含 deleted/hidden 标记)
src/splat-serialize.ts / src/file-handler.ts序列化与文件读写(导出核心)
src/ui/(基于 @playcanvas/pcui)EditorUI 装配菜单/工具栏/面板;面板通过事件与逻辑通信
src/ui/localization.tsi18next 多语言,语言文件 static/locales/*.json
rollup.config.mjsTypeScript + node-resolve + SCSS + image/json,生产用 terser 压缩、strip 去调试

二次开发要点:UI 与逻辑通过 Events 事件解耦——新增功能通常是「注册事件/函数 + 新增面板组件」,而非直接耦合调用。


常见问题(FAQ)

问题解决
删除后文件没变小删除只打标记,导出时才真正剔除;导出后点数才下降
想恢复误删的点用撤销(Undo)恢复 deleted 标记;导出前务必确认清理无误
隐藏(hidden)与删除区别隐藏的点默认仍会导出,删除的点导出时被剔除
导出文件太大删噪点 + 勾选 Compress PLY + 降低 SH Bands;Web 发布优先压缩 PLY 或 SOG
本地开发看到旧版本Service Worker 缓存,按上文关闭缓存 / Update on reload
npm install 失败确认 Node ≥ 20.19.0(package.json engines 要求)
该用哪种格式继续编辑/归档→PLY;网页加载→压缩 PLY 或 SOG;对接特定查看器→splat/ksplat
原始 .ply 从哪来3DGS 训练工具(COLMAP+gaussian-splatting、Postshot、Nerfstudio 等)产出

AI 使用建议

  • 用户提到「高斯泼溅 / 3DGS 编辑」「清理 .ply 噪点」「压缩高斯模型上网页」「SuperSplat 二次开发」时加载本技能。
  • 区分用工具(在线 superspl.at/editor 的后期处理流程)与改源码(本地 npm run develop + 事件驱动架构)两类需求。
  • 减体积一律建议「删除噪点 + Compress PLY + 降低 SH Bands」组合,并按目标查看器选格式。
  • 提醒本地开发关闭 Service Worker 缓存,否则改动不生效。
  • 二次开发强调通过 src/events.ts 的 Events 解耦,新增功能=注册事件+新增 PCUI 面板。

参考资源

Skills enregistrées