Commit Graph

80 Commits

Author SHA1 Message Date
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
Diego Marcos Segura 6887d8d09d Make loader default white. Remove old image 2025-06-10 21:57:23 -07:00
Diego F. Goberna a4972205a8 spark loading gif (#41) 2025-06-10 21:44:10 -07:00
Diego Marcos Segura 6ec3eb5f38 Fix import paths. sparkjs-dev to sparkjsdev 2025-06-10 13:41:16 -07:00
Diego F. Goberna f2d449a256 update viewer logo 2025-06-10 10:34:14 +02:00
Diego Marcos Segura 06138076fe Change importmaps from sparkjs-dev to sparkjsdev 2025-06-09 16:27:45 -07:00
Andreas Sundquist acb541cc4e Renamed "forge" to "spark". Updated meta-references and future domain. (#40) 2025-06-09 13:50:08 -07:00
Andreas Sundquist 7a4142c62a Lower MIN_ALPHA from 0.01 to 0.5/255, the lowest conceivable value that could be encoded in a Uint8, allowing highly transparent objects to render better. (#37)
Add "sortRadial" option to Editor to allow toggling between radial and Z-depth sorting.
2025-06-06 12:53:19 -07:00
Andreas Sundquist 0045be0c39 Add stats.js for frame stats with toggle in GUI. (#32) 2025-06-03 13:22:03 -07:00
Diego Marcos Segura 47b2f4aea2 Remove debugger statements 2025-06-02 09:46:13 -07:00
Diego Marcos Segura 1ff50e4a73 Make viewer logo clickable 2025-06-02 09:46:12 -07:00
Andreas Sundquist 16e633cc63 Don't transform splats when transcoding in viewer. 2025-06-02 09:40:37 -07:00
Andreas Sundquist 9a39bb0918 Fix typo in viewer. 2025-06-02 08:36:52 -07:00
Diego Marcos Segura e677969f4b Fixing example names links 2025-06-02 07:59:31 -07:00
Diego Marcos Segura 543f765289 Fix import path 2025-06-02 07:40:41 -07:00
Diego Marcos Segura 79f0b27a81 Add missing import 2025-06-02 07:37:03 -07:00
Diego Marcos Segura 7a128f9234 Remove unnecessary controls from envmap example 2025-06-02 05:20:10 -07:00
Diego Marcos Segura 2a23946eed Tweak mobile CSS 2025-06-02 05:17:05 -07:00
Diego Marcos Segura 3a31f7428c Fix example title 2025-06-02 04:51:47 -07:00
Diego Marcos Segura 1051e066af Simplify viewer. Move old one to editor 2025-06-02 03:56:06 -07:00
Diego Marcos Segura 572b62383b Fix missing dependency and corresponding importmap in example 2025-06-01 01:58:33 -07:00
Diego Marcos Segura 8453f84aab Simplify example names 2025-06-01 01:39:43 -07:00
Diego Marcos Segura b11c5af5cf Remove VR button 2025-06-01 01:33:00 -07:00
Diego Marcos Segura a506e51bd3 Add missing import path to multiple viewpoints example 2025-06-01 00:29:59 -07:00
Diego Marcos Segura 3d16a130b1 Replace hero image with iframe + carousel 2025-05-31 00:55:57 -07:00