Skip to content

Document SOG version 3 and blind data - #1335

Merged
mvaligursky merged 1 commit into
claude/engine-2-24-docsfrom
claude/sog-v3-docs
Nov 6, 2026
Merged

mvaligursky merged 1 commit into
claude/engine-2-24-docsfrom
claude/sog-v3-docs

Conversation

@mvaligursky

Copy link
Copy Markdown
Contributor

Documents SOG version 3 (playcanvas/engine#9873) and its blind data (playcanvas/engine#9960) for engine 2.24. Version 2 stays fully documented: both versions are supported, and the spec marks where they differ.

Changes:

  • SOG format spec: a version-differences table at the top, linking to each section, and v2 / v3 marked throughout:
    • Orientation: v2 smallest-three quats.webp, v3 a 24-bit exponential map in the alpha channels of means_l, means_u and scales (no quats.webp)
    • Opacity: v2 sh0.a / 255, v3 (sh0.a / 204)² up to 1.5625, with the optional meta.opacity.max
    • SH: a 4th band and 24-bit palette labels in v3
    • New section on blind data: meta.blind images, field types (u8–u32, f16, f32, unorm8, unorm16 with range), in-order little-endian packing and a decoding sample
    • Example meta.json for both versions, and versioning guidance on when to write v2
    • Fixes the 1-band palette width (96 → 192) and adds the SH decoding subsection the Japanese page was missing
  • Work Buffer Format: new "Reading SOG Blind Data" section covering getBlind_<name>(), SOG_BLIND_<name> and the name-to-identifier rule, with a GLSL / WGSL modifier and the Blind Data example
  • Streamed SOG: chunks may be SOG version 2 or 3
  • English and Japanese

Examples:

  • Links gaussian-splatting-fx/blind-data

The spec documents the meta.blind layout the engine reads (fields in order, range). SplatTransform's v3 writer, not yet released, still writes offset and min / max, and needs to move to this layout.

The SOG format spec now covers versions 2 and 3, both supported, with a table of the differences
and the version-specific parts marked: the exponential-map orientation, squared opacity up to
1.5625, a 4th SH band, 24-bit palette labels and per-gaussian blind data.

The Work Buffer Format page shows how a copy modifier reads blind fields through
getBlind_<name>() and SOG_BLIND_<name>, with the Blind Data example, and Streamed SOG notes that
chunks may be either version. English and Japanese.
@mvaligursky mvaligursky self-assigned this Nov 6, 2026
@mvaligursky
mvaligursky merged commit 23a2083 into claude/engine-2-24-docs Nov 6, 2026
4 checks passed
@mvaligursky
mvaligursky deleted the claude/sog-v3-docs branch November 6, 2026 15:48

This branch was successfully deployed

1 active deployment
Preview — b468472b Deployed Nov 6, 2026 by vercel[bot]
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