Context. surface studio · domain aja · route /studio/aja/multi-view-reconstruction · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/aja/multi-view-reconstruction/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin lane console for scoring reconstructed poses. Its operations lane wires
@aja/motion-validation calculateNMPJPE via
/v1/admin/aja/multi-view-reconstruction: score a reconstructed pose against
ground truth with Normalized MPJPE — the metric removes the single global scale
ambiguity inherent to multi-view reconstruction before measuring per-joint
euclidean error, so a correctly-shaped reconstruction at the wrong scale scores
zero. Returns mean/std/median/min/max and per-joint error.
Entry points#
- Direct URL / bookmark —
/studio/aja/multi-view-reconstruction; metadata setsalternates.canonical - Breadcrumb — Studio → Aja Depth Sensing → Multi-View Reconstruction
- Linked from
/studioDomain-bridge studios section (Aja sub-area) - Quick actions — Depth Sensing, Depth Analysis, Human Mesh Recovery
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Breadcrumb panel (
data-aja-multi-view-reconstruction-breadcrumbs) — nav Studio / Aja Depth Sensing / Multi-View Reconstruction (current) - Workspace
StudioAjaMultiViewReconstructionWorkspace—<h1>"Aja Multi-View Reconstruction Workspace" + summary (data-aja-multi-view-reconstruction-summary), a Capability Summary panel (data-aja-multi-view-reconstruction-capability-summary, 4 cards), then the Multi-View Reconstruction Operations Lane (data-aja-multi-view-reconstruction-operations-lane) - Route Map panel (
data-aja-multi-view-reconstruction-route-map,<h2>) — 6 entries fromSTUDIO_AJA_MULTI_VIEW_RECONSTRUCTION_ROUTE_MAP - Quick-action lane —
quickActionlinks: depth-sensing, depth-analysis, human-mesh-recovery,/studio
States#
- Loading —
data-aja-mvr-loading"Loading reconstruction-accuracy metric…" whileGET /v1/admin/aja/multi-view-reconstructionis in flight - Unauthorized (gated) —
data-aja-mvr-unauthorizedon 401/403; admin scope message ("Aja workspace scope required to score reconstruction accuracy.") - Error —
data-aja-mvr-erroron non-OK / malformed / network failure - Ready (form) —
data-aja-mvr-formonce the catalog loads (with the metric summarydata-aja-mvr-metric-summary) - Result —
data-aja-mvr-result(-meanscale-normalized error + frames,-stats,-per-joint) after a successful POST; validation error indata-aja-mvr-assess-error - Offline — SSR shell; lane error state when
fetchunavailable - Standalone PWA — desktop layout;
quickActionanchors wrap - Empty — N/A; capability cards + route map are constant
Interactions#
Multi-View Reconstruction Operations Lane#
- Reconstructed pose (
<textarea data-aja-mvr-prediction>, label "prediction motion json") — JSON{ joints, frames } - Ground-truth pose (
<textarea data-aja-mvr-ground-truth>, label "ground truth motion json") — JSON{ joints, frames } - "Compute N-MPJPE" (
<button data-aja-mvr-submit>) — POSTs{ prediction, groundTruth }to/v1/admin/aja/multi-view-reconstruction/assess
Capability Summary panel#
- 4 cards (
data-aja-multi-view-reconstruction-capability=<id>):reconstruction-control-plane,diagnostics-and-trace-observability,security-permission-audit-controls,api-parity-and-contract-assurance— non-interactive
Route Map panel#
- 6 entries (
<article>perpath+purpose) — non-interactive
Quick-action lane#
- "Open Aja Depth Sensing workspace" →
/studio/aja/depth-sensing - "Open Aja Depth Analysis workspace" →
/studio/aja/depth-analysis - "Open Aja Human Mesh Recovery workspace" →
/studio/aja/human-mesh-recovery - "Back to Studio workspace index" →
/studio
Data & contracts#
- Reads:
GET /v1/admin/aja/multi-view-reconstruction(catalog:metric,summary,statistics,options) on mount,cache: 'no-store',buildBffAuthHeaders() - Writes:
POST /v1/admin/aja/multi-view-reconstruction/assess - Realtime: none
- Caching: client fetch on mount (no-store); SSR shell
- Auth/role check: BFF endpoints admin-scoped, fail-closed (401/403 → unauthorized render); route gated signed-in + studio via the proxy
Cross-references#
- Parent:
../../studio-overview.md - Sibling routes:
./studio-aja-depth-sensing.md,./studio-aja-depth-analysis.md,./studio-aja-human-mesh-recovery.md - Component sources:
apps/oshun/web/src/components/studio/StudioAjaMultiViewReconstructionWorkspace.tsxapps/oshun/web/src/components/studio/StudioAjaMultiViewReconstructionRouteMap.ts
Open questions / known gaps#
- The 4 Capability Summary cards are descriptive copy only — the single live affordance is the N-MPJPE scoring lane