V1 Web PWA · Surface walkthrough

Isis 3D Post-Processing

A per-surface walkthrough of the V1 Web PWA studio surface: layout, states, interactions, data, and cross-references.

walked
8sections2 minread

On this page

Context. surface studio · domain isis · route /studio/isis/3d-post-processing · auth signed-in + studio entitlement (AAA-gated — segment 3d-post-processing in AAA_ONLY_STUDIO_ROUTES) · source apps/oshun/web/src/app/studio/isis/3d-post-processing/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 authoring approved 3D post-processing pipeline classes. An operator chains post-process steps in a fixed order; the real builder rejects forbidden step pairs and duplicate steps and stamps a class hash. Ad-hoc chains are not permitted at runtime — only registered classes.

Entry points#

  • Sibling quick-action card from /studio/isis/multi-provider-3d-generation
  • Studio index (/studio)
  • Direct URL / bookmark

Layout regions#

page.tsx mounts ShellLayout active="studio" and three panels (no breadcrumb panel).

  • Workspace panel (data-isis-3d-post-processing-workspace):
    • <h1> "Isis 3D Post-Processing Workspace" (WorkspaceHeading)
    • Summary paragraph (data-isis-3d-post-processing-summary)
    • Registered-classes list (data-pipeline-classes, <h2>) of data-pipeline-class cards (steps + hash)
    • The "Author a pipeline class" form (data-pipeline-author-form)
  • Route map panel (data-isis-3d-post-processing-route-map): <h2> "Route Map" enumerating STUDIO_ISIS_3D_POST_PROCESSING_ROUTE_MAP
  • Quick-actions panel: quickAction links to /studio/isis/multi-provider-3d-generation and "Back to Studio workspace index" → /studio

States#

  • Loadingdata-pipeline-loading "Loading pipeline classes…"
  • Unauthorizeddata-pipeline-unauthorized (admin-scope fail-closed on 401/403)
  • Errordata-pipeline-error on non-OK / malformed response
  • Ready (form) — class list + author form render
  • Resultdata-pipeline-result with data-pipeline-status (ok / error); validation messages cover incompatible-steps, invalid-steps, duplicate-class

Interactions#

Author a pipeline class (data-pipeline-author-form)#

  • Class iddata-pipeline-classid text input
  • Display namedata-pipeline-displayname text input
  • Fixture setdata-pipeline-fixture text input
  • Cost classdata-pipeline-cost select (options from response costClasses)
  • Step togglesdata-pipeline-step-toggle={step} checkboxes (one per availableSteps entry); order is fixed
  • Author classdata-pipeline-author submit; POSTs to /v1/admin/isis/3d-post-processing, then reloads the class list

Route map#

  • Route-map articles — non-interactive path + purpose entries

Quick-actions#

  • Open Isis Multi-Provider 3D Generation workspace/studio/isis/multi-provider-3d-generation
  • Back to Studio workspace index/studio

Data & contracts#

  • Reads: GET /v1/admin/isis/3d-post-processing (PIPELINE_ENDPOINT) on mount — registered classes + availableSteps + costClasses
  • Writes: POST /v1/admin/isis/3d-post-processing — author a pipeline class
  • Realtime: None
  • Caching: client fetch on mount, cache: 'no-store', buildBffAuthHeaders()
  • Auth: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated studio route behind the signed-in + studio proxy gate
  • Component sources:
    • apps/oshun/web/src/components/studio/StudioIsis3DPostProcessingWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioIsis3DPostProcessingRouteMap.ts

Cross-references#

Open questions / known gaps#

  • The forbidden-pair list (e.g. rife-interpolation + auto-rigging) is enforced server-side; this view surfaces the rejection but does not list every forbidden pair up front
  • Fixture-set references are free-text ids — confirm where fixture sets are registered / validated