Splat Report weekly, 2026-W39
Splat support kept moving into general tools: three.js now ships its own renderer, and PlayCanvas changed how streamed splats spend their budget. The week's papers were mostly about compression that can survive deployment, and Anthropic cut Opus pricing.
- three.js r186 ships a built-in Gaussian splat renderer for WebGPU and WebGL, with PLY, SPZ v4 and glTF loaders but no SOG.
- A new paper trims spherical harmonics using only a trained scene and its camera poses, no training images needed.
- PlayCanvas Editor 2.32 replaces the splat LOD distance fields with LOD Range and Falloff controls, so tuned scenes need retuning.
- splat-transform v3.6.0 writes SOG faster with byte-identical output, thanks to a radix Morton sort and concurrent texture stages.
- Claude Opus 5.5 costs $4/$20 per million tokens, 20% less than Opus 5, and scores 66.4% on Terminal-Bench 4.0.
- OpenFlyScan predicts where a drone survey will reconstruct badly and plans extra flight strips before you leave site.
- Niantic Spatial opened a design-partner beta for mesh-guided splat relighting, covering time of day, fog and rain.
Must-know
three.js r186
three.js now ships its own Gaussian splat renderer and loaders as an official addon, written in TSL for both WebGPU and WebGL.
Read more
three.js r186 ships a Gaussian splat renderer as an official addon, written in TSL so the same code runs under WebGPURenderer and WebGL. It comes with loaders for PLY, .splat, SPZ (including version 4) and .ksplat, and imports glTF files that use the KHR_gaussian_splatting extension, with view-dependent colour from spherical harmonics. Follow-up changes in the same release add per-mesh bounding boxes, frustum culling and raycasting, and rename GaussianSplatMesh to GaussianSplat and PLYGaussianSplatLoader to GaussianSplatPLYLoader, so code copied from the pre-release examples will break.
Why it matters for the pipeline: in a react-three-fiber project, a simple splat embed no longer needs Spark or the frozen GaussianSplats3D. There is no SOG loader, so a scene built for PlayCanvas needs an SPZ or glTF export to load here. There is also no streaming or LOD, so large walkable interiors still belong in PlayCanvas or Spark. The release also adds MSAA for WebXR on WebGPU.
Notable
Only What Was Seen: Observation-Gram Compaction of View-Dependent Appearance in 3D Gaussian Splatting
A per-Gaussian matrix built from the training camera directions lets SH coefficients be trimmed and quantised without the training images.
Read more
Most splat compression methods decide how many spherical harmonics coefficients to keep by re-rendering against the training images. This single-author paper instead builds a small matrix per Gaussian, an observation Gram matrix, from the viewing directions and blending weights of the training cameras. It maps changes in SH coefficients to squared image error, and it needs only the trained model and the camera poses.
With it, SH degree reduction becomes a closed-form projection, choosing each Gaussian's degree becomes a rate-distortion problem, and vector quantisation becomes a weighted Lloyd algorithm. Plugged into Compressed3D, the author reports +0.49 dB PSNR before fine-tuning and +0.32 dB at matched rate without a single training image. A training-free version comes out 15% smaller than the image-free GSICO at equal quality on Mip-NeRF 360.
Why it matters for the pipeline: it points at a way to trim SH on a finished PostShot scene, using only its poses, before SOG export. No code is listed yet.
Only What Was Seen: Observation-Gram Compaction of View-Dependent Appearance in 3D Gaussian Splatting
Towards Practical Compression of 3D Gaussian Splatting
COSA-GS uses integer inference in its context model so a learned splat codec decodes identically on every platform.
Read more
Learned splat codecs use a context model to predict each value before entropy coding. If that model runs in floating point, two machines can compute slightly different predictions and decoding fails. COSA-GS builds its context per anchor from that anchor's coordinates plus a small learnable latent, with no spatial aggregation over neighbours, so the context model is only linear layers and activations. It is trained with rate-distortion optimisation and adaptive Gaussian pruning, then made quantisation-aware with integer inference, which the authors say gives bit-exact entropy-decoded symbols across platforms. The abstract claims state-of-the-art compression with fast decoding but gives no figures. Code is on GitHub.
Why it matters for the pipeline: anchor-based learned codecs report small files in papers but rarely ship in viewers, and inconsistent decoding across devices is one reason. This does not change the delivery format today, but it is the kind of work that has to land before a learned codec could replace SOG in a browser.
Towards Practical Compression of 3D Gaussian Splatting
New in PlayCanvas Editor: Joints, Parallax Occlusion and Splat LOD
Editor 2.32 replaces the gsplat LOD Base Distance and Multiplier fields with LOD Range Min, LOD Range Max and LOD Falloff.
Read more
PlayCanvas Editor 2.32, built on Engine 2.22.3, replaces the gsplat component's LOD fields. LOD Base Distance and LOD Multiplier are gone. LOD Range Min and LOD Range Max now bound which detail levels a splat may use, and a new LOD Falloff sets how strongly that splat's share of the global budget is concentrated near the camera, with 0 spreading it evenly. A scene-wide Gaussian Splatting settings section sets the target number of splats across the whole scene. The post is clear that the range only has an effect on streamed SOG octrees, because a single .sog or .ply has one level. Engine v2.22.4 followed on 23 September with a fix for GPU sort flicker caused by sort key precision loss.
Why it matters for the pipeline: any Editor project tuned with the old fields needs retuning after the upgrade, and the new controls only pay off if the scene is exported as streamed SOG rather than a single file.
splat-transform v3.6.0
PlayCanvas's PLY to SOG converter writes SOG faster, with byte-identical output.
Read more
splat-transform, the PlayCanvas CLI and library that converts PLY to SOG and streamed SOG, sped up its SOG writer in v3.6.0. Attribute data is now gathered in one pass per chunk, the texture stages (scale, colour quantisation and SH k-means) run concurrently with Morton sorting and packing, and the comparison sort is replaced by a radix sort over 30-bit Morton codes. The pull request benchmarks a 612K Gaussian SH0 scene going from 1.35 to 1.56 s down to 0.96 to 0.98 s, and a 1.86M SH3 scene from 16.6 to 17.0 s down to 15.4 to 16.0 s. The Morton sort alone on 17.5M Gaussians drops from 2.387 s to 0.537 s. The WebP output is byte-identical to v3.5.1. v3.5.0, a day earlier, added camera-track rendering.
Why it matters for the pipeline: the SOG files do not change, so this is a safe upgrade for batch conversion. Expect the biggest gain on SH0 scenes; the SH3 benchmark improves far less.
Claude Opus 5.5
Anthropic's new Opus costs 20% less per token than Opus 5 and becomes Claude Code's default Opus model.
Read more
Anthropic released Claude Opus 5.5 on 22 September as claude-opus-5-5. It costs $4 per million input tokens and $20 per million output, 20% less than Opus 5, with cache reads at $0.20 per million. Anthropic says it generates output more than 30% faster than Opus 5 and costs 40% less to run; that second figure is about total running cost, not the per-token price. On Terminal-Bench 4.0 it scores 66.4% against Opus 5's 52.3%. It is available on the Claude API, AWS, Google Cloud and Azure, and Claude Code now uses it as its default Opus model. Sonnet 5.5 and Haiku 5.5 are promised in the coming weeks, with no date.
Why it matters for the pipeline: long agent sessions on viewer code and pipeline scripts get cheaper at the top tier, which makes Opus a more realistic default for daily work rather than an occasional escalation.
OpenFlyScan: A Quality-Guided Aerial Reconstruction System for Consumer Drones
A drone capture system that predicts where a splat will reconstruct badly and flies extra strips to cover those areas.
Read more
OpenFlyScan tackles a familiar drone capture failure: a preset survey misses parts of complex surfaces, and nobody finds out until the splat has trained, which means a return visit. The system has three parts. A quality model, trained on Gaussian splat rendering errors, predicts which regions are likely to reconstruct poorly. A planner turns those predictions into complementary reacquisition strips. A custom mobile app flies them on a consumer drone, and also runs automated oblique surveys and data transfer with no extra hardware on board. In the authors' Expo West field experiment, targeted reacquisition improved PSNR at additional views by 10.95 dB. Code and models are promised on the project page but are not out yet.
Why it matters for the pipeline: for exterior and site captures, a coverage check that runs before leaving site saves more time than any cleanup afterwards. Until the code ships, the takeaway is the workflow itself: a quick quality pass on site catches gaps while the drone is still there.
OpenFlyScan: A Quality-Guided Aerial Reconstruction System for Consumer Drones
Introducing Gaussian Splat Relighting
Niantic Spatial opened a design-partner beta that relights splats using their accompanying mesh and precomputed radiance transfer.
Read more
Niantic Spatial opened a design-partner beta for relighting Gaussian splats. The method pairs a splat with its accompanying mesh: physically based sky lighting, including sun and atmosphere, is rendered onto the mesh, and precomputed radiance transfer bakes lighting information such as shadows and ambient occlusion. The mesh carries the structure while the splat keeps the visual detail. The post shows time-of-day changes, fog and humidity, rain with wet ground and puddles, and sun and sky edits. Niantic is direct about the limits: relighting is only as good as the underlying mesh, and hard-surface interiors, glass, windows and sharp geometry need additional validation. It is not a self-service API; teams have to apply to the design partner programme.
Why it matters for the pipeline: a context capture shot at one time of day is the weak point when compositing a proposed building into it. This joins the relighting already shipping in V-Ray and Nuke, and it favours exteriors, which is where most archviz context captures are.
FYI
From Scattered Gaussians to Structured Maps: Efficient Gaussian Splatting Coding via Dual-phase Morton Sorting
A two-stage Morton ordering lays splat attributes out as 2D maps for standard video codecs, as an alternative to PLAS sorting.
Read more
One line of splat compression research turns Gaussian attributes into 2D images and hands them to standard video codecs such as HEVC and VVC, a route the authors note is backed by ongoing MPEG standardisation. How the Gaussians are ordered into those images decides how much local correlation the codec can exploit. The authors argue that PLAS sorting is costly and that plain Morton ordering loses too much correlation. Their dual-phase method first indexes the attributes with a Morton code, then refines the layout with a structured 2D Morton mapping table, producing block-wise maps suited to block-based coding. The abstract claims better compression and runtime than existing approaches but gives no figures.
Why it matters for the pipeline: SOG uses the same image-packing idea with PLAS sorting, so a faster ordering with better locality is the kind of change that could reach a future SOG encoder. Nothing to act on yet.
From Scattered Gaussians to Structured Maps: Efficient Gaussian Splatting Coding via Dual-phase Morton Sorting
XGRIDS LCC Unreal SDK v3.4.0 Adds Orthographic Views
XGRIDS' Unreal plugin adds orthographic projection for splats and runtime loading of single-file SOG, SPZ and PLY.
Read more
XGRIDS released version 3.4.0 of its LCC SDK for Unreal Engine, with downloads for engine versions 5.1 to 5.8. The update adds orthographic projection for LCC, LCC2, SOG, SPZ and PLY data, and a control for how many spherical harmonics bands to render, from none up to three. A synchronous runtime loading option handles single-file SOG, SPZ and PLY, and single-file size is no longer limited by the VRAM budget. XGRIDS puts the reduction in PLY loading time at about 85%, according to Radiance Fields' report.
Why it matters for the pipeline: orthographic views are what architects expect for elevations and plans, and a splat that can be shown that way is easier to use in design review. For a studio that brings SOG captures into Unreal for client work, this is one more plugin that reads the same delivery files, since Epic still ships no native splat support.
Coming up
- Eurographics 2027 full paper deadline
Submission deadline for the main European graphics venue, where many splat rendering and compression papers appear.
- W3C TPAC 2026
The W3C's annual meeting in Dublin, where the WebGPU and other web platform groups meet in person.
- 3DV 2027 preliminary paper notifications
First decisions from the main 3D vision venue, an early look at which splat papers will appear next year.
- GitHub Universe 2026
GitHub's annual conference in San Francisco, the usual venue for Copilot and coding agent announcements.
- CVPR 2027 paper submission deadline
Main paper deadline for CVPR 2027, after registration closes on 10 November; expect a wave of splat preprints around it.
- SIGGRAPH Asia 2026
The year's last major graphics conference, in Kuala Lumpur, with splat papers and vendor demos expected.
KB updates this week
- web-delivery/other-engines
Added three.js r186's built-in Gaussian splat renderer and loaders, and revised the three.js recommendation to split between the built-in addon and Spark.
- tooling/ecosystem-map
Viewers section now notes the built-in splat renderer that three.js shipped in r186.
- web-delivery/performance-budgets
Documented PlayCanvas Editor 2.32's LOD Range Min, LOD Range Max and LOD Falloff controls, which replace LOD Base Distance and LOD Multiplier.
Learning path
- gsplat-rendering
three.js r186 adds a first-party splat renderer, and PlayCanvas Editor 2.32 changes how streamed splats are budgeted.
- cg-splat-compositing
Niantic Spatial's relighting beta adds a mesh-guided way to match a captured context's lighting to a CG scheme.