wai-vector: the raster RS1-RS9 and the frame procedure, with per-frame SHA-256 vectors (D7-3; stacked on #216) #217

Merged
dcharlot merged 5 commits from wai/d7-3-vector-raster into main 2026-10-11 08:34:30 -04:00
Owner

Adds the raster to wai/wai-vector: the stage family RS1–RS9 and the frame procedure (§3.5–§3.10). The corpus gains seven groups whose expected files state the SHA-256 of every frame's RGBA8P at every listed size and rate. This is phase D7-3 of D7.

Stacked on #216 (D7-2), which is stacked on #215 (D7-1). The branch starts at #216's first head (2f147d2a) and merges #216's later commit (5b0f2abd), so until both merge this diff also shows their changes. Merge #215, then #216, then this. Nothing is registered.

What lands

  • src/geom.rs, RS1:

    • the levels (M ≤ 64·4^n; 3·M ≤ 64·4^n) and both closed forms, in i64;
    • the 32-bit quotient–remainder identity, built under cfg(test), cfg(kani) and the new feature i32-forms;
    • a contour's polyline from §2.1's grammar.
  • src/cover.rs, RS2–RS6:

    • Rows: X(y) is the floor of the exact rational.
    • Cells: the crossings are the floor of the exact y on the piece's line, the same from either end. So each piece is walked left to right, its contributions negated when it runs right to left.
    • The delta buffer: it covers the fill's canvas-clipped box, using §3.11's two freedoms: rows outside the canvas are skipped, and the columns left of it fold into one contribution per row piece.
    • Then: the scan, both quantisers, and the run's glyph-wise sum S.
    • A debug build asserts D_r ≤ 256·p ≤ 2^22 − 256 before it accumulates.
  • src/paint.rs, RS7–RS9:

    • a fill: p′ = div255(p·o), s = div255(p′·α), then source-over;
    • the group pop: k = div255(m·o_g), s = div255(G·k);
    • RGBA8S.
  • src/frame.rs:

    • R(P, S, z, r, g). A run's glyphs are placed and flattened once per glyph ID and moved to each record's origin. Placement offsets do not depend on the origin, and flattening commutes with integer translation.
    • render_request, with size_unlisted, rate_unlisted and frame_range.
  • The CLI: render (one frame's RGBA8P) and hash (every frame's SHA-256 and each clip digest).

  • The vectors: 51 new, 319 in all, and 357 frame digests.

    group vectors frames what it pins
    flatten 1 (23 curves) — levels 9 and 10 at the corners of the device range; each level boundary; degenerate curves; negative coordinates
    fills 28 28 9 fills paired with every contour reversed (P1), the star under both rules, random polygons, slivers, pixel and subpixel edges, the left fold, the canvas edges, negative coordinates, A-F5's triangle, the comb that attains D_r = 256·p, a path of 16,383 points, and §3.13's non-zero seam and even-odd fringe
    runs 6 6 glyphs abutting mid-pixel (no seam within a run; a seam across runs), the knot, marks, a run of 4,096 glyphs, one glyph at all 256 subpixel phases; the run set is drawn here and carried inline
    composite 7 7 (with RGBA8S) opacity, isolated groups four deep, clips under both rules, the group pop, J3's discriminating triples, isolation
    motion 4 100 a roll at 2 and at 1.5 design pixels per frame, a lower third that slides, holds and fades as a group, each easing mode
    clock 1 36 1280 × 720, 1920 × 1080 and 3840 × 2160 × 25, 30000/1001 and 60 fps
    slicing 4 180 S1-mini and three pieces cut from it (a run and bars under a fading group)

    sha256.json gains each (vector, size, rate)'s frame digests and clip digest: 66 entries in all.

  • The fuzz now renders the first frame of each accepted payload whose first size costs at most 2^22.

  • The README names the new groups.

Tests, and the falsification of each

Each test was committed first. Then the code it guards was broken, the named test was shown to fail, the code was restored through git, and the test was shown to pass. Each row is one run, debug, on the dev Mac. The whole table was run again after the merge of #216's last commit (82aee67c), with the same results.

test the break red after restore
geom::tests::level_boundary (the level at M = 64·4^n and one more, for n = 0..9; the cubic's 3·M boundary) and closed_form_and_32_bit_identity_at_the_corners (levels 9 and 10) ≤ → < in the level rule quadratic, M = 64·4^0 green
raster::rows_and_cells_at_negative_coordinates (two polygons, every value equal to review A's core.py) truncating division for X(y) and the column crossing assertion left == right green
raster::the_left_fold (equal, on every canvas pixel, to the fill moved 8 pixels right onto a wider canvas; equal to core.py; a contour wholly left draws nothing) the fold dropped pixel (0, 1) green
raster::triangle_pins_v_to_the_snapped_polygon (|v| = 1280 and 512) the exact area: each subpixel split in two, which makes the triangle's crossings exact, so v became 1152 and 384 assertion left == right green
raster::abutting_run_seam_pixel_is_255 (255 at the seam within a run; 128 + div255(128·127) across two runs) each glyph composited on its own the seam at (1, 2) green
raster::j3_triples_and_group_isolation (1) the other fill order, div255(p·div255(α·o)); (2) children composited straight into the parent (1) triple 0: (13, 250, 129); (2) the isolation assertion green, both
raster::whole_fill_reversal_changes_nothing (9 pairs, curves included) v quantised in place of |v| rect green
raster::integer_speed_roll_shifts_whole_pixels (frame k is frame 0 moved 2k rows, and 4k at twice the size) one subpixel added per frame size 0, frame 1, row 21 green
raster::slicing_piece_frames_equal_the_whole (90 frames over three pieces and two rates) frames keyed by a local index, τ = t0 + g·P piece 1, rate 0, frame 10 green
raster::the_comb_attains_the_density_bound (D_r = 256·16,382, rendered with every i32 addition checked); the_density_assertion_fires_past_the_cap (should_panic: a 16,384-point comb, built past the payload's cap, gives D_r = 2^22) the debug assertion removed test did not panic as expected green

Also:

  • raster::render_requests checks the three request errors, g = u64::MAX among them.
  • raster::premultiplied_closure_and_the_straight_view checks R, G, B ≤ A on every rendered pixel, and RGBA8S = R_rat(255·c, A).

Cross-checks

  • Every frame, against an independent renderer. A scratch Python renderer reads the payloads with struct and shares no code with the crate.

    • It is built from review A's core.py: place_L, place_origin, place_point, contour_curves, flatten_contour, accumulate with its clipping and left fold, alpha_nz, alpha_eo and rhu.
    • From the design's prototypes it takes merged_checks.eval_track and div255.
    • The compositing and the frame procedure are written from the extension text.

    All 357 frames match, the 1920 × 1080 and 3840 × 2160 clock frames included, and every RGBA8S digest of composite. With a frame digest and an RGBA8S digest planted wrong, it reports both.

  • flatten: all 23 curves' levels and vertices equal core.level_q, level_c, flat_q and flat_c.

  • The CLI's frame bytes: hashed by shasum -a 256, they equal the committed digest.

  • P1 holds for curves too. Each flattened vertex is the floor of the exact point on the curve, the same from either end, so a reversed contour flattens to the reversed polyline. The curves pair shows it.

Legs and gate

  • Locally, on the dev Mac, every vector is identical on three engines:

    • native macOS arm64, debug and release: every test (the debug suite in 34 s), and vectors verify (319 vectors, 934 generated files);
    • wasm32-wasip2 under wasmtime 49.0.2: every test, and vectors verify;
    • wasm32-unknown-unknown under Node 26.11.1: verify.mjs (319 vectors, 278 authoring forms).

    CI pins wasmtime 38.0.3 and Node 22.

  • A second instruction-set architecture (SPEC §7 asks it of frozen digests): a static x86_64-unknown-linux-musl build of the tool ran vectors verify on an x86_64 Linux host. All 319 vectors and 934 generated files are identical.

  • Fuzz at depth: 616,000 inputs from 308 seeds; no panic. 3,553 inputs were accepted, each written back to its bytes, and 3,212 of them were rendered.

  • Clippy: clean on every target with --features std, except one lint in wai-ops's sha256.rs, which this crate includes by path.

  • The wai-rs gate (gate.sh d7-3): build, lib tests, carriage, the corpus loop (21 of 21), fast kernels, byte-exact, wai-web wasm32 and the neural gates are all GREEN.

  • The tree-wide tests corpus_provenance, every_decoded_output_states_a_sha256 (which reads the grown sha256.json) and signer_ids_are_labels: green.

  • Public text:

    • check-public-names.sh with the private list: clean on each of the 125 changed files, one per invocation, and at CI scope;
    • check-comparative-prose.sh, check-no-vanity-metrics.sh, check-wai-section-refs.py and check-workflow-concurrency.sh: clean.

Merge notes

  • It touches no file #201 or #199 edits.
  • Legs for the merge: wai-vector.yml (native ×3, wasip2, node, fuzz); wai-conformance.yml, because sha256.json changes; no-vanity-metrics.yml. D7-2's filters already cover every path here.

🤖 Generated with Claude Code

Adds the raster to `wai/wai-vector`: the stage family RS1–RS9 and the frame procedure (§3.5–§3.10). The corpus gains seven groups whose expected files state the SHA-256 of every frame's `RGBA8P` at every listed size and rate. This is phase D7-3 of D7. **Stacked on #216 (D7-2), which is stacked on #215 (D7-1).** The branch starts at #216's first head (`2f147d2a`) and merges #216's later commit (`5b0f2abd`), so until both merge this diff also shows their changes. Merge #215, then #216, then this. Nothing is registered. ## What lands - **`src/geom.rs`, RS1:** - the levels (`M ≤ 64·4^n`; `3·M ≤ 64·4^n`) and both closed forms, in `i64`; - the 32-bit quotient–remainder identity, built under `cfg(test)`, `cfg(kani)` and the new feature `i32-forms`; - a contour's polyline from §2.1's grammar. - **`src/cover.rs`, RS2–RS6:** - **Rows:** `X(y)` is the floor of the exact rational. - **Cells:** the crossings are the floor of the exact y on the piece's line, the same from either end. So each piece is walked left to right, its contributions negated when it runs right to left. - **The delta buffer:** it covers the fill's canvas-clipped box, using §3.11's two freedoms: rows outside the canvas are skipped, and the columns left of it fold into one contribution per row piece. - **Then:** the scan, both quantisers, and the run's glyph-wise sum `S`. - **A debug build** asserts `D_r ≤ 256·p ≤ 2^22 − 256` before it accumulates. - **`src/paint.rs`, RS7–RS9:** - a fill: `p′ = div255(p·o)`, `s = div255(p′·α)`, then source-over; - the group pop: `k = div255(m·o_g)`, `s = div255(G·k)`; - `RGBA8S`. - **`src/frame.rs`:** - `R(P, S, z, r, g)`. A run's glyphs are placed and flattened once per glyph ID and moved to each record's origin. Placement offsets do not depend on the origin, and flattening commutes with integer translation. - `render_request`, with `size_unlisted`, `rate_unlisted` and `frame_range`. - **The CLI:** `render` (one frame's `RGBA8P`) and `hash` (every frame's SHA-256 and each clip digest). - **The vectors:** 51 new, 319 in all, and 357 frame digests. | group | vectors | frames | what it pins | |---|---|---|---| | `flatten` | 1 (23 curves) | — | levels 9 and 10 at the corners of the device range; each level boundary; degenerate curves; negative coordinates | | `fills` | 28 | 28 | 9 fills paired with every contour reversed (P1), the star under both rules, random polygons, slivers, pixel and subpixel edges, the left fold, the canvas edges, negative coordinates, A-F5's triangle, the comb that attains `D_r = 256·p`, a path of 16,383 points, and §3.13's non-zero seam and even-odd fringe | | `runs` | 6 | 6 | glyphs abutting mid-pixel (no seam within a run; a seam across runs), the knot, marks, a run of 4,096 glyphs, one glyph at all 256 subpixel phases; the run set is drawn here and carried inline | | `composite` | 7 | 7 (with `RGBA8S`) | opacity, isolated groups four deep, clips under both rules, the group pop, J3's discriminating triples, isolation | | `motion` | 4 | 100 | a roll at 2 and at 1.5 design pixels per frame, a lower third that slides, holds and fades as a group, each easing mode | | `clock` | 1 | 36 | 1280 × 720, 1920 × 1080 and 3840 × 2160 × 25, 30000/1001 and 60 fps | | `slicing` | 4 | 180 | S1-mini and three pieces cut from it (a run and bars under a fading group) | `sha256.json` gains each (vector, size, rate)'s frame digests and clip digest: 66 entries in all. - **The fuzz** now renders the first frame of each accepted payload whose first size costs at most 2^22. - **The README** names the new groups. ## Tests, and the falsification of each Each test was committed first. Then the code it guards was broken, the named test was shown to fail, the code was restored through git, and the test was shown to pass. Each row is one run, debug, on the dev Mac. The whole table was run again after the merge of #216's last commit (`82aee67c`), with the same results. | test | the break | red | after restore | |---|---|---|---| | `geom::tests::level_boundary` (the level at `M = 64·4^n` and one more, for n = 0..9; the cubic's `3·M` boundary) and `closed_form_and_32_bit_identity_at_the_corners` (levels 9 and 10) | `≤` → `<` in the level rule | `quadratic, M = 64·4^0` | green | | `raster::rows_and_cells_at_negative_coordinates` (two polygons, every value equal to review A's `core.py`) | truncating division for `X(y)` and the column crossing | `assertion left == right` | green | | `raster::the_left_fold` (equal, on every canvas pixel, to the fill moved 8 pixels right onto a wider canvas; equal to `core.py`; a contour wholly left draws nothing) | the fold dropped | `pixel (0, 1)` | green | | `raster::triangle_pins_v_to_the_snapped_polygon` (`\|v\|` = 1280 and 512) | the exact area: each subpixel split in two, which makes the triangle's crossings exact, so `v` became 1152 and 384 | `assertion left == right` | green | | `raster::abutting_run_seam_pixel_is_255` (255 at the seam within a run; `128 + div255(128·127)` across two runs) | each glyph composited on its own | `the seam at (1, 2)` | green | | `raster::j3_triples_and_group_isolation` | (1) the other fill order, `div255(p·div255(α·o))`; (2) children composited straight into the parent | (1) `triple 0: (13, 250, 129)`; (2) the isolation assertion | green, both | | `raster::whole_fill_reversal_changes_nothing` (9 pairs, curves included) | `v` quantised in place of `\|v\|` | `rect` | green | | `raster::integer_speed_roll_shifts_whole_pixels` (frame k is frame 0 moved 2k rows, and 4k at twice the size) | one subpixel added per frame | `size 0, frame 1, row 21` | green | | `raster::slicing_piece_frames_equal_the_whole` (90 frames over three pieces and two rates) | frames keyed by a local index, `τ = t0 + g·P` | `piece 1, rate 0, frame 10` | green | | `raster::the_comb_attains_the_density_bound` (`D_r = 256·16,382`, rendered with every `i32` addition checked); `the_density_assertion_fires_past_the_cap` (`should_panic`: a 16,384-point comb, built past the payload's cap, gives `D_r = 2^22`) | the debug assertion removed | `test did not panic as expected` | green | Also: - `raster::render_requests` checks the three request errors, `g = u64::MAX` among them. - `raster::premultiplied_closure_and_the_straight_view` checks `R, G, B ≤ A` on every rendered pixel, and `RGBA8S = R_rat(255·c, A)`. ## Cross-checks - **Every frame, against an independent renderer.** A scratch Python renderer reads the payloads with `struct` and shares no code with the crate. - It is built from review A's `core.py`: `place_L`, `place_origin`, `place_point`, `contour_curves`, `flatten_contour`, `accumulate` with its clipping and left fold, `alpha_nz`, `alpha_eo` and `rhu`. - From the design's prototypes it takes `merged_checks.eval_track` and `div255`. - The compositing and the frame procedure are written from the extension text. **All 357 frames match, the 1920 × 1080 and 3840 × 2160 clock frames included, and every `RGBA8S` digest of `composite`.** With a frame digest and an `RGBA8S` digest planted wrong, it reports both. - **`flatten`:** all 23 curves' levels and vertices equal `core.level_q`, `level_c`, `flat_q` and `flat_c`. - **The CLI's frame bytes:** hashed by `shasum -a 256`, they equal the committed digest. - **P1 holds for curves too.** Each flattened vertex is the floor of the exact point on the curve, the same from either end, so a reversed contour flattens to the reversed polyline. The `curves` pair shows it. ## Legs and gate - **Locally, on the dev Mac, every vector is identical on three engines:** - native macOS arm64, debug and release: every test (the debug suite in 34 s), and `vectors verify` (319 vectors, 934 generated files); - `wasm32-wasip2` under wasmtime 49.0.2: every test, and `vectors verify`; - `wasm32-unknown-unknown` under Node 26.11.1: `verify.mjs` (319 vectors, 278 authoring forms). CI pins wasmtime 38.0.3 and Node 22. - **A second instruction-set architecture** (SPEC §7 asks it of frozen digests): a static `x86_64-unknown-linux-musl` build of the tool ran `vectors verify` on an x86_64 Linux host. All 319 vectors and 934 generated files are identical. - **Fuzz at depth:** 616,000 inputs from 308 seeds; no panic. 3,553 inputs were accepted, each written back to its bytes, and 3,212 of them were rendered. - **Clippy:** clean on every target with `--features std`, except one lint in `wai-ops`'s `sha256.rs`, which this crate includes by path. - **The wai-rs gate** (`gate.sh d7-3`): build, lib tests, carriage, the corpus loop (21 of 21), fast kernels, byte-exact, wai-web wasm32 and the neural gates are all **GREEN**. - **The tree-wide tests** `corpus_provenance`, `every_decoded_output_states_a_sha256` (which reads the grown `sha256.json`) and `signer_ids_are_labels`: green. - **Public text:** - `check-public-names.sh` with the private list: clean on each of the 125 changed files, one per invocation, and at CI scope; - `check-comparative-prose.sh`, `check-no-vanity-metrics.sh`, `check-wai-section-refs.py` and `check-workflow-concurrency.sh`: clean. ## Merge notes - **It touches no file #201 or #199 edits.** - **Legs for the merge:** `wai-vector.yml` (`native` ×3, `wasip2`, `node`, `fuzz`); `wai-conformance.yml`, because `sha256.json` changes; `no-vanity-metrics.yml`. D7-2's filters already cover every path here. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The model and conformance (overlay-equivalence and text-equivalence over
the overlay layer only), the WOS1 and WVG1 formats with their canonical
rules, caps and refusal order, the digest sidecar and text digests, and
the arithmetic: clock, tracks, placement, the load-time interval check
and per-frame cost, flattening, row and cell split, accumulation,
coverage and compositing, as the stage family RS1–RS9. Sections 4–6 and
the annexes are headings that later revisions of this Draft fill.

Nothing is registered.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
- WOS1 load check 2 names its counts, and check 7 states what a
  glyph's contour ends must satisfy;
- groups: each end closes the innermost open begin, none is left open;
- the probe set gives each candidate frame as a formula;
- the interval check names O's interval per axis.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai: README and CHANGELOG name the graphics-vector Draft
All checks were successful
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 2m3s
standards workspaces build + test / aac-rs (pull_request) Successful in 1m31s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 48s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 34s
standards workspaces build + test / map-rs (pull_request) Successful in 26s
standards workspaces build + test / mesh-rs (pull_request) Successful in 27s
standards workspaces build + test / openpay (pull_request) Successful in 1m21s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 1m45s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m59s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 6m21s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 3m17s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 6s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 6s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 4s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m12s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m5s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m38s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m15s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m15s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m23s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m22s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 2m31s
WAI section references / cited sections exist (pull_request) Successful in 12s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 4m18s
f66c09ede1
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-vector: WOS1 and WVG1 with the refusal order of §2.7, the clock, tracks, the interval check and the cost (D7-2)
Some checks failed
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI section references / cited sections exist (pull_request) Has been cancelled
wai-vector vector graphics / linux-aarch64 (pull_request) Has been cancelled
wai-vector vector graphics / linux-x86_64 (pull_request) Has been cancelled
wai-vector vector graphics / macos-arm64 (pull_request) Has been cancelled
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-vector vector graphics / wasm32 under Node (pull_request) Has been cancelled
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Has been cancelled
workflow hygiene / every workflow supersedes its own queue (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
2f147d2a30
The reference crate of wai.graphics.vector (no_std + alloc, no
dependencies; SHA-256 is wai-ops's, by #[path]):
- WOS1 parsed with §2.1's load checks in order, and written;
- WVG1 split (steps 1-3, nothing allocated before the exact length),
  the record pass (step 4), the cross-record checks (step 5(a)-(h)),
  the sets by digest with at most length + 1 bytes read (step 6), the
  glyphs (7), the interval check (8) and the per-frame cost (9);
- the clock with the frame range by division, track evaluation, and
  placement;
- the JSON authoring form, one member per field, packing back to the
  same bytes;
- the CLI: check, cost, pack, unpack, vectors gen and verify;
- a wasm32 module and verify.mjs for Node.

The corpus wai/vector-conformance/ (arith, canonical, refusals,
geometry, cost) with its README's provenance line and a sha256.json
sidecar naming the div255 table; wai-vector.yml with native, wasip2,
node and fuzz jobs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
- geom.rs, RS1: the levels and the closed forms in i64, and the 32-bit
  quotient-remainder identity behind cfg(test, kani) and the i32-forms
  feature;
- cover.rs, RS2-RS6: the row split, the cell split walked left to right
  with the columns left of the canvas folded into one contribution per
  row piece, the delta buffer over the fill's canvas-clipped box, the
  scan, the quantisers and the run's glyph-wise sum; a debug build
  asserts D_r <= 256 p <= 2^22 - 256 before accumulating;
- paint.rs, RS7-RS9: p' = div255(p o), then div255(p' alpha) and
  source-over; the group pop div255(m o_g) then div255(G k); RGBA8S;
- frame.rs: R(P, S, z, r, g), with a run's outlines placed and
  flattened once per glyph ID; render_request's size_unlisted,
  rate_unlisted and frame_range.

Vectors: flatten (levels and vertices), fills, runs (a set drawn here
from formulas), composite (with RGBA8S), motion, clock and slicing,
each frame's SHA-256 and each (size, rate)'s clip digest in its
expected file and in sha256.json.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-vector: render and hash in the CLI
Some checks failed
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI section references / cited sections exist (pull_request) Has been cancelled
wai-vector vector graphics / linux-aarch64 (pull_request) Has been cancelled
wai-vector vector graphics / linux-x86_64 (pull_request) Has been cancelled
wai-vector vector graphics / macos-arm64 (pull_request) Has been cancelled
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-vector vector graphics / wasm32 under Node (pull_request) Has been cancelled
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Has been cancelled
workflow hygiene / every workflow supersedes its own queue (pull_request) Has been cancelled
standards workspaces build + test / jouleclaw-rs (pull_request) Has been cancelled
cab9ce295a
Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-vector: clippy-clean, the empty frame range built without a reversed literal; no generated byte changes
All checks were successful
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 12m12s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 34s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m9s
wai-vector vector graphics / macos-arm64 (pull_request) Successful in 31s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 6s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 5s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 5s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m15s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m6s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m35s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m15s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m16s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m22s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m19s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m26s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 4m14s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m24s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 8m43s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 10s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 31s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 54s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 2m3s
WAI section references / cited sections exist (pull_request) Successful in 10s
wai-vector vector graphics / linux-x86_64 (pull_request) Successful in 24s
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Successful in 21s
wai-vector vector graphics / wasm32 under Node (pull_request) Successful in 19s
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Successful in 14s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 4s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 16m51s
5b0f2abde0
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Merge wai/d7-2-vector-formats into wai/d7-3-vector-raster; clippy-clean raster
Some checks failed
standards workspaces build + test / map-rs (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / proof-rs (pull_request) Has been cancelled
standards workspaces build + test / sandbox-rs (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / smart-byte-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Has been cancelled
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Has been cancelled
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
WAI section references / cited sections exist (pull_request) Has been cancelled
wai-vector vector graphics / linux-aarch64 (pull_request) Has been cancelled
wai-vector vector graphics / linux-x86_64 (pull_request) Has been cancelled
wai-vector vector graphics / macos-arm64 (pull_request) Has been cancelled
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-vector vector graphics / wasm32 under Node (pull_request) Has been cancelled
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Has been cancelled
workflow hygiene / every workflow supersedes its own queue (pull_request) Has been cancelled
82aee67cde
The D7-2 cleanup (no generated byte changes), with the fuzz seed
conflict resolved to D7-2's literal; the raster's chunked loops on
as_chunks, collapsed conditionals, and no placeholder bindings.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-vector: the vectors module's doc names flatten's inputs and the frame digests
Some checks failed
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 4s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 3s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m14s
standards workspaces build + test / eoc-rs (pull_request) Successful in 2m1s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m34s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m10s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m13s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m17s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m11s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m25s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 4m18s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m10s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 14s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 43m44s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 8m30s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 24s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 47s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m58s
WAI section references / cited sections exist (pull_request) Successful in 10s
wai-vector vector graphics / linux-x86_64 (pull_request) Successful in 51s
wai-vector vector graphics / wasm32-wasip2 (wasmtime) (pull_request) Successful in 29s
wai-vector vector graphics / wasm32 under Node (pull_request) Successful in 21s
wai-vector vector graphics / fuzz, peak allocation, comparison count (pull_request) Successful in 14s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 4s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 16m9s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 34m19s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 34s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 4m9s
wai-vector vector graphics / macos-arm64 (pull_request) Successful in 1m31s
913dc11992
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!217
No description provided.