The record wai.splat.exact; the document kinds wai-splat-commitment and wai-splat-view, the scheme wai-splat-render:i1, and the proposed glTF extension name EXT_gaussian_splatting_compression_wai under a new wire identifier kind, gltf-extension (schema enum, REGISTRY.md prose). The wai-conformance.yml step runs the module's tests and splat_exact_verify.py, and its paths take the extension, its schema and wai_ops_check.py. The extension's §11 records the GPU run. Co-Authored-By: Claude Opus 5.5 <[email protected]>
55 lines
3.8 KiB
Markdown
55 lines
3.8 KiB
Markdown
# live-conformance/splat — exact splats
|
|
|
|
The corpus of [`extensions/splat-exact.md`](../../extensions/splat-exact.md) §11: glTF 2.0 assets
|
|
that carry a `wai.splat.int_codec` object through `EXT_gaussian_splatting_compression_wai` (a
|
|
compression extension of `KHR_gaussian_splatting`), the origin's commitments to frames of
|
|
`wai-splat-render:i1` at canonical poses, origin claims, and sinks' view statements.
|
|
|
|
- `assets/<asset>.gltf` — an asset's JSON. Its buffer 0 is `assets/<scene>.bin`: the object's
|
|
`WAI1` envelope, then (where the asset carries it) the parameter set's one file. Its buffer 1,
|
|
where it has a commitment, is `assets/<asset>.commitment.json`, the commitment's JCS text. An
|
|
asset's buffers are named by `uri` beside it.
|
|
- `vectors.json` — the index. `held` maps a parameter set's SHA-256 to the committed file that
|
|
holds it (paths relative to `wai/`). Each case names its `asset`, the sets it holds (`held`),
|
|
the splat set's origin claim (`origin`, a text or `null`), its view statements (`statements`,
|
|
texts), and what a verifier gives it (`expect`): `refused` with its `reason` and its place
|
|
(`at`: `asset`, `commitment`, `view n`, `origin` or `statement n`), or `accepted` with the
|
|
statements of §9.3: the `object`'s content hash, the `attributes` digest, `n_gaussians`, each
|
|
canonical `frames` digest, and each statement's `canonical` and `class`.
|
|
|
|
**Exact-splat equivalence.** For each case, a conforming verifier reaches the outcome, place and
|
|
statements it states. Every code of §10 refuses a case. Among the refused cases are the negative
|
|
controls §11 names: `cluster_reordered` (frames committed with a tie of distance broken by the
|
|
greater index), `statement_frame` (a frame rendered without the low pass, which does not
|
|
recompute), `cluster_wrong_splats` (a commitment over another scene's attributes) and
|
|
`statement_pose` (a pose outside the pinned set claimed canonical).
|
|
|
|
**Provenance.** Generated here: `wai_splat_exact_vectors gen` writes every file. Its scenes:
|
|
|
|
- `shell` — the learned cloud of [`../../wai-rs/tests/vectors/int_splat/`](../../wai-rs/tests/vectors/int_splat/):
|
|
its payload `splat.wis1` and its synthesis `splat_gs.bin`, which `tools/wai_int_splat_export.py`
|
|
trained on a seeded procedural cloud (that directory's README states it). The set is held by
|
|
digest, not carried in the asset.
|
|
- `cluster` and `tiny` — authored here as integer attribute bytes: Gaussians placed by hand (a
|
|
pair at exactly equal distance from the first pose's eye, elongated and rotated ones, a zero
|
|
quaternion, one partly off the frame, one inside the near plane and one too wide on screen at
|
|
the fourth pose), and the rest drawn from a fixed SHA-256 stream. They are carried through the
|
|
identity set (§11): a one-layer `WHM1` network that decodes each latent value to one byte, so
|
|
the planes are coded as they are. `tiny13` and `tiny_negscale` are `tiny` with thirteen planes
|
|
and with a scale range below zero.
|
|
|
|
Every key is SHA-256 of the corpus's label and an index, every time is a constant, and Ed25519
|
|
signing is deterministic, so every file is the same bytes on every machine. No image, model or
|
|
text here comes from outside the repository.
|
|
|
|
```
|
|
cd ../../wai-rs
|
|
cargo run --no-default-features --features splat_exact --bin wai_splat_exact_vectors -- gen ../live-conformance/splat
|
|
cargo run --no-default-features --features splat_exact --bin wai_splat_exact_vectors -- verify ../live-conformance/splat
|
|
python3 -I ../live-conformance/splat_exact_verify.py ../live-conformance/splat
|
|
```
|
|
|
|
The second implementation decodes each payload with the repository's other second
|
|
implementations (`int-payload-conformance/int_payload_verify.py`'s parser and rANS decoder, and
|
|
`tools/wai_ops_check.py`'s `whm1/1` lowering and interpreter) and renders each view with its own
|
|
integer renderer. `--png DIR` writes each committed frame as a PNG.
|