open-standards/wai/research/content-taxonomy.md
Transaction Science 7636314a0e wai: linear film — wai.film.linear, a sealed camera-on-rails world
The taxonomy's #1 commercial wedge (animation / CGI film) was the last 🟡
with the substrate already built. A film is a sealed wai.world.replay +
a keyframed camera track + a frame schedule: ship the world that generates
the imagery, not the pixels. The sink renders the frames at its own
resolution/rate/quality — lever 3 (instructions-at-the-sink) for the
synthesizable slice of "video". Whole films travel in ~1 KB.

- film feature (reuses the world engine + Fx floor + blake3): the WFLM
  container (contract + embedded WWLD + camera track) and the deterministic
  reconstruct contract. Conformance = film-equivalence: per-frame
  BLAKE3(world_state_hash(frame_tick) || interpolated camera pose) is
  bit-identical on every machine. It composes the embedded world's
  replay-equivalence (inherited unchanged) with the camera track in the
  wai.det.fixed64 floor; the render (pixels) stays the sink's, exactly as
  the worlds renderer / audio-scene HRTF.
- World engine gains one general primitive: collect_checkpoints_sampled /
  run_sampled_dispatch — read the state hash at an arbitrary frame cadence,
  independent of the contract's checkpoint cadence (a renderer samples the
  timeline at its own frame rate). Additive; world corpus still green.
- FilmReceipt (per-frame Merkle leaves, the splat4d shape) + a wai_meter
  .wflm branch that brackets a real frame-reconstruction burst and emits
  MEASURED joules.
- Registered (wai.film.linear, tiered Lossless — film-equivalence is exact);
  corpus film-conformance/ + wai_film_vectors gen|verify (dolly, two-shot,
  crane-up), wired into the four-platform conformance matrix.
- Promoted to extensions/linear-film.md + SPEC §5 temporal row; taxonomy
  animation-film → ✅; README + CHANGELOG. Honest scope: the size win is for
  films GENERATED from a world (animation/CGI/motion-graphics); live-action
  capture is irreducible samples and stays wai.video.*.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-16 09:06:28 -04:00

119 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.** That's the whole map.
The discipline it enforces: do *not* claim "everything becomes
instructions" — a real photograph is irreducibly samples. Different
position on the axis → different lever → different size of win.
## 2. The four levers
| # | Lever | What it does | Where it applies |
|---|---|---|---|
| 1 | **Codec dispatch** | name the SOTA royalty-free codec; sink has 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. Lever 3 is the **medium-shift**
story (the Disney "price per byte → joules per experience" thesis).
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 | the precedents that already won the web; 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 under-the-radar classes (flagged white space)
| Content | Why it matters | Plan |
|---|---|---|
| **Object-based / spatial audio** | the *exact audio analog* of the video thesis: ship sound objects + a scene, render to the listener's speaker config — the cleanest technical fit | **Phase 1** (`wai.audio.scene`) |
| **Haptics** | instruction streams to actuators; tiny payloads, pure recipe, deterministic | **Phase 2** (`wai.haptic.signal`) |
| **Live state-feeds** | sports/events as *state*, not pixels — the multiplayer-games precedent applied to broadcast; a top commercial wedge | **Phase 3** (broadcast profile of `wai.world.live` + `wai.feed.state`) |
| **Digital humans / avatars** | the highest-bandwidth capture today, the most reducible to rig + stream — "personal at broadcast scale" | **Phase 4** |
| **Volumetric / light fields** | where "video" goes next; no clean envelope exists for it yet | **Phase 5** |
| **Full-sensory / olfactory** | the holodeck endgame | 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
- The **biggest commercial wedges**: animation-film (a sealed
camera-on-rails world) and live state-feeds.
- The **cleanest technical analog** to what's already proven:
object-based spatial audio (mixdown-equivalence is the audio
counterpart of replay-equivalence).
- The **cross-cutting win** that needs no reconstruction at all:
content-addressing + JWP receipts + measured joules on *every* class,
including raw captured reality.
See `cargo-roadmap.md` for the phased build plan.