Context. surface studio · domain yemaya · route /studio/yemaya/remote-actor-home-capture · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/yemaya/remote-actor-home-capture/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#
The most substantive Yemaya studio surface in the bridge cluster: director-facing setup wizard for remote actors performing from home, covering camera placement, lighting shape, backdrop choice, acoustics, calibration, segmentation, color matching, network gating, and dozens of specialty audio and image processing panels. Each setup lane resolves into a readiness score that feeds a director-safe capture brief and an export payload. This is a real, deeply-implemented workspace — like every Yemaya route, it has its own dedicated lane-console component (there is no shared placeholder across Yemaya routes).
Entry points#
- Linked from
/studio/yemaya/voice-video-communicationworkspace's in-body next-action link - Linked from
/studio/yemaya/virtual-production-stageworkspace's in-body next-action link - Linked from
/studioindex when published - Direct URL / bookmark — yes (signed-in + studio entitlement)
Layout regions#
ShellLayout active="studio" then:
- Workspace panel (
data-yemaya-remote-actor-home-capture-workspace,data-yemaya-remote-actor-home-capture-hydrated):- Header row with phase chip "Phase 69.1.1.2"
<h1>"Yemaya Remote Actor Home Capture Workspace"- Summary paragraph (
data-yemaya-remote-actor-home-capture-summary): "Guided setup wizard for actors performing from home. It stages camera placement, lighting shape, and backdrop readiness into a director-safe capture brief that can be reviewed before calibration and first rehearsal." - Overview grid (
overviewGridStyle, 3 articles):- Readiness card —
data-yemaya-remote-actor-home-capture-readiness-score(large%),data-yemaya-remote-actor-home-capture-headline, progress bar, "/ setup lanes are locked." status text - Template And Capture Envelope card — setup template
<select>, "Apply template" button, plan envelope target lines (camera distance range, camera height target, backdrop clearance target) - Director Brief card — summary text and risk-calls bulleted list
(
data-yemaya-remote-actor-home-capture-risk-calls); shows "No critical capture risks remain." fallback when empty;noticetext line under list
- Readiness card —
- Wizard + Active Guidance row (
detailGridStyle):- Wizard step rail aside
(
data-yemaya-remote-actor-home-capture-step-rail): one button per plan step (data-yemaya-remote-actor-home-capture-step=<stepId>,…step-status=<status>), each showing index, title, score chip coloured by status, and summary line - Wizard active step (
data-yemaya-remote-actor-home-capture-wizard,…active-step=<stepId>): status uppercase tag,<h2>title, step summary, field-set rendered bystepFieldset()(varies per step: room-and-camera, framing, lighting, backdrop, notes), three buttons: Previous step (data-yemaya-remote-actor-home-capture-previous-step), Next step (…next-step), Refresh director brief (…export-brief) - Active Guidance card
(
data-yemaya-remote-actor-home-capture-active-findings): one article perfinding(data-yemaya-remote-actor-home-capture-finding=<itemId>) showing status tag, title, detail, remediation list
- Wizard step rail aside
(
- Panel grid (
detailGridStyle): in source order — Actor Profile, Hardware Recommendation, Acoustics, Voice Capture, Room Tone Removal, Dialogue Mixing, Voice Quality Enhancement, Automatic Gain Normalization, Isolated Dialogue Recording, Backup Recording System, Lip-Sync Verification, Dialogue 3D Audio Positioning, CGI Room Acoustics Simulation, Dialogue Distance Attenuation Filtering, Dialogue Obstruction/Occlusion Modeling, Dialogue Binaural Ambisonics Rendering, Foley Spatial Placement, Environmental Ambience Generation, Audio Transition Engine, Remote ADR Beep Streamer Workflow, Remote ADR Cueing System, ADR Suggestion System… plus image-pipeline panels: Calibration, Color Checker, Edge Feathering, Segmentation, Chroma Key, Lighting, Network, Pose Estimation, Pose Lifting, Face Tracking, Hand Tracking, Gaze Estimation, Mark Hitting, Actor Lighting, Normal Map, Rim Light Synthesis, HDR Light Probe, Noise Reduction, Lens Simulation, Film Grain, Dynamic Range Expansion, Rolling Shutter, Depth Of Field, Frame Interpolation, White Balance, Codec Transcoding, Re-Identification, Pre-Shoot Self-Test, Recalibration, Synchronization (~72 panel components in total — verify against the import list in the workspace source) - Actor Checklist card (article) —
data-yemaya-remote-actor-home-capture-checklistwith one row perplan.actorChecklistitem, "Locked" / "Needs work" tag per row - Next Actions And Export card (article) — bulleted next actions
(
data-yemaya-remote-actor-home-capture-next-actions), read-only export textarea (data-yemaya-remote-actor-home-capture-export-payload), two in-body nav links: "Open Yemaya Voice/Video Communication workspace", "Open Yemaya Virtual Production Stage workspace"
- Route Map panel (
data-yemaya-remote-actor-home-capture-route-map): the workspace uses the longest route map in the batch — primary pluswizard/ [sessionId],hardware/[profileId],acoustics/[sessionId],calibration/[sessionId],color-checker/[sessionId],lighting/[lightingPresetId],segmentation/[sessionId], and more (seeSTUDIO_YEMAYA_REMOTE_ACTOR_HOME_CAPTURE_ROUTE_MAPsource) - Page-level quick-action panel (separate from the workspace's own in-body nav links): "Open Yemaya Voice/Video Communication workspace", "Back to Studio workspace index"
States#
- Loading — workspace is
'use client'; pre-hydrationdata-yemaya-remote-actor-home-capture-hydrated="false". Verify the pre-hydration shell doesn't shift layout when client takes over. - Studio entitled, no template applied — initial state shows the default form values, readiness score derived from defaults.
- Template applied —
data-yemaya-remote-actor-home-capture-apply-templateclick runsapplyTemplate()(viauseTransition) and resets active step to'room-and-camera'; the notice line reflects which template was applied. - Step navigation — Previous/Next/step-button transitions update
data-yemaya-remote-actor-home-capture-active-step; Previous is disabled at first step, Next is disabled atfinalStepId. - Findings populated — each step exposes findings per
plan.steps[…].findings; status colours followstatusAccent(). - Risk calls empty — director brief shows "No critical capture risks remain." fallback.
- Export refreshed —
data-yemaya-remote-actor-home-capture-export-briefclick setsexportPayloadtoplan.exportPayload, flips active step tofinal-brief, and emits notice "Export payload refreshed from the current setup state." - Per-panel adapter states — each downstream panel has its own states
driven by injected
*BrowserAdapterprops; walk them under each panel's own walkthrough. - Workspace error — guidance findings and panel-specific notices surface problems inline; no global error boundary on this page.
- Offline — most computations are deterministic over the form state; adapters needing the browser (capture device probes, voice analysis, network testing) will fail offline — confirm graceful degradation per panel.
- Standalone PWA — desktop-first layout; verify scroll, button reach, and field labels on mobile.
Interactions#
Header#
- Phase chip "Phase 69.1.1.2" — non-interactive label
Overview grid#
- Readiness card — non-interactive display of
plan.readinessScore(number, headline, progress bar, locked-lane count) - Setup template select
(
data-yemaya-remote-actor-home-capture-template)- Function: selects a
HomeStudioSetupTemplateIdfromHOME_STUDIO_SETUP_TEMPLATES - Keyboard: standard
<select>behaviour; Enter/Space + arrow keys - Screen reader: option labels from
template.label
- Function: selects a
- "Apply template" button
(
data-yemaya-remote-actor-home-capture-apply-template,className="quickAction")- Function: builds setup input from template, applies it via
setFormState, resets active step to'room-and-camera', clearsexportPayload, updatesnotice - Disabled when:
isPending(duringuseTransitionwork) — label becomes "Applying template…"
- Function: builds setup input from template, applies it via
- Envelope text block (
data-yemaya-remote-actor-home-capture-envelope) — non-interactive; shows camera distance range, camera height target, backdrop clearance target fromplan.envelope - Risk calls list (
data-yemaya-remote-actor-home-capture-risk-calls) — non-interactive bullets
Wizard step rail#
- Step buttons (one per plan step,
data-yemaya-remote-actor-home-capture-step=<stepId>)- Function:
goToStep(step.stepId)switches the active wizard step - Keyboard: standard button; Enter activates
- Visual cue: border colour follows
statusAccent(step.status); active step elevated viatransform: 'translateY(-1px)'and dark background
- Function:
Wizard active step#
- Field set — varies per step (see
stepFieldset()):room-and-camera: capture profile, device class, mount type, performer height, room depth, width, ceiling heightframing: lens equivalent (mm), camera distance, camera height, eyeline offsetlighting: lamp count, key/fill/rim light source, key angle, window behind subject, light controlbackdrop: backdrop type, distance, clutter, wardrobe contrastnotes: free-text notes textarea
- "Previous step" button — disabled at first step
- "Next step" button — disabled at
finalStepId - "Refresh director brief" button — refreshes export payload, sets
activeStep='final-brief'
Active Guidance#
- Finding articles (one per finding for the active step) — non-interactive; show status tag, title, detail, remediation list
Panel grid#
The workspace embeds ~72 specialty panels (audio, image pipeline, network, pose, etc.). Each panel is its own component with its own walkthrough; do not duplicate per-control bullets here. Walk by:
- Actor Profile panel — actor identity, storage adapter
- Hardware Recommendation panel — budget-scoped upgrade suggestions
- Acoustics panel — room-noise baselines, clap-decay analysis
- Voice Capture / Room Tone Removal / Dialogue Mixing / Voice Quality Enhancement / Automatic Gain Normalization / Isolated Dialogue Recording / Backup Recording System / Lip-Sync Verification / Dialogue 3D Audio Positioning / CGI Room Acoustics Simulation / Dialogue Distance Attenuation Filtering / Dialogue Obstruction-Occlusion Modeling / Dialogue Binaural Ambisonics Rendering / Foley Spatial Placement / Environmental Ambience Generation / Audio Transition Engine / Remote ADR Beep Streamer Workflow / Remote ADR Cueing System / ADR Suggestion System — audio chain
- Calibration / Color Checker / Edge Feathering / Segmentation / Chroma Key / Lighting / Pose Estimation / Pose Lifting / Face Tracking / Hand Tracking / Gaze Estimation / Mark Hitting / Actor Lighting / Normal Map / Rim Light Synthesis / HDR Light Probe / Noise Reduction / Lens Simulation / Film Grain / Dynamic Range Expansion / Rolling Shutter / Depth Of Field / Frame Interpolation / White Balance / Codec Transcoding / Re-Identification / Pre-Shoot Self-Test / Recalibration / Synchronization — image pipeline + capture readiness
- Network panel — bandwidth gating, packet-loss tolerance
Actor Checklist#
- Checklist rows — non-interactive; show "Locked" / "Needs work" tags
from
plan.actorChecklist
Next Actions And Export#
- Next actions bullets — non-interactive
- Export payload textarea — read-only
<textarea rows={14}>with monospace font; reflectsexportPayloadstate - In-body link: "Open Yemaya Voice/Video Communication workspace" →
/studio/yemaya/voice-video-communication - In-body link: "Open Yemaya Virtual Production Stage workspace" →
/studio/yemaya/virtual-production-stage
Page-level (outside workspace)#
- Route Map entries — non-interactive cards from
STUDIO_YEMAYA_REMOTE_ACTOR_HOME_CAPTURE_ROUTE_MAP - "Open Yemaya Voice/Video Communication workspace" (page-level
quickAction) →/studio/yemaya/voice-video-communication(note: duplicates the in-body link) - "Back to Studio workspace index" →
/studio
Data & contracts#
- Reads: no BFF call from this page. The workspace consumes
HOME_STUDIO_SETUP_TEMPLATES,HOME_STUDIO_SETUP_STEP_IDS,createHomeStudioSetupInputFromActorProfile,createHomeStudioSetupInputFromTemplate,createHomeStudioSetupWizardPlanfrom@yemaya/remote-film-capture. - Writes: none persisted — wizard state is React state, exports go through a read-only textarea.
- Realtime: none on this page; some downstream panels accept
*BrowserAdapterprops that can connect to live browser capabilities (capture devices, network probes). - Caching: server-rendered metadata; canonical
'/studio/yemaya/remote-actor-home-capture'. The page-level metadata description enumerates the workspace's capabilities at length. - Auth/role check: signed-in via root
/studio. No additional AAA-tier gate on this route segment.
Cross-references#
- Studio overview:
../../studio-overview.md - Shell auth:
../../../shell/04-auth-session.md - Sibling routes (this batch):
/studio/yemaya/voice-video-communication,/studio/yemaya/virtual-production-stage - Library:
libs/yemaya/remote-film-capture/(consumed via@yemaya/remote-film-capture) - Feature spec:
V1/features.md— Yemaya rendering substrate - Component source:
apps/oshun/web/src/components/studio/StudioYemayaRemoteActorHomeCaptureWorkspace.tsx(~1566 lines) - Route map:
apps/oshun/web/src/components/studio/StudioYemayaRemoteActorHomeCaptureRouteMap.ts
Open questions / known gaps#
- ~72 panel components embed directly without lazy loading or virtual
scrolling. Verify time-to-interactive on a typical signed-in session and
document mitigations (code-splitting, suspense boundaries,
next/dynamic). - All
*BrowserAdapterprops are page-levelprops.*references but the page doesn't supply them — adapters land via the props chain from a parent route or are intended to default to live browser hooks. Confirm wiring and default behaviour. - Export payload is read-only; no copy-to-clipboard button. Walk whether selecting + Cmd-C is the intended UX.
- Page-level quick-action and in-body links both target
/studio/yemaya/voice-video-communication. Confirm this duplication is intentional or whether one should change. - No persistence of wizard state across navigations; bookmarks lose input.
Verify if
wizard/[sessionId]sub-route is intended to add persistence.