| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 18s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 13s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 1m21s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Failing after 1m28s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 2m36s
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 3m24s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 3m26s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Failing after 4m54s
wai-audit collector and player integration / does this change touch it (push) Has been cancelled
wai-audit collector and player integration / collector · linux (push) Has been cancelled
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Has been cancelled
WAI operation catalogue / does this change touch it (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
wai-quantum for JavaScript / does this change touch it (push) Has been cancelled
wai-quantum for JavaScript / javascript · linux (push) Has been cancelled
wai-quantum studio and desktop / does this change touch it (push) Has been cancelled
wai-quantum studio and desktop / studio · browser (push) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Has been cancelled
wai-sink-android native sink library / does this change touch it (push) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Has been cancelled
wai-sink-swift native sink package / does this change touch it (push) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Has been cancelled
WAI Studio / does this change touch it (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Successful in 6m51s
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Successful in 7m42s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
wai-app and Create / wai-app · does this change touch it (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-fleet service / does this change touch it (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
wai-ledger service / does this change touch it (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
wai-ledger service / service · macos (push) Has been cancelled
wai-key-proxy / does this change touch it (push) Has been cancelled
wai-key-proxy / proxy · linux (push) Has been cancelled
wai cross-architecture byte-equality / does this change touch it (push) Successful in 12s
wai-ops integer operators / does this change touch it (push) Successful in 16s
wai formal verification (integer core) / does this change touch it (push) Successful in 15s
wai cross-architecture byte-equality / macos-arm64 (reference) (push) Successful in 23s
wai-ops integer operators / macos-arm64 (push) Successful in 54s
wai cross-architecture byte-equality / linux-x86_64 (push) Successful in 52s
wai-ops integer operators / independent checker (Python) (push) Successful in 16s
wai-ops integer operators / wasm32 under Node (push) Successful in 29s
wai-ops integer operators / wasm32-wasip2 (wasmtime) (push) Successful in 44s
wai formal verification (integer core) / every harness in one shard (push) Successful in 22s
wai-ops integer operators / linux-x86_64 (push) Successful in 1m17s
wai cross-architecture byte-equality / linux-aarch64 (push) Successful in 1m0s
wai formal verification (integer core) / kani (stage) (push) Successful in 4m5s
wai-ops integer operators / linux-aarch64 (push) Successful in 2m22s
wai formal verification (integer core) / kani (integer-core) (push) Successful in 10m7s
wai cross-architecture byte-equality / windows-x86_64 (push) Successful in 1m13s
wai formal verification (integer core) / kani (plan) (push) Successful in 14m56s
wai formal verification (integer core) / kani (isqrt512) (push) Successful in 27m59s
wai formal verification (integer core) / kani (arith) (push) Successful in 17m25s
wai formal verification (integer core) / kani (sound) (push) Successful in 21m12s
wai formal verification (integer core) / kani (rans64-t2) (push) Successful in 13m58s
wai formal verification (integer core) / kani (stage-long) (push) Successful in 41m42s
Registers wai.video.int_cond and its frame form wai.video.int_cond.frame, NeuralIntegerExact at decode-equivalence. Each frame's latent is coded given a temporal context, the previous frame's decoded feature (zero for an intra frame): an integer context network over that context gives every latent element's scale and mean, the element is decoded against its scale's table, and an integer conditional decoder and synthesis give the frame and the feature the next frame reads. Every network is a WHM1 network through whm1/1, so every scale, table choice, feature and frame is the encoder's on every decoder. The context is a feature, not pixels, so the decode takes no warp operator and wai-ops/1 gains none. integer-payloads §17 pins WIC1 (a clip of WCF1 frames) and WCF1 (one frame, carried one an object by frame-stream), their checks and decode, and the one-file set WCB1 (model.wcb: ctx, prior, dec, recon and the tables). §17.7 (informative) sets out what lowering DCVC-RT's published weights onto the topology by post-training quantisation takes, as int_hyper was lowered from mbt2018_mean: its blocks are WHG1 graphs of operators wai-ops/1 has, and its hyperprior, spatial passes and rate are what WCF1 does not carry. integer-operators §13.4a adds the lowering wcb1/1 and §13.5 its driver row; SPEC §5 Video rows and the frame-forms text, determinism-tiers rows. wai-rs: int_cond_video (CondModel, plan, load, decode_frame, decode_clip, CondFrames under FrameStream, split, join, corpus); int_payload::wire parses and writes WIC1 and WCF1, which join the magics a format_capability_mismatch names; decode_int decodes the clip; the emit paths parse both payloads. float_free reads int_ops_offload.rs, an integer module its list lacked. wai-ops: lower::wcb1. tools/wai_int_cond_export.py trains the topology on seeded procedural clips, quantises it after training and codes a six-frame 64x64 clip with the integer networks themselves (tests/vectors/int_cond/; its sidecar names its buffer, and tests/int_kernels_vectors.rs holds the clip to it under every kernel policy). int-payload-conformance/int-cond/: the clip's frames, frame streams (clean, two groups, a frame lost, another picture size, a stream that runs out), a fixture for every parse code and the decode's, set fixtures, join refusals. int_payload_verify.py --int-cond decodes the clip, the streams and the decode fixtures with its own integer networks and rANS decoder. Byte-identical on Linux x86_64 and Linux arm64. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| frame-stream | ||
| int-cond | ||
| refusals | ||
| sets | ||
| .gitattributes | ||
| int_payload_verify.py | ||
| README.md | ||
| vectors.json | ||
int-payload-conformance — the integer payloads
Vectors for the payload formats SPEC §5 pins to the WAI-native integer codecs
(extensions/integer-payloads.md): WIV1 for
wai.video.int_motion (keyframe 0) and wai.video.int_hyper (keyframe 1), WIH1
for wai.neural.int_hyper, WIA1 for wai.audio.int_codec and WIS1 for
wai.splat.int_codec.
Provenance. Generated here: wai_int_payload_vectors gen converts the vectors under ../wai-rs/tests/vectors/ and changes them for the refusal fixtures; tests/vectors/README.md states each vector's provenance. One payload indexed here is not generated content: video_real (int_video) codes a third-party image (see there).
Code-equivalence. A conforming sink decodes every payload to the output digests its vector states, and refuses every fixture with the code it states, from the extension's closed list (§8).
vectors.json— the index. For each payload: its capability, its path, its SHA-256, the JSON it is converted from, the parameter set it decodes against (each member's name in the set, and the committed file that holds it), and thesha256.jsonsidecar that states its decoded output's SHA-256. For each refusal fixture: its capability, its path, its code, and whether parsing alone refuses it (parse) or the decode does (decode). Paths are relative towai/.- The payloads sit beside their JSON sources under
../wai-rs/tests/vectors/:int_video/*.wiv1,int_hyper/tiny_bitstream.wih1,int_audio/audio_bitstream.wia1andint_splat/splat.wis1. Their sidecars are the ones the JSON forms' decodes are checked against: a payload and its JSON source decode to the same bytes. refusals/*.bin— each a committed payload changed in one place (a byte, a field, a truncation, a word appended to a stream), so that it is refused with one code, or, forwiv1_end_stateandwiv1_one_frame_end_state, a small clip written to end its stream in a state other than2^31. The fixtures named*_order_*break two rules at once and pin which one a sink reports (the extension's §2 and §7), and so do thewiv1_geometry_flip_*fixtures:wiv1_geometrywith one byte of its keyframe's last stream words changed, refused for the keyframe's size before that stream is read. The fixtures forbad_magicare the JSON sources themselves: a tool's JSON output is a converter input, never a payload.sets/— a parameter-set member a fixture decodes against in place of a committed one:entropy_median_max.jsonis the tiny conditional codec's tables with one median ati64::MAX.
Files are compared as bytes; .gitattributes turns off line-ending conversion.
Generation. Every file here, and every payload under tests/vectors/, is
written by one generator from the committed JSON alone, so it can be rebuilt and
compared:
cd wai/wai-rs
cargo run --no-default-features --features video_int,audio_int,splat_int \
--bin wai_int_payload_vectors -- gen ../int-payload-conformance
Verifiers.
-
wai_int_payload_vectors verify ../int-payload-conformance(wai-rs) regenerates every file and requires it to equal the committed one byte for byte, decodes every payload throughint_payload::decode_intto its sidecar's SHA-256, and requires every fixture to be refused with its code at its layer, and byint_payload::declared_costwith the same code unless the decode's refusal comes from a stream or a network run.tests/int_payload.rsruns the fixtures again in both build profiles, refuses every strict prefix of every payload, and runs a sweep of single-byte changes in which nothing may panic;tests/int_payload_preflight.rschecks that a header past the caps or past what the parameter set can fit is refused before anything sized from it is allocated, and that a payload whose streams cannot carry what its header declares is refused at its first exhausted symbol, having allocated only what it decoded. -
int_payload_verify.py, Python standard library only and sharing no code with wai-rs, written from the extension: it parses every payload with the extension's rules and check order, converts every JSON source independently and requires the committed bytes, decodes theWIV1payloads with keyframe 0 in full (the rANS decoder with its bypass escape, its stop at the first exhausted symbol and its canonical end, whole-pel and half-pel motion compensation) to their sidecars' SHA-256, and checks every fixture: aparsefixture's code, and that adecodefixture parses (aWIV1keyframe-0 one is decoded and must be refused with its code).python3 int-payload-conformance/int_payload_verify.py int-payload-conformance
Not decoded independently. The Python verifier does not decode WIH1, WIV1
with keyframe 1 (its keyframe is a WIH1), WIA1 or WIS1: their decodes run
integer networks it does not implement. Their outputs are checked by wai-rs against
the sidecars above, and also by the cross-architecture goldens in
../byte-exact-conformance/. For their decode
fixtures the Python verifier checks that they parse; their codes are checked by
wai-rs.
Frame streams
frame-stream/ holds the frame streams of
extensions/frame-stream.md: the frame forms
wai.video.int_motion.frame and wai.video.int_hyper.frame (WIF1,
integer-payloads.md §16) and
wai.neural.dcvc_rt.frame (WNF1, frame-stream §4), one frame an object.
index.json— the index. Each stream: its capability, its mode (full: decoded;parse: checked to its links and geometry, for the neural frames, whose decode needs the sink-supplied networks), the parameter set it decodes against, the clips it was split from (split_from, with their sidecars), and its objects in order, each with its envelope, its content hash and what a sink does with it:ok(with the decoded frame's SHA-256 where the stream decodes it) or the code it is refused with. Then the payload fixtures, the neural clip with its frames and the clips and groups its split and join refuse, and the catalog cases.streams/<name>/NN.wai— the envelopes, each written once, where a stream first holds it.int_video,video_realandvideo_nkare those clips split into one group each;two_groupsis two of them in one stream;dcvcis the synthetic neural clip's frames. Every other stream plants one fault of frame-stream §5: a frame lost (gap), aprevaltered (prev_mismatch), an index skipped (index_mismatch), a join after a group's intra frame (joined), a link on an intra frame or none on an inter frame (intra_linked,inter_unlinked), a member missing or malformed (link_missing,link_malformed), another picture size (geometry,dcvc_geometry), another capability (capability_mismatch), a payload whose stream runs out (payload_refused), another pin (prior_changed), a neural frame lost (dcvc_gap).payloads/*.bin—WIF1andWNF1frames each changed in one place, refused at their parse or, forwif1_exhaustedandwif1_noncanonical, their decode.dcvc/— the synthetic whole-clip neural payload (clip.bin), its frames, and the clips (clip_*.bin) and groups (join_*/) the split and the join refuse. Its bitstreams are generated bytes, not an encode.catalog.json— MoQ catalog entries with and withoutwai_frame_stream(moq-streaming-format.md§4.3), and objects checked against them with their Object IDs.
Equivalence. A clean split's frames decode to its clip's frames, byte for byte, and to the SHA-256 the clip's sidecar states for each: the stream's frames are the clip's.
Generation and verifiers. wai_int_payload_vectors gen writes frame-stream/ with the
rest of this directory, from the committed clips alone (wai::frame_stream::corpus::build),
and verify regenerates it, decodes every stream through frame_stream::FrameStream, holds
each clean split to its clip's whole decode, and checks every payload, split, join and
catalog case (frame_stream::corpus::verify). int_payload_verify.py checks it too, and
shares no code with wai-rs: it splits each clip again with its own rANS encoder and requires
the committed frame payloads, decodes every keyframe-0 frame, makes frame-stream §5's checks
over every stream with its own BLAKE3 (../claim-conformance/_blake3.py), and checks every
payload, split, join and catalog case. It does not decode a WIH1 keyframe: the
wai.video.int_hyper.frame streams it checks to their links and geometry, and wai-rs checks
their decode.
python3 int-payload-conformance/int_payload_verify.py --frame-stream int-payload-conformance
NMSF tracks
frame-stream/nmsf/ holds the mapping of frame-stream §9 between a
frame stream of wai.neural.dcvc_rt.frame or wai.neural.dcvc_fm.frame and a track of
packaging nvc (draft-herz-moq-nmsf-01).
index.json— the model bindings, and bindings that do not read (binding_cases); NMSF catalog entries, each with the WAI entry it maps to or the code that refuses it (nmsf_catalog); WAI entries, each with the NMSF entries and the pin it reads to, or the code (wai_catalog); rewrap streams, each NMSF object with its Object ID and the frame object it maps to, or the code (rewrap); unwrap streams, each frame object with the NMSF objects it maps to, or the code (unwrap); and frame objects whosenumberorcapture_msa sink refuses (links, frame-stream §5).objects/<stream>/NN.nmsf(NN.hyper.nmsfandNN.latent.nmsfin two-track mode) — NMSF objects: a 64 × 64 stream of two groups, the first frame of each an Intra frame, and the same objects changed in one place each, for every rule of frame-stream §9.4. Their bitstreams are generated bytes, not an encode.wai/<stream>/NN.wai— the frame objects. The single-track and two-track streams map to the same files: one frame object for both modes.
Round trip. Every rewrap stream's frame objects, admitted by a sink and unwrapped in
order through the WAI entry its catalog case maps to, give back its NMSF objects byte for
byte. wai_int_payload_vectors verify (frame_stream::nmsf::corpus::verify) and
int_payload_verify.py, which reads every NMSF object and entry with its own parser and
requires each committed frame object's payload and manifest, both check it, and both require
every code of frame-stream §9.6 to be given by a case. --frame-stream runs it with the
frame streams.
Conditional inter-frame video
int-cond/ holds wai.video.int_cond and its frame form
wai.video.int_cond.frame (integer-payloads.md §17):
the committed clip under ../wai-rs/tests/vectors/int_cond/
(clip.wic1, six 64 × 64 frames), its parameter set (model.wcb, networks trained and
quantised by tools/wai_int_cond_export.py) and its sidecar (sha256.json, each decoded
frame's SHA-256).
index.json— the index: the set and its pin, the clip and its frames, the streams with what a sink does with each object (ok, with the frame's SHA-256, or the code it is refused with), the payload fixtures with their code and layer, the set fixtures and the join refusals.frames/NN.wcf1— the clip split into itsWCF1frames, a copy of each.streams/<name>/NN.wai— frame objects pinned to the set:clip(the clip as one group),two_groups, and one fault each:gap(a frame lost),geometry(an inter frame of another picture size),payload_refused(a frame whose stream runs out).refusals/*.bin—WCF1frames andWIC1clips changed in one place each: a fixture for every code their parse gives, and for the decode's (stream_exhausted,stream_noncanonical,model_mismatch,geometry_mismatch, andfield_range: a clip whose latent symbols, near±2^31and signed so that the conditional decoder's sums add up, carry a value out of a network's check range).sets/*.wcb— the set changed in one place each, against which the clip is refused (model_mismatch);no_setdecodes with no set (set_incomplete).joins/<name>/— groups the join refuses.
Equivalence. The clip decodes to its sidecar's SHA-256; its frames, as frame objects, decode to the clip's frames byte for byte.
Generation and verifiers. wai_int_payload_vectors gen writes int-cond/ from the
committed vector alone (wai::int_cond_video::corpus::build), and verify regenerates it and
checks every case (corpus::verify), as tests/int_cond_video.rs does. int_payload_verify.py
checks it too and shares no code with wai-rs: it decodes the clip, every stream and every
decode fixture with its own integer networks (WHM1 convolutions, transposed convolutions,
ReLU and leaky ReLU, with whm1/1's check ranges) and its own rANS decoder, and requires
every SHA-256 and every code.
python3 int-payload-conformance/int_payload_verify.py --int-cond int-payload-conformance