Skip to content

Publish Viewport Intent Literal v0: an actor-relative, enum-quantised camera-intent schema with a 32-dim packing conformance vector #28

Description

@yakimoto

Pillar: agent plane. Schema lands here; SDK types are generated from it.

WHY — The wire format for agent camera intent is the single most consequential design decision in the agent plane, and it is a land-grab: whoever publishes the neutral literal owns the interop point between any agent and any spatial engine. Published research finds that world-space 6-DoF trajectories transfer as "geometrically plausible but narratively meaningless" across scenes (Auteur, arXiv:2606.01900). An agent that sends {shot_scale: MS, orientation: FrontL, look_at: Chest, target: player:23} is portable across venues, sports, engines and vendors; an agent that sends a camera matrix is not — and it steps directly on the renderer's job, which is the fastest way to lose an integration. Enum-quantised axes are additionally the correct shape for constrained decoding: small enum-heavy schemas hold under grammar enforcement where large nested ones degrade.

GROUNDED — Auteur's six axes with published vocabularies and ranges: Camera Level (Ground/Low/Eye/High/Overhead, 0.1–4.0 m), Look-at Level (Feet/Knees/Waist/Chest/Eyes), Shot Scale (ECU…EWS, 0.10–1.00 of frame height), Framing Offset (FarLeft…FarRight, −0.35…+0.35), Orientation Angle (Front/FrontL/SideL/Back…, 0…±180°), Dutch Angle (None/Slight/Strong, −25°…+25°). Small open-weight vision-language-action policies commonly ship a 32-wide action and state vector (max_action_dim: 32, max_state_dim: 32 in a published reference config) — SE(3)=6 plus zoom/focus/iris plus an ROI rect fits with room to spare, so the literal is architecturally compatible with a 32-dimension action space without dictating one. WAVE side: nothing exists — zero viewport hits in source (grep, 2026-07-24), so this is honestly G0.
UNVERIFIED and to be re-checked before any of it is quoted externally: the sibling citations behind this design — arXiv 2606.01900 (Auteur), 2601.14945 (TIDAL, "400 ms blind window drops reactive success 0.31 to 0.09") and 2412.07889 ("many-track throughput peaks at N=5") — were not re-verified in the adversarial pass. Pin the figure or table reference, not just the arXiv ID.

BOUNDARY — The literal describes what shot is wanted, never how to fly the lens. No 6-DoF world-space poses, no keyframes, no interpolation curves, no camera matrices — those are trajectory, and trajectory belongs to whoever renders. No free-text prose field: it defeats constrained decoding and smuggles in ambiguity. Not a rendering format and not a splat format. Do not call it a standard until it is submitted somewhere — until then it is "WAVE's published neutral literal."

TAXONOMY — Production agents (emit), orchestration agents (compose), integration developers (bind SDKs), the technical director (reads the human-legible rendering), and any downstream policy model as the consumer on the far side.

GATEG0G2 SCOPED on landing → G5 only when a downstream engine accepts it as the intent format.

DONE-WHEN — A dated receipt showing (a) at least 24 golden intent literals validate against the published JSON Schema and at least 8 adversarial ones fail closed with a typed error (world-space matrix, prose field, out-of-range dutch angle, unknown enum, missing target, oversized constraint set, negative TTL, unbounded hold); (b) a round-trip test packing every golden literal into a 32-dimension float vector and recovering it byte-identically; (c) the schema served at a stable public URL and resolvable by $ref.

DEPENDENCIES — None. Consumed by the viewport tool surface and the framing arbiter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions