open-standards/wai/research/content-taxonomy.md
Transaction Science 447e637ed9 wai: say what fewer bytes do not save, and the changelog
energy-steering §5.5: the steering figure is the hops' own energy averaged over
their delivery, not the network's, which is largely flat against traffic.
live-rooms' joules_ceiling is held against an attribution by bytes. The
research taxonomy's compression lever claims cost and a mobile radio's draw,
not network energy. CHANGELOG: the slice's entry.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
(cherry picked from commit 9b6e4badab)
2026-10-26 08:31:00 -04:00

8 KiB
Raw Permalink Blame History

WAI Content Taxonomy — the bearings doc

Living reference for what web-transported content benefits from WAI, how, and which extension covers it. Not normative; it's the map we plan cargo classes against. Edit as classes ship.

1. The reframe: a spectrum, not a list of media types

Everything transported over the web sits on one axis:

captured reality  ──►  synthesizable  ──►  executable  ──►  symbolic
   (samples)          (rendered from        (it IS a        (already
                       a description)        program)        instructions)

WAI's leverage is proportional to how much of the content the sink can reconstruct instead of receiving pre-rendered. The discipline it enforces: do not claim "everything becomes instructions" — a real photograph is irreducibly samples. Different position on the axis → a different lever, and a different gain.

2. The four levers

# Lever What it does Where it applies
1 Codec dispatch name a registered codec; the sink decodes it or falls back all media
2 Neural shared-prior ship conditioning, regenerate against a requirement-of-existence model perceptual media a model can reconstruct
3 Instructions-at-the-sink ship the recipe / state / intent; the sink renders anything whose payload is secretly a rendered result
4 Determinism + receipts replay/decode/mixdown-equivalence, content-addressing, JWP signatures, joules cross-cutting — applies even to content that can't be reconstructed

Levers 1–2 are the compression story: fewer bytes, which lowers the cost of egress, encode and relays, and the draw of a mobile radio while it receives; it does not lower a wired network's energy, which is largely flat against traffic. Lever 3 is the medium-shift story: the unit of value moves from bytes delivered to what the sink renders, and the sink's decode and render energy, measured there, is what changes. Lever 4 is the trust-and-energy story, and it rides on top of all of them.

3. The taxonomy (with mechanism + coverage)

Status: ✅ shipped · 🟡 partial/composable from shipped pieces · ⬜ white space.

A. Captured reality — irreducible samples (levers 1, 2, 4)

Content Primary lever Capability / extension Status
Photographs / images codec dispatch + neural wai.image.* (PNG/JXL/AVIF/JPEG, neural family) ✅
Recorded audio codec dispatch + neural wai.audio.{flac,opus}, wai.neural.{dac,encodec32,…} ✅
Recorded / cinematographic video codec dispatch + neural wai.video.av1*, wai.neural.{dcvc_rt,dcvc_fm} ✅
Live capture: conferencing, telephony, radio, broadcast codec dispatch + receipts core audio/video caps + JWP per object 🟡 (transport out of scope; caps + receipts exist)
Sensor / telemetry / IoT content-addressing + receipts wai.text.zstd + JWP (or a wai.feed.* class) 🟡
Scientific captures: microscopy, medical imaging, LiDAR/point clouds, genomic codec dispatch + content-addressing core caps; point clouds → splat/volumetric path 🟡
Biosignals (EEG/ECG) content-addressing + receipts wai.text.zstd + JWP 🟡

B. Synthesizable media — shipped today as the render (lever 3)

