| Filename | Latest commit message | Latest commit date |
|---|---|---|
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]> |
||
| .. | ||
| assets | ||
| README.md | ||
| vectors.json | ||
live-conformance/splat — exact splats
The corpus of 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 isassets/<scene>.bin: the object'sWAI1envelope, then (where the asset carries it) the parameter set's one file. Its buffer 1, where it has a commitment, isassets/<asset>.commitment.json, the commitment's JCS text. An asset's buffers are named byuribeside it.vectors.json— the index.heldmaps a parameter set's SHA-256 to the committed file that holds it (paths relative towai/). Each case names itsasset, the sets it holds (held), the splat set's origin claim (origin, a text ornull), its view statements (statements, texts), and what a verifier gives it (expect):refusedwith itsreasonand its place (at:asset,commitment,view n,originorstatement n), oracceptedwith the statements of §9.3: theobject's content hash, theattributesdigest,n_gaussians, each canonicalframesdigest, and each statement'scanonicalandclass.
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/: its payloadsplat.wis1and its synthesissplat_gs.bin, whichtools/wai_int_splat_export.pytrained on a seeded procedural cloud (that directory's README states it). The set is held by digest, not carried in the asset.clusterandtiny— 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-layerWHM1network that decodes each latent value to one byte, so the planes are coded as they are.tiny13andtiny_negscalearetinywith 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.