{"id":28921832,"url":"https://github.com/playcanvas/supersplat-viewer","last_synced_at":"2026-04-01T17:36:29.259Z","repository":{"id":284392325,"uuid":"954602512","full_name":"playcanvas/supersplat-viewer","owner":"playcanvas","description":"A user-friendly viewer for 3D Gaussian splats","archived":false,"fork":false,"pushed_at":"2026-03-25T09:12:23.000Z","size":582,"stargazers_count":283,"open_issues_count":24,"forks_count":80,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-03-25T16:01:45.061Z","etag":null,"topics":["3d-gaussian-splatting","gaussian-splatting","playcanvas","webgl","webxr"],"latest_commit_sha":null,"homepage":"https://superspl.at","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/playcanvas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-25T10:34:41.000Z","updated_at":"2026-03-25T15:28:20.000Z","dependencies_parsed_at":"2025-04-09T19:31:55.989Z","dependency_job_id":"995bf4ad-9e1e-4161-920c-00721c04e05b","html_url":"https://github.com/playcanvas/supersplat-viewer","commit_stats":null,"previous_names":["playcanvas/supersplat-viewer"],"tags_count":75,"template":false,"template_full_name":null,"purl":"pkg:github/playcanvas/supersplat-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Fsupersplat-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Fsupersplat-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Fsupersplat-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Fsupersplat-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/playcanvas","download_url":"https://codeload.github.com/playcanvas/supersplat-viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/playcanvas%2Fsupersplat-viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30984562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-26T18:07:05.776Z","status":"ssl_error","status_checked_at":"2026-03-26T18:07:05.331Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-gaussian-splatting","gaussian-splatting","playcanvas","webgl","webxr"],"created_at":"2025-06-22T07:08:25.206Z","updated_at":"2026-04-01T17:36:29.230Z","avatar_url":"https://github.com/playcanvas.png","language":"TypeScript","funding_links":[],"categories":["Viewers \u0026 Game Engine Support","TypeScript"],"sub_categories":["Web Viewers"],"readme":"# SuperSplat Viewer\n\n[![NPM Version](https://img.shields.io/npm/v/@playcanvas/supersplat-viewer)](https://www.npmjs.com/package/@playcanvas/supersplat-viewer)\n[![NPM Downloads](https://img.shields.io/npm/dw/@playcanvas/supersplat-viewer)](https://npmtrends.com/@playcanvas/supersplat-viewer)\n[![License](https://img.shields.io/npm/l/@playcanvas/supersplat-viewer)](https://github.com/playcanvas/supersplat-viewer/blob/main/LICENSE)\n[![Discord](https://img.shields.io/badge/Discord-5865F2?style=flat\u0026logo=discord\u0026logoColor=white\u0026color=black)](https://discord.gg/RSaMRzg)\n[![Reddit](https://img.shields.io/badge/Reddit-FF4500?style=flat\u0026logo=reddit\u0026logoColor=white\u0026color=black)](https://www.reddit.com/r/PlayCanvas)\n[![X](https://img.shields.io/badge/X-000000?style=flat\u0026logo=x\u0026logoColor=white\u0026color=black)](https://x.com/intent/follow?screen_name=playcanvas)\n\n| [User Manual](https://developer.playcanvas.com/user-manual/gaussian-splatting/editing/supersplat/import-export/#html-viewer-htmlzip) | [Blog](https://blog.playcanvas.com) | [Forum](https://forum.playcanvas.com) |\n\nThis is the official viewer for [SuperSplat](https://superspl.at).\n\n\u003cimg width=\"1114\" height=\"739\" alt=\"supersplat-viewer\" src=\"https://github.com/user-attachments/assets/15d2c654-9484-4265-a279-99acb65e38c9\" /\u003e\n\nThe web app compiles to a simple, self-contained static website.\n\nThe app supports a few useful URL parameters (though please note these are subject to change):\n\n| Parameter | Description | Default |\n| --------- | ----------- | ------- |\n| `settings` | URL of the `settings.json` file | `./settings.json` |\n| `content` | URL of the scene file (`.ply`, `.sog`, `.meta.json`, `.lod-meta.json`) | `./scene.compressed.ply` |\n| `skybox` | URL of an equirectangular skybox image | |\n| `poster` | URL of an image to show while loading | |\n| `noui` | Hide UI | |\n| `noanim` | Start with animation paused | |\n| `ministats` | Show runtime CPU/GPU performance graphs | |\n| `unified` | Force unified rendering mode | |\n| `aa` | Enable antialiasing (not supported in unified mode) | |\n\nThe web app source files are available as strings for templating when you import the package from npm:\n\n```ts\nimport { html, css, js } from '@playcanvas/supersplat-viewer';\n\n// logs the source of index.html\nconsole.log(html);\n\n// logs the source of index.css\nconsole.log(css);\n\n// logs the source of index.js\nconsole.log(js);\n```\n\n## Local Development\n\nTo initialize a local development environment for SuperSplat Viewer, ensure you have [Node.js](https://nodejs.org/) 18 or later installed. Follow these steps:\n\n1. Clone the repository:\n\n   ```sh\n   git clone https://github.com/playcanvas/supersplat-viewer.git\n   cd supersplat-viewer\n   ```\n\n2. Install dependencies:\n\n   ```sh\n   npm install\n   ```\n\n3. Start the development build and local web server:\n\n   ```sh\n   npm run develop\n   ```\n\n4. Open your browser at http://localhost:3000.\n\n## Settings Schema\n\nThe `settings.json` file has the following schema (defined in TypeScript and taken from the SuperSplat editor):\n\n\n```typescript\ntype AnimTrack = {\n    name: string,\n    duration: number,\n    frameRate: number,\n    target: 'camera',\n    loopMode: 'none' | 'repeat' | 'pingpong',\n    interpolation: 'step' | 'spline',\n    smoothness: number,\n    keyframes: {\n        times: number[],\n        values: {\n            position: number[],\n            target: number[],\n        }\n    }\n};\n\ntype ExperienceSettings = {\n    camera: {\n        fov?: number,\n        position?: number[],\n        target?: number[],\n        startAnim: 'none' | 'orbit' | 'animTrack',\n        animTrack: string\n    },\n    background: {\n        color?: number[]\n    },\n    animTracks: AnimTrack[]\n};\n```\n\n### Example settings.json\n\n```json\n{\n  \"background\": {\"color\": [0,0,0,0]},\n  \"camera\": {\n    \"fov\": 1.0,\n    \"position\": [0,1,-1],\n    \"target\": [0,0,0],\n    \"startAnim\": \"orbit\"\n  },\n  \"animTracks\": []\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaycanvas%2Fsupersplat-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplaycanvas%2Fsupersplat-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplaycanvas%2Fsupersplat-viewer/lists"}