gaussian-splat-lite 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -2
- package/README.md +22 -13
- package/dist/gaussian-splat-lite.cjs +819 -88
- package/dist/gaussian-splat-lite.cjs.map +1 -1
- package/dist/gaussian-splat-lite.min.cjs +81 -20
- package/dist/gaussian-splat-lite.min.cjs.map +1 -1
- package/dist/gaussian-splat-lite.module.js +821 -90
- package/dist/gaussian-splat-lite.module.js.map +1 -1
- package/dist/gaussian-splat-lite.module.min.js +2984 -2427
- package/dist/gaussian-splat-lite.module.min.js.map +1 -1
- package/dist/types/addons/TAANode.d.cts +4 -2
- package/dist/types/addons/TAANode.d.ts +4 -2
- package/dist/types/addons/TAAPass.d.cts +6 -15
- package/dist/types/addons/TAAPass.d.ts +6 -15
- package/dist/types/addons/taaShared.d.cts +4 -2
- package/dist/types/addons/taaShared.d.ts +4 -2
- package/dist/types/capture/SplatCapture.d.cts +66 -0
- package/dist/types/capture/SplatCapture.d.ts +66 -0
- package/dist/types/capture/WebGLCapture.d.cts +13 -0
- package/dist/types/capture/WebGLCapture.d.ts +13 -0
- package/dist/types/capture/WebGPUCapture.d.cts +17 -0
- package/dist/types/capture/WebGPUCapture.d.ts +17 -0
- package/dist/types/capture/pixels.d.cts +5 -0
- package/dist/types/capture/pixels.d.ts +5 -0
- package/dist/types/capture/rendererState.d.cts +3 -0
- package/dist/types/capture/rendererState.d.ts +3 -0
- package/dist/types/capture/sceneView.d.cts +3 -0
- package/dist/types/capture/sceneView.d.ts +3 -0
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/rendering/GaussianSplatRenderer.d.cts +17 -11
- package/dist/types/rendering/GaussianSplatRenderer.d.ts +17 -11
- package/dist/types/rendering/SplatAccumulator.d.cts +2 -1
- package/dist/types/rendering/SplatAccumulator.d.ts +2 -1
- package/dist/types/rendering/backend.d.cts +1 -1
- package/dist/types/rendering/backend.d.ts +1 -1
- package/dist/types/rendering/rendererUtils.d.cts +1 -5
- package/dist/types/rendering/rendererUtils.d.ts +1 -5
- package/dist/types/rendering/tsl/ProjectionProgram.d.cts +2 -0
- package/dist/types/rendering/tsl/ProjectionProgram.d.ts +2 -0
- package/dist/types/rendering/tsl/SplatMaterial.d.cts +1 -0
- package/dist/types/rendering/tsl/SplatMaterial.d.ts +1 -0
- package/dist/types/rendering/tsl/tslCompat.d.cts +1 -0
- package/dist/types/rendering/tsl/tslCompat.d.ts +1 -0
- package/dist/types/rendering/uniforms.d.cts +3 -3
- package/dist/types/rendering/uniforms.d.ts +3 -3
- package/dist/types/scene/SplatMesh.d.cts +1 -1
- package/dist/types/scene/SplatMesh.d.ts +1 -1
- package/docs/Architecture.md +54 -3
- package/docs/GaussianSplatRenderer.md +71 -55
- package/docs/PostDecode.md +52 -36
- package/docs/RadStreamScheduler.md +53 -41
- package/docs/SogStreamScheduler.md +49 -39
- package/docs/SplatCapture.md +147 -0
- package/docs/SplatEdit.md +33 -26
- package/docs/SplatFileType.md +11 -13
- package/docs/SplatLoader.md +19 -14
- package/docs/SplatMesh.md +69 -49
- package/docs/Splats.md +33 -26
- package/docs/StochasticRendering.md +27 -30
- package/docs/TAAPass.md +98 -73
- package/package.json +1 -1
- package/docs/SplatAccumulator.md +0 -37
package/CHANGELOG.md
CHANGED
|
@@ -7,11 +7,51 @@ and this project follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.2.2] - 2026-10-07
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Added a Blend buffer option to the viewer, set to Half float by default. It removes the overlapping rings that 8-bit blending leaves in faint gradients. Very bright Splats behind others can look slightly brighter than before; choose 8-bit to return to the previous image.
|
|
15
|
+
- Added stencil masking to `TAAPass` and `TAANode`. Create the Three.js renderer with `stencil: true` and the scene's stencil masks apply as they do without TAA, including the stencil settings on your Splat renderer's `material`; before, they were ignored. `WebGPURenderer` on WebGPU needs Three.js r187 or later for this; on r186, leave `stencil` off there when using `TAANode`.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- `TAANode` avoids redundant screen-texture transforms and repeated depth sampling while retaining its single-pass temporal filter.
|
|
20
|
+
- The default `minAlpha` is now `0.5 / 255` instead of `1 / 255`, so faint Splats and the outer edge of others reach a little further. Set `minAlpha: 1 / 255` to keep the previous look.
|
|
21
|
+
- A Splat that `maxStdDev` trims while it is still more opaque than `minAlpha` now fades to `minAlpha` at its edge instead of ending in a visible step. This includes the wide Splats of LOD data. Splats are not drawn any larger, so lower `maxStdDev` values keep their speed and look smoother. Edges are slightly more transparent than before, most visibly at low `maxStdDev`; Splats that are not trimmed look the same.
|
|
22
|
+
- `minPixelRadius` now measures the wide Splats of LOD data by their visible size, as it already did for other Splats, so the smallest ones are skipped slightly earlier.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Fixed `TAANode` with `logarithmicDepthBuffer`, where the image blurred and ghosted whenever the camera moved. `TAAPass` was not affected.
|
|
27
|
+
|
|
28
|
+
## [1.2.1] - 2026-10-06
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Added `encodeLinear` to `GaussianSplatRenderer` to choose how model colors are converted before blending: `true` converts them to linear, `false` keeps their sRGB values. Left unset, the conversion is automatic as before.
|
|
33
|
+
- Added `SplatCapture` for rendering Splat scenes offscreen: render targets with optional supersampling and double buffering, RGBA pixel readback, cube maps, and environment maps for reflections. It works on WebGLRenderer and on WebGPURenderer with WebGPU or its WebGL2 fallback. Your render loop can keep running while a capture is in progress, and captures use your Splat renderer's quality settings. This brings back the capture methods `GaussianSplatRenderer` had in 1.1.8, under the same names. See [SplatCapture](docs/SplatCapture.md).
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- The default `minAlpha` is now `1 / 255` instead of `0.5 / 255`. Set `minAlpha: 0.5 / 255` to keep the previous look.
|
|
38
|
+
- `TAAPass` is now used through `EffectComposer` with a final Three.js `OutputPass`; calling `taa.render(renderer)` on its own is no longer supported. Bloom and other effects go between the two passes without extra settings. Splat colors still match direct canvas rendering. `OutputPass` applies the renderer's tone mapping to the whole image, Splats included. See [TAAPass and TAANode](docs/TAAPass.md).
|
|
39
|
+
|
|
40
|
+
### Removed
|
|
41
|
+
|
|
42
|
+
- Removed `maxPixelRadius`. A Splat's radius on screen is now limited automatically to the short side of the viewport.
|
|
43
|
+
- Removed `TAAPass.accumulateInOutputSpace`. Delete it from your code; effects after `TAAPass` no longer need it.
|
|
44
|
+
- Removed the `SplatAccumulator` class and the `SplatMapping` type from the package exports. `GaussianSplatRenderer` manages the combined scene data itself. To read a model's Splats, use [Splats](docs/Splats.md).
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Fixed incorrect Splat colors that could appear on WebGPURenderer as models loaded into a previously empty scene.
|
|
49
|
+
|
|
10
50
|
## [1.2.0] - 2026-10-03
|
|
11
51
|
|
|
12
52
|
### Added
|
|
13
53
|
|
|
14
|
-
- Exported `TAAPass(scene, camera)`, temporal anti-aliasing for WebGLRenderer that renders the scene itself and needs no velocity texture. Its result matches direct canvas colors and needs no `OutputPass
|
|
54
|
+
- Exported `TAAPass(scene, camera)`, temporal anti-aliasing for WebGLRenderer that renders the scene itself and needs no velocity texture. Its result matches direct canvas colors and needs no `OutputPass`. Scene depth is exposed for depth effects. Exported `TAANode(scene, camera)` provides the same camera/depth reprojection in TSL for native WebGPU and WebGL2 fallback, accumulating in the working color space for `RenderPipeline`, without a velocity attachment.
|
|
15
55
|
- Added `stochasticSample` and `autoAdvanceStochasticSample` to control the stochastic noise pattern, for example in a custom temporal anti-aliasing integration.
|
|
16
56
|
- Added `SplatLoader.abort()`, which cancels every load the loader has in progress.
|
|
17
57
|
- PLY loading now accepts headers with Windows line endings, `int8`–`float64` type names, extra elements before the vertex data, and Gaussian files that store their base color as `red`/`green`/`blue`.
|
|
@@ -511,7 +551,9 @@ and this project follows [Semantic Versioning](https://semver.org/).
|
|
|
511
551
|
|
|
512
552
|
- Initial public release of the Three.js Gaussian Splatting renderer.
|
|
513
553
|
|
|
514
|
-
[Unreleased]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.
|
|
554
|
+
[Unreleased]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.2...HEAD
|
|
555
|
+
[1.2.2]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.1...v1.2.2
|
|
556
|
+
[1.2.1]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.0...v1.2.1
|
|
515
557
|
[1.2.0]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.1.8...v1.2.0
|
|
516
558
|
[1.1.8]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.1.7...v1.1.8
|
|
517
559
|
[1.1.7]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.1.6...v1.1.7
|
package/README.md
CHANGED
|
@@ -29,8 +29,9 @@ High performance 3D Gaussian Splatting (3DGS) renderer for **Three.js** with **W
|
|
|
29
29
|
| Focus | What you get |
|
|
30
30
|
| --- | --- |
|
|
31
31
|
| **WebGPU / WebGL2** | Use the same Three.js scene API with either renderer |
|
|
32
|
-
| **Stochastic rendering** | Optional transparency mode for use with temporal anti-aliasing |
|
|
33
32
|
| **Large-scene streaming** | Load RAD and SOG detail as the camera moves, with smooth transitions |
|
|
33
|
+
| **Stochastic rendering** | Optional transparency mode, with built-in temporal anti-aliasing to smooth it |
|
|
34
|
+
| **Offscreen capture** | Render Splats to images, cube maps, and environment maps for reflections |
|
|
34
35
|
| **SDF edits** | Recolor or hide parts of a model without moving Splats |
|
|
35
36
|
| **Data and precision** | Load URLs, files, or bytes; place local models in large GIS/ECEF scenes |
|
|
36
37
|
|
|
@@ -107,7 +108,7 @@ Sorted alpha blending is the default. To enable stochastic rendering:
|
|
|
107
108
|
splatRenderer.stochastic = true;
|
|
108
109
|
```
|
|
109
110
|
|
|
110
|
-
This mode produces visible noise.
|
|
111
|
+
This mode produces visible noise. Smooth it with the library's [temporal anti-aliasing](docs/TAAPass.md): `TAAPass` for `WebGLRenderer`, and `TAANode` for `WebGPURenderer` (including its WebGL2 fallback). See [Stochastic rendering](docs/StochasticRendering.md) for the setup.
|
|
111
112
|
|
|
112
113
|
## Streaming large scenes
|
|
113
114
|
|
|
@@ -155,18 +156,26 @@ const streaming = new SogStreamScheduler({
|
|
|
155
156
|
|
|
156
157
|
## Documentation
|
|
157
158
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
- [
|
|
161
|
-
- [
|
|
162
|
-
- [
|
|
159
|
+
**Rendering**
|
|
160
|
+
|
|
161
|
+
- [GaussianSplatRenderer](docs/GaussianSplatRenderer.md) — Rendering options, sorting, and on-demand rendering.
|
|
162
|
+
- [Stochastic rendering](docs/StochasticRendering.md) — The optional transparency mode and how to smooth its noise.
|
|
163
|
+
- [TAAPass and TAANode](docs/TAAPass.md) — Temporal anti-aliasing for WebGLRenderer and WebGPURenderer.
|
|
164
|
+
- [SplatCapture](docs/SplatCapture.md) — Offscreen images, pixel readback, cube maps, and environment maps.
|
|
165
|
+
|
|
166
|
+
**Models**
|
|
167
|
+
|
|
168
|
+
- [SplatMesh](docs/SplatMesh.md) — Loading, transforms, animation, and picking.
|
|
169
|
+
- [SplatLoader](docs/SplatLoader.md) — Three.js-style loading, progress, cancellation, and split files.
|
|
170
|
+
- [SplatFileType](docs/SplatFileType.md) — PLY, SPZ, SOG, and RAD formats.
|
|
171
|
+
- [postDecode](docs/PostDecode.md) — Change Splats while a model loads.
|
|
172
|
+
- [SplatEdit and SplatEditSdf](docs/SplatEdit.md) — Recolor, fade, or hide parts of a model.
|
|
173
|
+
- [Splats](docs/Splats.md) — Read a loaded model's data.
|
|
174
|
+
|
|
175
|
+
**Large scenes**
|
|
176
|
+
|
|
163
177
|
- [RadStreamScheduler](docs/RadStreamScheduler.md) — Large RAD scenes with adaptive detail.
|
|
164
178
|
- [SogStreamScheduler](docs/SogStreamScheduler.md) — Large SOG scenes with adaptive detail.
|
|
165
|
-
- [Splats](docs/Splats.md) — Data access and updates.
|
|
166
|
-
- [SplatFileType](docs/SplatFileType.md) — PLY/SPZ/SOG/RAD formats.
|
|
167
|
-
- [SplatEdit / SplatEditSdf](docs/SplatEdit.md) — Color and opacity editing.
|
|
168
|
-
- [postDecode](docs/PostDecode.md) — Transform models while loading.
|
|
169
|
-
- [SplatAccumulator](docs/SplatAccumulator.md) — Combined model data for custom integrations.
|
|
170
179
|
|
|
171
180
|
## Development
|
|
172
181
|
|
|
@@ -180,7 +189,7 @@ npm run dev
|
|
|
180
189
|
|
|
181
190
|
Open the URL printed by Vite (normally `http://localhost:8080/`) and drop a `.ply`, `.spz`, `.sog`, or `.rad` file into the viewer, choose a local file, or load one from an HTTP(S) URL. For split SOG, select or drop `meta.json` together with its `.webp` images; for split RAD, include the header and its `.radc` pages. Files are decoded locally. Choose **WebGPU / WebGL2 / WebGPU · WebGL2** in the viewer to compare backends.
|
|
182
191
|
|
|
183
|
-
See [Contributing](CONTRIBUTING.md#validation) for validation commands. `npm run build` emits ESM, CommonJS, TypeScript declarations, and source maps in `dist/`.
|
|
192
|
+
See [Contributing](CONTRIBUTING.md#validation) for validation commands, and [Architecture](docs/Architecture.md) for how the library is built internally. `npm run build` emits ESM, CommonJS, TypeScript declarations, and source maps in `dist/`.
|
|
184
193
|
|
|
185
194
|
## Acknowledgements
|
|
186
195
|
|