This is the official viewer for https://superspl.at and the SuperSplat Editor HTML export.

This webapp compiles to simple, self-contained, static website.
The app supports a few useful URL parameters (though please note these are subject to change):
&settings=url
- specify the URL of thesettings.json
file (default is./settings.json
)&content=url
- specify the URL of thescene.compressed.ply
file (default is./scene.compressed.ply
)
As well as the following:
&noui
- hide UI&noanim
- start with animation paused&poster=url
- show an image while loading the scene content&ministats
- show the runtime CPU (and on desktop, GPU) performance graphs&skybox=url
- specify an equirectangular skybox image for the skybox
To initialize a local development environment for SuperSplat Viewer, ensure you have Node.js 18 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
-
Build SuperSplat Viewer and start a local web server:
npm run develop
-
Open the browser at http://localhost:3000.
The settings.json
file has the following schema (as defined in typescript, taken from SuperSplat editor):
type AnimTrack = {
name: string,
duration: number,
frameRate: number,
target: 'camera',
loopMode: 'none' | 'repeat' | 'pingpong',
interpolation: 'step' | 'spline',
keyframes: {
times: number[],
values: {
position: number[],
target: number[],
}
}
};
type ExperienceSettings = {
camera: {
fov?: number,
position?: number[],
target?: number[],
startAnim: 'none' | 'orbit' | 'animTrack',
animTrack: string
},
background: {
color?: number[]
},
animTracks: AnimTrack[]
};
{
"background": {"color": [0,0,0,0]},
"camera": {
"fov": 1.0,
"position": [0,1,-1],
"target": [0,0,0],
"startAnim": "orbit"
}
}
- We plan to convert the source to typescript