Content Primary lever Capability / extension Status
Animation / CGI film instructions-at-sink wai.film.linear (a sealed world + camera track + frame schedule, film-equivalence) ✅
Motion graphics / titles / ads instructions-at-sink interactive-worlds / joule-ui 🟡
Music as score / synthesis instructions-at-sink wai.audio.score (note events, deterministic synth, mixdown-equivalence) ✅
Procedural / game audio, soundscapes instructions-at-sink spatial-audio (wai.audio.scene) 🟡 Phase 1
Text-to-speech neural prior ship text + a voice prior (wai.neural.* speech) 🟡
Data visualizations / charts instructions-at-sink ship data + spec (joule-ui) 🟡
Diagrams, vector art, fonts instructions-at-sink formats the web already carries as instructions; envelope only ✅ (precedent)
Maps / geospatial instructions-at-sink map standard ✅ (sibling)

C. Interactive / executable — it IS a program (levers 3, 4)

Content Primary lever Capability / extension Status
Videogames / interactive worlds instructions + determinism + receipts interactive-worlds (wai.world.*) ✅
3D scenes / models content-addressed assets wai.mesh.glb ✅
Gaussian splats content-addressed assets wai.splat.spz ✅
AR / VR / XR immersive scenes instructions-at-sink interactive-worlds + a sink pose/camera mode 🟡 (substrate exists; XR sink mode unbuilt)
Volumetric / light-field / holographic / 6DoF video instructions-at-sink wai.splat.4d (temporal Gaussian tracks, frame-state-equivalence) ✅
Avatars / digital humans instructions-at-sink wai.avatar.pose (skeletal sim + animation ops, skins a wai.mesh.glb) ✅
UIs / applications instructions-at-sink + receipts joule-ui standard ✅ (sibling)
Documents-as-programs (interactive/reactive) instructions-at-sink joule-ui / interactive-worlds 🟡
Simulations / digital twins instructions + determinism interactive-worlds sim registrants; CAD/mathground lineage 🟡

D. Structured / symbolic — already instructions (levers 1, 4)

Content Primary lever Capability / extension Status
Text / markup / documents codec + content-addressing wai.text.{zstd,xz}; reading surface = Access/Lumina ✅
Code / software / packages content-addressing + receipts wai.text.zstd + JWP 🟡
Datasets / tabular / scientific data / knowledge graphs content-addressing + receipts wai.text.* + JWP; JouleDB lineage 🟡
Notifications / messages / event-&-state feeds instructions + receipts wai.feed.state (broadcast profile, replay-equivalence) ✅

The cargo-roadmap phases

Five classes were built as phases of cargo-roadmap.md; each has shipped.

Content What it shares with the thesis Phase and status
Object-based / spatial audio the audio form of the video thesis: ship sound objects + a scene, render to the listener's speaker config; mixdown-equivalence is the audio counterpart of replay-equivalence Phase 1, shipped (wai.audio.scene)
Haptics instruction streams to actuators; tiny payloads, pure recipe, deterministic Phase 2, shipped (wai.haptic.signal)
Live state-feeds sports/events as state, not pixels — the multiplayer-games precedent applied to broadcast Phase 3, shipped (wai.feed.state, the broadcast profile of wai.world.live)
Digital humans / avatars a high-bandwidth capture that reduces to a rig plus a pose stream Phase 4, shipped (wai.avatar.pose)
Volumetric / light fields the splat path extended in time; frame-state-equivalence Phase 5, shipped (wai.splat.4d)
Full-sensory / olfactory the far end of the axis on the axis; not scheduled

4. The one sentence to navigate by

WAI carries whatever it can reconstruct, and verifies whatever it carries. Reconstruction (instructions-at-sink, neural priors) is the compression story; verification (determinism, content-addressing, receipts, joules) is the trust-and-energy story — and the second applies even to the content that can't be reconstructed.

5. Reading the map

  • Lever 3 applies most directly to animation film (a sealed camera-on-rails world) and to live state-feeds.
  • Object-based spatial audio carries the same equivalence rule to audio: mixdown-equivalence is the audio counterpart of replay-equivalence.
  • Lever 4 needs no reconstruction at all: content-addressing, JWP receipts and measured joules apply to every class, including raw captured reality.

See cargo-roadmap.md for the phased build plan.