Turning a handful of PHONE photos into a NAVIGABLE 3D capture has usually meant a WORKSTATION, a camera-pose solve in COLMAP and a training run measured in MINUTES, not seconds. A new open-source project called splatting-rs moves the WHOLE chain into a BROWSER tab. Its live demo takes two or more JPEG or PNG photos, ESTIMATES depth and cameras, TRAINS a Gaussian splat on WebGPU and hands back a DOWNLOADABLE .ply file. The page’s own promise is BLUNT: “Nothing leaves your browser.”
The repository, PUBLISHED by GitHub user antoineMoPa under the Apache 2.0 license, was CREATED on October 15, 2026. Its BROWSER stage LANDED in a commit titled “web splatting” on October 17. It is EARLY work: the repo describes itself as “My experiments with gaussian splatting,” and it had SEVEN commits and no stars when Metaverse Watcher checked it this morning. ExplorXR’s XR Daily for October 18 FLAGGED it as the day’s CAPTURE story.
Three Rust crates, one pipeline
According to the project README, splatting-rs is THREE crates STACKED together. mapanything-rs PORTS Meta’s MapAnything network to Hugging Face’s candle framework and TURNS photos into a coloured point cloud in ONE forward pass, with “no camera poses needed.” depthanything3-rs ports ByteDance’s Depth Anything 3 Small, which PREDICTS depth, cameras and focal length from 137 MB of weights instead of MapAnything’s 4.9 GB. The developer CALLS it “the browser-sized stage 1.” instantsplat-rs then OPTIMIZES one Gaussian per point with its own wgpu rasterizer written in WGSL, following the InstantSplat recipe from Fan et al. (2024).
The LICENSING is DELIBERATE. The README says the Depth Anything 3 Small and Base checkpoints it uses are APACHE 2.0, while the Large, Giant and Nested checkpoints are CC BY-NC and are “not used.” The MapAnything port uses the Apache-licensed facebook/map-anything-apache weights. That matters for anyone who wants to SHIP this inside a COMMERCIAL capture app.

How fast it runs, by the developer’s own numbers
The web README gives a SINGLE MEASURED run: six 3024×4032 photos of a rubber DUCK, downscaled to 378×504, in headless CHROME on an Apple M5. The ONE-TIME model download took 7 seconds, and the browser then CACHES it. Preprocessing took just 0.14 seconds. Depth Anything 3 Small took 23.5 seconds on ONE thread with SIMD, running on candle’s CPU backend compiled to WebAssembly inside a Web Worker. Seeding about 260,000 Gaussians took 0.04 seconds. Training ran at 26 steps per second, so the default 300 steps took 11.5 seconds on WEBGPU, using the SAME kernels as the native build. The project’s own SCREENSHOT reads “done in 36 s: 259 975 Gaussians from 6 photos.”

The BOTTLENECK is clear. The depth network that takes 23.5 seconds in the browser takes just 2 SECONDS natively on Metal, according to the same README. Splat TRAINING is ALREADY quick on WebGPU. Most of the remaining gap is the network running on a SINGLE CPU thread in WebAssembly. The native path is SLOWER but more THOROUGH: with the full MapAnything model, 11 photos take “about 3 minutes” on an M5, and camera poses are REFINED alongside the Gaussians, as in InstantSplat.
The limits are in the README, too
The developer does NOT oversell the output. The instantsplat-rs README says that “seen from anywhere but its few input views, the splat is SPIKY and TORN.” The fix it OFFERS is a refine step that keeps training against a FULL COLMAP capture: 98 frames and 3,000 steps take about 5 MINUTES. That brings back the very tool the fast path was built to SKIP. The Depth Anything 3 Small cameras are described as LESS accurate than MapAnything’s. NEITHER Rust port has been compared NUMERICALLY against the PyTorch reference; both were “checked on real captures only.” Input resolution is CAPPED by the models at 504 or 518 pixels on the long side. The native tools target APPLE Silicon through Metal, with a CPU fallback, and WebGPU only runs on localhost or HTTPS.
Splatting-rs is not the ONLY Rust capture stack getting ATTENTION this week. A separate project, visloc-rs, drew more than 100 LIKES after this post from X user arai01robo on October 16:
The speed and accuracy figures in that post (3.46x faster than COLMAP, ahead of ORB-SLAM3 on 9 of 11 EuRoC sequences) are the project’s CLAIMS as relayed on X, and Metaverse Watcher has NOT verified them.
The Metaverse Watcher read
The headline is NOT a better splat; the duck is a TABLETOP object, and the README admits the result BREAKS away from the source views. The headline is WHERE the pipeline now runs. The SLOW, fussy part of Gaussian splatting was ALWAYS the front end: SOLVING camera poses before a SINGLE Gaussian could exist. FEED-FORWARD models such as MapAnything and Depth Anything 3 COLLAPSE that step, and WebGPU makes the optimization fit in a tab with no SERVER and no UPLOAD.
For XR, that points at a PRIVATE, ZERO-INSTALL capture path. Splats already render on Vision Pro under visionOS 27 and in a GROWING set of Quest viewers. A web page that BUILDS one locally from phone photos is the MISSING half for WebXR. This is still a WEEK-old personal experiment with one PUBLISHED benchmark on ONE chip. The pieces it is built from, however, are all PERMISSIVELY licensed and PUBLIC, and that is the part worth WATCHING.
Sources: splatting-rs on GitHub (README, crate READMEs and commit history); splatting-rs browser demo; ExplorXR, “XR Daily: Meta’s Glasses Heard What They Shouldn’t” (Oct 18, 2026); Fan et al., InstantSplat (arXiv:2403.20309); Meta MapAnything; ByteDance Seed Depth Anything 3; arai01robo on X (Oct 16, 2026).