Skip to content

Conversation

querielo
Copy link

@querielo querielo commented Sep 29, 2025

Issue: #476

This PR adds first-class support for the SOG (Spatially Ordered Gaussians) scene format to GaussianSplats3D. It enables loading both:

  • A bundled .sog archive (ZIP with stored entries), and
  • A multi-file SOG directory containing meta.json and referenced WebP images.

Limitations and follow-ups

  • Zip reader supports only STORE (no DEFLATE). This matches the splat-transform writer.
  • SH degree 3 data is currently clamped to degree 2. Follow-up: import all 15 AC coefficients per channel when viewer-side support is in place.
  • Consider workerizing SOG parsing for large scenes to keep the main thread responsive.
Screenshot 2025-09-29 at 13 16 47

@Copilot Copilot AI review requested due to automatic review settings September 29, 2025 11:19
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds initial support for the SOG (Spatially Ordered Gaussians) scene format to GaussianSplats3D, enabling loading of both bundled .sog archives and multi-file SOG directories.

Key changes include:

  • Implementation of a minimal ZIP reader for browser-based .sog archive extraction (STORE method only)
  • SOG parser that reconstructs 3D Gaussian splats from WebP-encoded data using quantization and codebooks
  • Integration with existing loader infrastructure and viewer components

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/loaders/sog/ZipReaderBrowser.js Minimal ZIP reader supporting STORE compression for .sog archives
src/loaders/sog/SogParser.js Core parser for SOG format data reconstruction from WebP images
src/loaders/sog/SogLoader.js Main loader with support for both directory and ZIP-based SOG files
src/loaders/Utils.js Added SOG format detection for .sog file extensions
src/loaders/UncompressedSplatArray.js Fixed spherical harmonics data placement in splat components
src/loaders/SceneFormat.js Added SOG format enum value
src/index.js Exported SogLoader for public API
src/Viewer.js Integrated SOG loading support into main viewer

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant