# Volumetric / 4D Splat Conformance Corpus Vectors for the volumetric extension (`wai.splat.4d`). The criterion is **frame-state-equivalence**: given the same temporal-splat clip, a conforming sink MUST reconstruct the identical Gaussian set at every frame, hence the identical BLAKE3 — on every machine, no tolerance parameter. The temporal counterpart of the static splat, with the single cloud replaced by per-Gaussian keyframed tracks. **Provenance.** Generated here: `wai_splat4d_vectors gen` writes every vector from clouds and tracks authored in code. No capture. Each Gaussian carries a track of keyframes (`frame`, position, scale, rotation quaternion, color, opacity, all `wai.det.fixed64`); the sink interpolates linearly in the `Fx` floor at any frame. The frame hash is `BLAKE3(domain || frame || n_gaussians | per-Gaussian 14×i64)`. The render of that set (EWA splatting, sort, blend) is the sink's presentation, never in the hash. Clips are self-contained, so each vector is a `.w4ds` container + its per-frame expected hashes. ## Layout - `vectors/.w4ds` — the `W4DS` container (contract + Gaussian tracks). - `expected_hashes.json` — per clip: `n_gaussians`, `n_frames`, `clip_hash`, and `frames[]` = `{frame, hash}` for every frame. Vectors: - `orbit` — two Gaussians swap x positions across 12 frames. - `pulse` — one Gaussian scales up and fades out across 10 frames. - `morph` — one Gaussian shifts color red → cyan across 8 frames. ## Running ``` cd ../wai-rs cargo run --features splat4d --bin wai_splat4d_vectors -- verify ../volumetric-conformance cargo run --features splat4d --bin wai_splat4d_vectors -- gen ../volumetric-conformance # regenerate ``` Pass = clip-hash and every frame-hash equality.