Boxes at both sides of every size bound and every column and row bound, past the edges and at the limits of a signed integer; each interpolation mode rising and falling, with floors below zero. The size control now keeps its position, so it fails on the size bound alone. Co-Authored-By: Claude Opus 5.5 <[email protected]>
44 lines
2.8 KiB
Markdown
44 lines
2.8 KiB
Markdown
# live-conformance/direction — direction records
|
||
|
||
The corpus of [`extensions/direction.md`](../../extensions/direction.md) §14, in one file,
|
||
`vectors.json`: the model file its layers are generated with (`models`, its `sha256` and its
|
||
`file` as text), the pictures given as they are (`pictures`, each its `sha256` and its `rgb8`
|
||
buffer in hexadecimal), the framing measure of §7 alone (`measures`, each a `frame` size, a `box`
|
||
and the `size` and `position` it measures), the interpolations of §5.2 alone (`interpolations`,
|
||
each its `interp`, its `from` and `to` values, `n` and `d`, and its `value`), and the
|
||
**vectors**, each a case of §12.1 and what a verifier gives it.
|
||
|
||
A case holds its `policy` (`require`); the directed `output` record and the direction `records`
|
||
it holds, each as a JSON text; the `models` it holds, each by the SHA-256 of a file in `models`;
|
||
and the `pictures` it holds, each by the SHA-256 of a buffer in `pictures`. Frames are 64 × 36
|
||
pixels at 24 frames a second, so every frame of every exact case recomputes.
|
||
|
||
**Direction equivalence.** For each vector, a conforming verifier reaches the outcome it
|
||
states:
|
||
|
||
- `refuse`: the `reason` and where, `at`: `["output"]`, `["record", i]`, `["direction", k]`,
|
||
`["layer", i]`, `["clip", i]`, `["clip", i, t]`, `["timeline"]`, `["timeline", i]`,
|
||
`["governs", i]` or `["policy"]`;
|
||
- `accept`: the `statements` of §12.4: the directed output's link hash (`output`); its `status`,
|
||
`generator` and `class`; each direction record's `kind`, `link`, `director` and `levels`; each
|
||
element's `record`, `element`, `level`, `director` and governed `frames`; the `cuts`; the frame
|
||
map, one entry per output frame, with the frames it `shows` and who it is `directed_by` at each
|
||
level; the SHA-256 of every output frame's `RGB8` samples (`frame_sha256`), or `null` where the
|
||
outcome is attested; each layer's status (`layers`); and the C2PA statements of §11.1
|
||
(`c2pa`), each its director and its JCS text.
|
||
|
||
A verifier that measures another class, interpolates another value, or reaches another outcome,
|
||
reason, place or statement does not conform.
|
||
|
||
**Provenance.** `wai_direction_vectors gen` writes `vectors.json` from records authored in code:
|
||
every key is SHA-256 of the corpus's label and an index, the drawn reference picture is SHA-256
|
||
output of a label, every other picture is made by `wai.generate.spectral` with the model file of
|
||
its conformance vector (`wai-rs/tests/vectors/generate/generate_spectral_model.json`, held here
|
||
byte for byte in `models`), the attested case's frames are SHA-256 output of a label, every time
|
||
is a constant, and Ed25519 signing is deterministic, so the file is the same bytes on every
|
||
machine. Every picture is named by the SHA-256 of its `RGB8` samples, and every output frame of
|
||
an exact case by the SHA-256 stated in `frame_sha256`.
|
||
|
||
```
|
||
python3 -I ../direction_verify.py .
|
||
```
|