Skip to main content
This page is the demo

Bytes, quality and the first presentation, per stage.
The native tool's figures, computed in this tab.

In the standard· the staged-measurement method In the standard· the titles: the method's corpus In the standard· the WebAssembly binding this page runs

A staged title is a base and refinement layers, each its own object. The staged-measurement method says how to state what such a title costs and gives: the bytes of every object, counted the same way everywhere; the quality of every prefix as exact integers; the bytes a sink needs before it can present anything; what refinement costs beside coding in one layer; and what a session presented, sealed in a signed claim.

This page runs the reference implementation's measurement code, compiled to WebAssembly, on the titles of the method's corpus. It fetches each object as binary bytes, presents every stage through WAI's own sink, and requires each figure it computes to equal, byte for byte, the corpus's golden figures, which the native tool wrote.

loading the WebAssembly binding…

1 · The title's objects, counted

Under the method, an object is counted only when WAI checks the format of every payload it carries, and its counted bytes are then the envelope's own: header, manifest and payload, computed here by the binding's countObject under the registered framing. A payload stored as a JSON or base64 text of its bytes is never counted, neither as stored nor as an estimate (§3.2). A file whose SHA-256 is not the published one is refused before it is used.

ObjectRoleUnitsHeader · manifest · payloadCounted bytesContent hashPublished

2 · Each prefix, decoded in this tab

The base is decoded, and each layer applied, by wai::staged::StageSink compiled to WebAssembly. Every output is checked against the digest the corpus's fixture tool wrote from its own encoder (expect.json). The quality figures are the evaluation's integers: the sum of squared differences (SSE) and, for pictures, the structural similarity of the luma in Q32 (232 is 1).

LayersBytes of this stageBytes of the prefixUnits at this stageAgainst the sourceAgainst the final prefixOutputs checked

PSNR = 10·log10(255²·N / SSE) and SNR = 10·log10(Σ reference² / SSE) are derived from the SSE for display; the figures are the integers. A stage below a layer that changes the shape has no figure against the final shape.

What the sink reported

    3 · Bytes and time to the first presentation

    First presentable bytes—the one object a sink needs before it presents unit 0
    Parameter set, stated separately—under the method a parameter set is not an object and never counted bytes (§3.4)
    Live fetch—this browser, this run, unthrottled; not a measurement record

    Live fetch is the time from this page's first request for the title to the frame callback after the base was presented on the page.

    The delivery simulator

    A virtual clock: the method's simulator (Appendix B) over a delivery plan. Change the link, the sender's schedule and carriage, the refinement timeout, or the sink's decode workers and order. Each unit's stall is when its base is presented under the plan, less when it is presented with no refinement at all. Simulated, not measured.

    —

    delivered dropped abandoned (a reset took bytes already sent) a base presented a refinement presented. Each bar runs from the object's first byte sent to its last byte arriving.

    4 · What layering costs

    Each point is one way to deliver this title: the staged set (the base and every layer), and single-layer references, each one layer coded straight from the base. Counted bytes include the base. The points are shown side by side; the method states no ratio between them.

    PointCounted bytesAgainst the source

    5 · Deduplication

    Over every object the title references, a reference's base counted once more for each reference. A store keeps one copy of each content.

    Objects referenced—
    Distinct contents—
    Bytes referenced—
    Bytes stored—

    6 · Energy

    Unmetered in the browser. This page reads no energy counter, so the session claim below states no energy figure: its energy is null, never 0. A figure is published only from a dated measurement record, with its class, its verdict and its label, under the method's §8; no such record is published with this version of the page.

    7 · The session, signed in this tab

    While it presented the title, the page recorded the session with the binding's SessionHandle: each decoder, the object it decoded and the unit its object starts at, each presentation with its output's digest, and the bytes of every object of the title it received, a refused one included, so the session accounts for every byte transferred. Bytes that are not a WAI envelope at all are an object received too, neither counted nor presented, and logged; the run goes on. The binding derives each object's figures from its bytes — its counted bytes, its length, and whether a decoder names it — and sealed a reconstruct-session claim with a key made for this run alone and never stored, only after checking it against the presentations, the objects and those envelopes. The claim is shown in its canonical form (JCS). Verify recomputes the output tree's root, the consistency of what the presentations give, the byte sums, that each decoder names what its envelope gives, and that each presentation is at the layers and of a unit its envelope gives. The download is a claim-conformance vector document with the envelopes, so any conforming verifier can check it.

    —
     
    The evaluation, as the native tool prints it

    The text the binding's evaluateTitle gives for this title, which equals the title's block of the corpus's goldens.json and the native wai_stage_measure eval --json, byte for byte.

     

    The same figures everywhere

    Every figure is integer arithmetic: byte counts, sums of squares, a Q32 structural similarity over clipped 8 × 8 windows of integer luma, and SHA-256. So every conforming machine computes the same figures, and a browser's equal the native tool's. The binding's conformance script checks that over the whole corpus: every title's figures, the titles that must be refused, the counted objects, the quality pairs and every simulator case, against the corpus and against the native tool.

    The titles, and the code

    The titles are the corpus staged-measure-conformance: each base a committed test vector, each layer coded toward a stated source; the corpus's README states where each title's content comes from. They are fetched from /models/measure/v1/, copied unchanged from the open-standards repository at commit dba242ff3633, and the WebAssembly binding is built from commit 1cffbc6f. The method is the staged-measurement extension and the claim is jwp-receipts §2.4.12; the code is Apache-2.0 in the open-standards repository. Delivery itself is shown on staged delivery.

    Runs the reference implementation compiled to WebAssembly. In the standard: the staged-measurement extension, its corpus, the session claim and the WebAssembly binding this page loads.