需要 Node.js 20 或更高版本;本地开发默认端口为 3000;默认加载 ./scene.compressed.ply 和 ./settings.json,需自行准备场景文件;AR/VR 必须加 ?webgl 参数,否则无法进入
supersplat-viewer
playcanvasMIT活跃维护在浏览器里流畅查看 3D 高斯泼溅模型的高性能查看器,基于 WebGL 和 WebXR,支持 VR 浏览,适合把重建结果直接放到网页上展示。
User-friendly, high-performance viewer for 3D Gaussian splats
git clone https://github.com/playcanvas/supersplat-viewer.git
cd supersplat-viewer
npm install
npm run developREADME 未说明显存或 GPU 型号要求;默认使用 WebGPU,不支持时自动回退到 WebGL;AR/VR 需加 ?webgl 强制 WebGL 渲染器
SuperSplat 官方 3D Gaussian splatting 查看器,编译成自包含静态站点,用 URL 参数即可加载和展示场景
在浏览器里流畅查看 3D 高斯泼溅模型的高性能查看器,基于 WebGL 和 WebXR,支持 VR 浏览,适合把重建结果直接放到网页上展示。
核心能力
- 支持 .ply、.sog、.compressed.ply 等场景格式
- 默认优先使用 WebGPU,不可用时自动回退到 WebGL
- 通过 URL 参数控制内容、UI、渲染器和碰撞体
- 可嵌入 NPM 包,并提供运行时控制与 UI 定制 API
- 支持 LOD 流式加载和实验性 stochastic 渲染器
容易踩的坑
- v1.42.1最新正式版2026-11-05 · 2026-11-05 13:18 UTC
What's Changed
- Use WebGL on the Quest Browser, whose WebGPU cannot host XR by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/354
- Cap the near plane's floor at the orbit's closest zoom by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/355
Full Changelog: https://github.com/playcanvas/supersplat-viewer/compare/v1.42.0...v1.42.1
- v1.42.02026-10-30 · 2026-10-30 13:06 UTC
查看更新说明
What's Changed
- Revert "Add experimentalTouchInsetBottom, a lift for host chrome over the viewer on touch devices (#340)" by @abstrakt8 in https://github.com/playcanvas/supersplat-viewer/pull/343
- chore: bump @playcanvas/eslint-config to 3.0.0-beta.9 by @kpal81xd in https://github.com/playcanvas/supersplat-viewer/pull/346
- chore: bump @playcanvas/eslint-config to 3.0.0 by @kpal81xd in https://github.com/playcanvas/supersplat-viewer/pull/348
- ci: replace release.sh with a release workflow by @kpal81xd in https://github.com/playcanvas/supersplat-viewer/pull/347
- XR controllers, AR placement and grab, splat floor and ice-cream hold improvements by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/349
Full Changelog: https://github.com/playcanvas/supersplat-viewer/compare/v1.41.0...v1.42.0
- v1.41.02026-10-23 · 2026-10-23 13:14 UTC
查看更新说明
What's Changed
- Load and play gsaf animated splat sequences by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/341
- Ship third-party notices for the gsaf decoder by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/342
Full Changelog: https://github.com/playcanvas/supersplat-viewer/compare/v1.40.0...v1.41.0
- v1.40.02026-10-22 · 2026-10-22 16:03 UTC
查看更新说明
What's Changed
- Add experimentalTouchInsetBottom, a lift for host chrome over the viewer on touch devices by @abstrakt8 in https://github.com/playcanvas/supersplat-viewer/pull/340
Full Changelog: https://github.com/playcanvas/supersplat-viewer/compare/v1.39.1...v1.40.0
- v1.39.12026-10-22 · 2026-10-22 10:34 UTC
查看更新说明
What's Changed
- Debug renderer and mode switching, splat counts, a VR Debug page, and no unused centres on WebGPU by @slimbuck in https://github.com/playcanvas/supersplat-viewer/pull/339
Full Changelog: https://github.com/playcanvas/supersplat-viewer/compare/v1.39.0...v1.39.1
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
SuperSplat Viewer
| User Manual | Blog | Forum |
This is the official viewer for SuperSplat.
The web app compiles to a simple, self-contained static website.
URL Parameters
The app supports a number of URL parameters (these are subject to change):
Content
| Parameter | Description | Default |
|---|---|---|
settings | URL of the settings.json file | ./settings.json |
content | URL of the scene file (.ply, .sog, .compressed.ply, .meta.json, .lod-meta.json) | ./scene.compressed.ply |
skybox | URL of an equirectangular skybox image | |
poster | URL of an image to show while loading | |
collision | URL of a collision asset (.glb mesh, or voxel data). voxel is accepted as an alias. |
UI
| Parameter | Description |
|---|---|
noui | Hide the UI overlay (the programmatic form is ui: false, which skips building it) |
reticle | Show the centre reticle in captured desktop fly/walk mode (off by default; programmatic form: reticle: true) |
noanim | Start with animation paused |
ministats | Show runtime CPU/GPU performance graphs |
lang | Override the UI language (de, en, es, fr, ja, ko, pt-BR, ru, zh-CN; default: detect from browser) |
Renderer
By default the viewer uses WebGPU when available (falling back automatically when not). The flag below forces the WebGL renderer (also required for WebXR / AR / VR):
| Parameter | Description |
|---|---|
webgl | Force the WebGL renderer (required for AR/VR) |
aa | Enable antialiasing (WebGL only) |
stochastic | Experimental unsorted, depth-tested splat renderer: stochastic for per-pixel quality, stochastic=mobile for phones and headsets. WebGPU only, its XR included |
splatSource | Developer knob for the stochastic renderer: the data path feeding it (direct, the default, reads the resident files in place; workbuffer reads the engine's work buffer) |
variant | Developer knob for the stochastic renderer: comma-separated key:value experiment switches over the mode's, e.g. taaSharp:8 |
nofx | Disable post effects |
hpr | Override highPrecisionRendering from settings (?hpr, ?hpr=1, ?hpr=true, ?hpr=enable to enable) |
budget | Override the splat budget, in millions of splats |
colorize | Render with LOD colorization |
fullload | Load all streaming LOD data before the first frame |
heatmap | Use heatmap mode for the voxel collision debug overlay. Requires WebGPU and voxel collision data; press V or use Show Collision in the settings panel to show the overlay. |
debug | Open the developer debug panel on load (Ctrl+Shift+D to toggle) |
NPM Package
See the API reference for embedding, runtime control, UI customization and settings.
Local Development
To initialize a local development environment for SuperSplat Viewer, ensure you have Node.js 20 or later installed. Follow these steps:
-
Clone the repository:
git clone https://github.com/playcanvas/supersplat-viewer.git cd supersplat-viewer -
Install dependencies:
npm install -
Start the development build and local web server:
npm run develop -
Open your browser at http://localhost:3000.
Debug engine build
By default the viewer links against the release build of the PlayCanvas engine. Set ENGINE=debug to link against the engine's debug build instead, which includes runtime assertions and unminified, readable source for easier debugging:
ENGINE=debug npm run develop
This also works with npm run build and npm run watch.