Repolode
sparkjsdev

sparkjsdev/spark

A 3D Gaussian Splatting renderer for THREE.js that lets splat scenes mix with regular meshes in the same scene.

Stars
3,881
Forks
580
Open issues
111
Last commit
19 days ago

What is it?

Spark is a rendering library that brings 3D Gaussian Splatting to THREE.js. It plugs into the THREE.js render pipeline, so splat objects and mesh-based objects can be drawn in the same scene with correct sorting, and multiple splat objects can be rendered together.

The library loads the common splat formats, including PLY (compressed and uncompressed), SPZ, SPLAT, KSPLAT and SOG. It targets WebGL2 and is aimed at running across a wide range of devices, including low-powered mobile hardware. Splats can be transformed individually, recolored, displaced or skeletally animated, and a shader graph allows splats to be created or edited on the GPU.

Spark is installed via npm or loaded from a CDN with an import map. The project also includes examples, asset tooling for compressing PLY files to SPZ, and a documentation site.

Key features

  • 01Integrates with the THREE.js pipeline so splats and meshes share one scene
  • 02Supports PLY (including compressed), SPZ, SPLAT, KSPLAT and SOG formats
  • 03Renders multiple splat objects together with correct sorting
  • 04Targets WebGL2 and runs on a wide range of devices, including mobile
  • 05Supports per-splat transforms, color editing, displacement and skeletal animation
  • 06Includes a GPU shader graph for creating and editing splats

Use cases

  • Showing photogrammetry or captured 3D scenes in a web page built with THREE.js
  • Combining splat scans with mesh-based props or UI in an interactive 3D experience
  • Animating or recoloring captured objects in the browser
  • Delivering splat viewers to mobile users through the web

Quick start

  1. 1

    Install the package from npm

    npm install @sparkjsdev/spark
  2. 2

    Or copy the HTML example from the README into an index.html file and open it in a browser

Things to know

  • Building from source requires installing Rust and running a separate WebAssembly build step.

Topics

FAQ

What is spark?
A 3D Gaussian Splatting renderer for THREE.js that lets splat scenes mix with regular meshes in the same scene. Spark is a rendering library that brings 3D Gaussian Splatting to THREE.js. It plugs into the THREE.js render pipeline, so splat objects and mesh-based objects can be drawn in the same scene with correct sorting, and multiple splat objects can be rendered together.
Is spark free to use? What license does it have?
spark is open source under the MIT license. Check the license terms before using it in commercial products.
Is spark still maintained?
Actively maintained. The last commit to spark was on Oct 20, 2026.
What can I use spark for?
Showing photogrammetry or captured 3D scenes in a web page built with THREE.js Combining splat scans with mesh-based props or UI in an interactive 3D experience Animating or recoloring captured objects in the browser Delivering splat viewers to mobile users through the web
How do I install spark?
Install the package from npm: npm install @sparkjsdev/spark Or copy the HTML example from the README into an index.html file and open it in a browser
Where can I get spark?
The source code and installation instructions are on GitHub: https://github.com/sparkjsdev/spark

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects