Arrival.Space Splat.js Trains Gaussian Splats in Browser

Arrival.Space has published Splat.js, an MIT-licensed WebGPU library that runs SIFT structure from motion and 3D Gaussian splat training in a browser tab.

Arrival.Space has published Splat.js, an MIT-licensed WebGPU library that runs SIFT structure from motion and 3D Gaussian splat training in a browser tab.

Michael Rubloff

Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

Splat.js

Arrival.Space has published Splat.js, an MIT licensed WebGPU library that runs structure from motion and 3D gaussian splat training entirely inside a browser tab.

Cloud reconstruction came to the Arrival.Space platform in version 0.84, which added Video2Splat and processed uploads of up to ninety seconds on the vendor's servers, and version 2026.2 built prompt driven scene logic and CAS sharpening on the hosted viewer. Splat.js takes no upload. Photographs stay on the device, and the library asks for no account, no server and no build step.

The solver is scale space SIFT in a worker pool, GPU brute force matching, incremental registration with interim bundle adjustment, and a sparse Schur bundle adjustment that recovers a shared focal length with radial distortion. The trainer is WebGPU throughout, with anisotropic Gaussians, global sorted binning, spherical harmonics at degree 2 by default, MCMC style relocation and growth, Mip-Splatting opacity compensation, and analytic gradients validated against finite differences. Arrival.Space states that Splat.js scales past 1,000,000 splats.

Export is a .ply with spherical harmonics included and the opacity compensation baked in. The public surface is one createSession object carrying load, solve, seed and start, alongside exportPlyBlob and evalTestPsnr.

On the full Truck sequence from Tanks and Temples, holding out every eighth photograph, Splat.js reports 25.61 dB test PSNR at 1,000,000 splats and degree 2 harmonics.

Against COLMAP the pose solver reports 0.00% absolute trajectory error on Truck, 0.23% on Camping, 0.03% on Playroom, and 0.63 px reprojection RMS on Bicycle. Splat.js registers 207 of Playroom's 225 DSLR photographs where the project says stock COLMAP 3.11 manages 154 to 157 at the same resolution. Only the synthetic, Truck and Camping rows are asserted by the test suite on every change, and the Playroom and Bicycle numbers sit outside those gates.

Input is 20 to 200 overlapping photographs of one place or a live device camera, with bundled presets for Truck, Camping, Playroom, Train, Bicycle and a synthetic corner. A quality selector offers Draft for a fast first look and Showcase for a long run at the full 1,000,000 splat budget, exposing resolution, spherical harmonics, splat budget and cycle count underneath. Video input exists in the library as extractSharpFrames and is switched off in the app until frame selection reaches the project's quality bar. Splat.js needs WebGPU, runs on current Chrome, Edge, Firefox and Safari including iPhone, and installs as a PWA.

The source is on GitHub and the app is live with an MIT License. Try it in the browser here.

Featured

Recents

Platforms

SHARE PointClouds Studio V2.7 Adds Mesh Generation

SHARE PointClouds Studio V2.7 adds mesh generation from point clouds in 3D Tiles, OSGB, GLB, and PLY, improves 3DGS model quality, and extends cropping to 3DGS.

Michael Rubloff

Oct 20, 2026

Platforms

SHARE PointClouds Studio V2.7 Adds Mesh Generation

SHARE PointClouds Studio V2.7 adds mesh generation from point clouds in 3D Tiles, OSGB, GLB, and PLY, improves 3DGS model quality, and extends cropping to 3DGS.

Michael Rubloff

Platforms

StorySplat 2.5 Adds Splat Shadows and an AI Scene Agent

StorySplat 2.5 adds splat-built clouds, light shadows the scan can block, a larger Splat Editor and a beta Scene Agent that browser AI agents drive via WebMCP.

Michael Rubloff

Oct 20, 2026

Platforms

StorySplat 2.5 Adds Splat Shadows and an AI Scene Agent

StorySplat 2.5 adds splat-built clouds, light shadows the scan can block, a larger Splat Editor and a beta Scene Agent that browser AI agents drive via WebMCP.

Michael Rubloff

Platforms

World Labs' Spark 2.4.0 Reads SPZ v4 Files

Spark 2.4.0 adds SPZ v4 read support to World Labs' three.js Gaussian splatting renderer and lets developers supply custom chunk fetchers for paged LoD.

Michael Rubloff

Oct 20, 2026

Platforms

World Labs' Spark 2.4.0 Reads SPZ v4 Files

Spark 2.4.0 adds SPZ v4 read support to World Labs' three.js Gaussian splatting renderer and lets developers supply custom chunk fetchers for paged LoD.

Michael Rubloff

Platforms

Gaussian Splat Patch Merges and Bakes Splats in Blender

Gaussian Splat Patch v0.1.15 adds Merge Splat Objects and Bake Edits to Blender, combining several splat models into one PLY and making erasures permanent.

Michael Rubloff

Oct 20, 2026

Platforms

Gaussian Splat Patch Merges and Bakes Splats in Blender

Gaussian Splat Patch v0.1.15 adds Merge Splat Objects and Bake Edits to Blender, combining several splat models into one PLY and making erasures permanent.

Michael Rubloff

Trending Articles
  1. TRENDING
    Loading...
  2. TRENDING
    Loading...
  3. TRENDING
    Loading...
Michael Rubloff

Written by Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

More from Michael Rubloff

More from Michael Rubloff

Platforms

SHARE PointClouds Studio V2.7 Adds Mesh Generation

SHARE PointClouds Studio V2.7 adds mesh generation from point clouds in 3D Tiles, OSGB, GLB, and PLY, improves 3DGS model quality, and extends cropping to 3DGS.

Michael Rubloff

Oct 20, 2026

SHARE 3DGS

Platforms

SHARE PointClouds Studio V2.7 Adds Mesh Generation

Michael Rubloff

Oct 20, 2026

SHARE 3DGS

Platforms

SHARE PointClouds Studio V2.7 Adds Mesh Generation

SHARE PointClouds Studio V2.7 adds mesh generation from point clouds in 3D Tiles, OSGB, GLB, and PLY, improves 3DGS model quality, and extends cropping to 3DGS.

Michael Rubloff

Oct 20, 2026

SHARE 3DGS

Platforms

StorySplat 2.5 Adds Splat Shadows and an AI Scene Agent

StorySplat 2.5 adds splat-built clouds, light shadows the scan can block, a larger Splat Editor and a beta Scene Agent that browser AI agents drive via WebMCP.

Michael Rubloff

Oct 20, 2026

StorySplat

Platforms

StorySplat 2.5 Adds Splat Shadows and an AI Scene Agent

Michael Rubloff

Oct 20, 2026

StorySplat

Platforms

StorySplat 2.5 Adds Splat Shadows and an AI Scene Agent

StorySplat 2.5 adds splat-built clouds, light shadows the scan can block, a larger Splat Editor and a beta Scene Agent that browser AI agents drive via WebMCP.

Michael Rubloff

Oct 20, 2026

StorySplat

Platforms

World Labs' Spark 2.4.0 Reads SPZ v4 Files

Spark 2.4.0 adds SPZ v4 read support to World Labs' three.js Gaussian splatting renderer and lets developers supply custom chunk fetchers for paged LoD.

Michael Rubloff

Oct 20, 2026

World Labs Spark

Platforms

World Labs' Spark 2.4.0 Reads SPZ v4 Files

Michael Rubloff

Oct 20, 2026

World Labs Spark

Platforms

World Labs' Spark 2.4.0 Reads SPZ v4 Files

Spark 2.4.0 adds SPZ v4 read support to World Labs' three.js Gaussian splatting renderer and lets developers supply custom chunk fetchers for paged LoD.

Michael Rubloff

Oct 20, 2026

World Labs Spark

New to Gaussian Splatting? Start here

Radiance fields, explained from the ground up: what a Gaussian splat is, how to capture one, and which tools and gear to start with.

Newsletter

Keep up with the field.

New research, tools and captures from the Radiance Fields newsroom, in your inbox. Free, no spam.