104 Commits

Author SHA1 Message Date
kali 937262b3ae Interactive deform effect with bounce (#223)
* Interactive deform effect with bounce

* Added bounce speed control to interactive deform effect
2025-11-18 10:53:02 -08:00
Winnie Lin c9c488c70f add greyscale painting and add i/o (#217) 2025-11-11 09:30:20 -08:00
Sp1der 0d9f7bfec2 fix twister & rain effects (#211)
Also apply a spin (self-rotation) so each splat rotates about its own center.
2025-10-31 15:41:41 -07:00
kali 18a33cb8d4 portal effect (#203) 2025-10-26 20:53:36 -07:00
kali 1ecabe08a0 Interactive ripples effect (#194) 2025-10-16 11:19:20 -07:00
kali 5eb7dc5a5e Add interactive-holes example with improved text visibility (#189) 2025-10-06 21:23:45 -07:00
Noeri Huisman 15318d7016 Add minPixelRadius to skip splats below a given pixel radius (#184) 2025-09-29 09:16:38 -07:00
Diego Marcos Segura 6d7d8012a1 Make wasd default controls for viewer 2025-09-28 10:15:29 -07:00
Noeri Huisman 2defaf3f64 Add support for loading SOGSv2/SOG (#179) 2025-09-25 08:24:41 -07:00
kali 6317006ef3 Fix effect switching race: add async disposal guards and scene cleanup to prevent stray meshes (#175) 2025-09-22 22:26:00 -07:00
kali eba41ee788 Transition Effects (#172)
* Transition effects

* Added two transition effects and refactored code into separate .js filesAdded two transition effects and refactorized code for effects in separate .js files

* Deleted unused html file

* Fixed a GUI bug

* Fixed focus given to effect when dropdown changes

* Fixed github verification errors

* fix lints in splat-transitions and tweak defaults

* lint fix on splat-transitions

* lint fix on splat-transitions

* Morph transition

* Morph transition - better random function

* Morph transition - better morphing of dishes

* fixed lint errors
2025-09-21 10:06:25 -07:00
Winnie Lin d6898b55ad Splat brush painting / brush erasing example (#165)
* splat painter example

* avoid additional updategenerator calls
2025-09-15 15:55:24 -07:00
Noeri Huisman 0c07ee2fd4 Use child mesh in SplatMesh to auto-inject SparkRenderer instead of monkey-patching (#158) 2025-09-15 14:54:50 -07:00
Noeri Huisman 882def6eb7 Make sure all examples resize when the window is resized (#155) 2025-09-15 14:38:16 -07:00
kali beb0e64974 Splat reveal effects (#153)
* Add splat reveal effects (weather)

* Update example title

* Added 3 new reveal effects to examples

---------

Co-authored-by: Diego Marcos <diego.marcos@gmail.com>
2025-09-10 16:31:58 -07:00
kali 1da1cb61b7 Splat reveal effects (weather) (#149)
* Add splat reveal effects (weather)

* Update example title

---------

Co-authored-by: Diego Marcos <diego.marcos@gmail.com>
2025-08-04 10:21:47 -07:00
Diego Marcos Segura dc76306356 Make viewer drop zone to cover the whole page window 2025-07-31 15:53:12 -07:00
Winnie Lin 0705207bdc Bounding box helper function (#126)
* bounding box implementation

* set default bbox to center-based computation

* [bbox] clean up bbox and editor logic

* [bbox] add error handling and documentation
2025-07-31 15:01:18 -07:00
Andreas Sundquist 8f5596e7a0 Add stochastic splat rendering example 2025-07-31 14:24:48 -07:00
Andreas Sundquist b39cf3873f Fixed rendering, moved examples/editor option under Debug. Updated spark-viewpoint.md. 2025-07-31 14:24:48 -07:00
Andreas Sundquist d707f283f5 Working prototype. Initialization not consistent. 2025-07-31 14:24:48 -07:00
Andreas Sundquist df6b1d8f4a Checkpoint 2025-07-31 14:24:48 -07:00
Andreas Sundquist a5f9ca4813 Externalized SparkRenderer.maxPixelRadius and .minAlpha settings. Added to documentation. Added to examples/editor under Debug folder, moved sort32 there. 2025-07-31 14:24:48 -07:00
Andreas Sundquist e82346cbd5 Add 32-bit float sort via SparkViewpooint.sort32, using 2-pass radix-65536 sort. Turn on sort32 by default for examples/editor. Implemented Rust sort and JS sort, updated benchmarking code to include float16 and float32 sort. 2025-07-31 14:24:48 -07:00
kali ab83e53579 Splat shader effects (#141)
* Added particle flow transition to examples

* Added particle flow transition to examples

* Added splat-shader-effects to examples
2025-07-30 23:20:08 -07:00
Andreas Sundquist f60c2b0cf9 Custom/extended splat encoding ranges, Premultiplied alpha for hyper-saturated colors (#134)
* Externalized SparkRenderer.maxPixelRadius and .minAlpha settings. Added to documentation. Added to examples/editor under Debug folder, moved sort32 there.

* Added SplatEncoding concept, applied individually to SparkRenderer (rgbMin/Max, lnScaleMinMax), SplatMesh (additionally sh1Min/Max, sh2, sh3). Updated examples/editor to control settings via gui. Updated all related code to pipe along settings where needed.
Added SparkRenderer.premultipliedAlpha to control blend mode and enable hyper-saturated color contributions by default.

* Fix SplatLoader not passing along encoding. Complete renaming to splat encoding.
2025-07-23 10:04:24 -07:00
kali c1a335e8ee Added particle flow transition to examples (#131)
* Added particle flow transition to examples

* Added particle flow transition to examples
2025-07-22 20:08:50 +02:00
Andreas Sundquist 5eb57038b4 Externalize render settings minAlpha and maxPixelRadius (#130)
* Add commented benchmarkSort to compare JS vs Wasm sorting.

* Add 32-bit float sort via SparkViewpooint.sort32, using 2-pass radix-65536 sort. Turn on sort32 by default for examples/editor. Implemented Rust sort and JS sort, updated benchmarking code to include float16 and float32 sort.

* Add sort32 to docs/spark-viewpoint.md.

* Externalized SparkRenderer.maxPixelRadius and .minAlpha settings. Added to documentation. Added to examples/editor under Debug folder, moved sort32 there.
2025-07-22 03:15:13 +02:00
Andreas Sundquist 0bfb6c8963 Implement float32 sorting option (#129)
* Add commented benchmarkSort to compare JS vs Wasm sorting.

* Add 32-bit float sort via SparkViewpooint.sort32, using 2-pass radix-65536 sort. Turn on sort32 by default for examples/editor. Implemented Rust sort and JS sort, updated benchmarking code to include float16 and float32 sort.

* Add sort32 to docs/spark-viewpoint.md.
2025-07-21 17:47:41 -07:00
Andreas Sundquist 0639f2f963 Rename SparkRenderer.renderScale to focalAdjustment. Add to constructor options and to docs. (#113) 2025-07-11 21:59:05 -04:00
Andreas Sundquist bf10efcab0 Update SplatLoader to handle progress updates, both for main file and any extra files, aggregating totals. Misc. improvements to examples. (#112) 2025-07-11 17:09:38 -07:00
61cygni 0cfa39df76 Add Sutro tower SOGS example (#111)
* Add Sutro tower SOGS example

- Reset to default settings
- Add to main index

* Remove spark renderer

* Update example title

---------

Co-authored-by: 61cygni <>
Co-authored-by: Diego Marcos <diego.marcos@gmail.com>
2025-07-11 16:20:40 -04:00
Andreas Sundquist dc07e02a33 Expand internal splat scale encoding to e^[-12,9]. Lower zero cut-off to e^-30. Fix background color selection in editor. (#110) 2025-07-11 10:48:10 -07:00
Diego Marcos Segura c8394665ec Fix example importmaps 2025-07-10 23:06:58 -04:00
Diego Marcos Segura 6ba5309f5d Change sogs example blur and preBlur ammounts 2025-07-10 17:31:05 -04:00
Diego Marcos Segura 35927616f0 Add missing importmap 2025-07-10 01:46:23 -04:00
Diego Marcos Segura 9a7af2c7e9 Add example for SOGS compression 2025-07-10 01:29:26 -04:00
Winnie Lin fce43be8f0 Transition Shader Example (#69)
* v0 transition shader

* cleanup hardcoded constants, add multi-object transitions

* switch to fixed canvas

* update assets

* envmap draft

* update assets

* Move assets to CDN

* Replace underscore variable naming with camelCase for consistency

---------

Co-authored-by: Diego Marcos Segura <diego.marcos@gmail.com>
2025-07-08 16:27:55 -04:00
Andreas Sundquist fea2e17cd0 Add background color selector to examples/editor. (#103) 2025-07-08 12:24:50 -04:00
Andreas Sundquist 4266db3259 PC SOGS decoding from .Zip archive (#100)
* Implement PC SOGS decoding from .zip file archive. Update viewer and editor to accept .zip files.

* Restore GL WEBP decoding.
2025-07-07 17:18:11 -07:00
Diego Marcos Segura cd40e139d1 Make example animations framerate independent 2025-07-04 08:39:25 -05:00
Diego Marcos Segura c65bbcfefb Make hello world rotation animation framerate independent 2025-07-04 08:25:15 -05:00
Andreas Sundquist 179885595c Splat Texture (#79)
* Add experimental Splat Texture rendering and examples/splat-texture. Added star.png and heart.png to assets.json and to assets repo. Update examples/depth-of-field to compute from metric aperture size. Added SparkRenderer.renderScale debug parameter. Updated examples/editor: set default highDPI to true, added logFocalDistance, apertureAngle, refactored, grouped into debugFolder, default settings open, preset buttons for nonAA and AA settings.

* Set default highDpi in examples/editor to not(isMobile).
2025-07-01 07:57:34 -07:00
Andreas Sundquist 36c3c61d0b Implementation PC SOGS file format loading via meta.json root file. Added webp dependency for accurate decoding. Updated viewer and editor to accept new file type. (#73) 2025-06-30 08:57:51 -07:00
Andreas Sundquist 06b1564246 Set default enable2DGS to false. Update docs and include DoF focus blur settings. Make procedural-splats work better on Android. Fix touch controls on examples. (#65) 2025-06-24 00:42:38 -07:00
Andreas Sundquist db1e880ae1 Add focalDistance and apertureAngle to SparkRenderer. Add examples/depth-of-field. (#59) 2025-06-20 17:09:43 -07:00
Andreas Sundquist 690e09ac95 Add modifiers normalColor and depthColor. Add examples/debug-color to show how to use them on SplatMeshes. (#58) 2025-06-20 14:23:45 -07:00
Andreas Sundquist e36b553611 Add GLSL inline shader code injection example (#56)
* Add examples/glsl and link into index.html and examples.html.

* Add comment to example defining struct Gsplat.

* Adjust tab size formatting to 2
2025-06-20 13:15:14 -07:00
Andreas Sundquist 09bfa95bce Add preBlurAmount and blurAmount sliders to examples/editor. Move other settings out into main right gui panel. (#54) 2025-06-18 10:08:48 -07:00
Andreas Sundquist d4f174677c Add examples/webxr/ single-html example. Linked in index.html. Improved the experimental hands.ts interface. Fixed issue with single-camera WebXR. Added valley.spz to assets.json, added to assets repo. 2025-06-17 18:50:49 -07:00