Skip to content

Preserve partial canonical PLY layers for 2DGS compatibility - #284

Draft
Arison591 wants to merge 1 commit into
playcanvas:mainfrom
Arison591:agent/preserve-partial-ply-layers
Draft

Preserve partial canonical PLY layers for 2DGS compatibility#284
Arison591 wants to merge 1 commit into
playcanvas:mainfrom
Arison591:agent/preserve-partial-ply-layers

Conversation

@Arison591

Copy link
Copy Markdown

Summary

  • preserve properties from incomplete canonical layers as other extras instead of silently dropping them
  • restore SuperSplat's 2DGS PLY compatibility path when an official-style file omits scale_2
  • cover both the native streaming PLY reader and the DataTable compatibility bridge

Root cause

The 3.0 ChunkSource migration only creates the geometric layer when all eight geometric properties are present. At the same time, its extras filter excluded every standard property name unconditionally. Official 2DGS PLY files omit scale_2, so rot_*, scale_0, scale_1, and opacity were discarded before SuperSplat could materialize the table and run its existing scale_2 compatibility shim.

This change only treats names as canonical when their complete layer is available. Partial-layer properties remain lossless extras, preserving the source semantics without claiming native 2DGS/SOG encoding support.

Related to #166 and unblocks playcanvas/supersplat#975.

Validation

  • npm run lint
  • npm run build
  • npm run publint (passes with the repository's existing sideEffects suggestion)
  • 704 tests passed and 5 skipped when excluding render-golden.test.mjs; the three golden-render cases require Vulkan, which is unavailable in this environment
  • focused 2DGS and compatibility-bridge regressions pass
  • packed the modified library into SuperSplat: the previously failing 2DGS-style PLY loads, validates all required properties, and the SuperSplat production build passes

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