# 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/.gltf` — an asset's JSON. Its buffer 0 is `assets/.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/.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.