Context. surface studio · domain isis · route /studio/isis/3d-editing · auth signed-in + studio entitlement (AAA-gated — segment 3d-editing in AAA_ONLY_STUDIO_ROUTES; non-AAA users get 307 → /aaa-upgrade?from=… or 404 hard-block per resolveStudioBoundary) · source apps/oshun/web/src/app/studio/isis/3d-editing/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#
Hybrid Isis 3D-editing surface. The load-bearing wired piece is the live
pre-export manifold-repair lane, which runs the real @isis/3d-post-pipeline
repairer over an edited mesh and reports export-readiness. Around it sits a
retained browser-side mesh-editing expert shell (sculpt / paint / UV staging
over demo geometry) backed by @oshun-web/isis-3d-browser.
Entry points#
- Breadcrumb / quick-action card from
/studio/isis/3d-generation - Studio index (
/studio) - Direct URL / bookmark (AAA-gated)
Layout regions#
page.tsx mounts ShellLayout active="studio" with a breadcrumb panel.
- Breadcrumb panel (
data-isis-3d-editing-breadcrumbs): Studio → Isis 3D Generation → (current) - Workspace panel (
data-isis-3d-editing-workspace):<h1>"Isis 3D Editing Workspace" (WorkspaceHeading) + summary (data-isis-3d-editing-summary) and runtime / stroke-count / history pills (data-isis-3d-editing-runtime-pill,…-stroke-count-pill,…-history-pill)- Live pre-export manifold repair lane (
data-mrl-lane,<h2>data-mrl-heading"Live Pre-export Manifold Repair") — the wired, real-backed lane - The browser-side editing stage shell (
data-isis-3d-editing-stage-shell,…-stage,…-stage-tool,…-stage-brush, etc.) operating on demo geometry/texture
- Route map panel (
data-isis-3d-editing-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_3D_EDITING_ROUTE_MAP - Quick-actions panel:
quickActionlinks to/studio/isis/3d-generation,/studio/isis/gaussian-splatting, and "Back to Studio workspace index" →/studio
States#
Manifold repair lane (wired)#
- Loading —
data-mrl-loading"Loading manifold-repair gate…" - Unauthorized —
data-mrl-unauthorized(admin-scope fail-closed on 401/403, "Isis workspace scope required to repair meshes.") - Error —
data-mrl-erroron the mount GET - Ready (form) —
data-mrl-formmesh JSON textarea + submit - Result —
data-mrl-resultwithdata-mrl-headline(data-export-readyyes/no),data-mrl-actions,data-mrl-blocking; ordata-mrl-repair-error
Browser editing shell (legacy, client-side)#
- Stage shell — sculpt / paint / UV staging over demo geometry; no
/v1call, runs entirely in@oshun-web/isis-3d-browser
Interactions#
Repair mesh (data-mrl-form)#
- Mesh repair JSON —
data-mrl-payloadtextarea (positions + indices + options) - Repair mesh —
data-mrl-submitsubmit; POSTs to/v1/admin/isis/3d-editing/repair-mesh, returns before/after topology + export-ready verdict
Browser editing shell#
- Tool / brush / falloff / radius controls — drive vertex paint / sculpt operations on the demo mesh (client-only)
Route map#
- Route-map articles — non-interactive path + purpose entries
Quick-actions#
- Open Isis 3D Generation workspace →
/studio/isis/3d-generation - Open Isis Gaussian Splatting workspace →
/studio/isis/gaussian-splatting - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/3d-editing(REPAIR_ENDPOINT) on mount — gate check - Writes:
POST /v1/admin/isis/3d-editing/repair-mesh(REPAIR_RUN_ENDPOINT) — run the manifold repairer - Realtime: None
- Caching: client
fetchon mount,cache: 'no-store',buildBffAuthHeaders() - Auth: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated
studio route behind
resolveStudioBoundary - Component sources:
apps/oshun/web/src/components/studio/StudioIsis3DEditingWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsis3DEditingManifoldRepairLane.tsxapps/oshun/web/src/components/studio/StudioIsis3DEditingRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
Open questions / known gaps#
- The browser editing shell runs on
createStudioIsis3DEditingDemoGeometry/ demo textures, not a real uploaded asset — it is an interactive demo surface, not yet wired to a persisted mesh store - Only the manifold-repair lane is wired to a
/v1endpoint; sculpt/paint/UV edits are not yet persisted server-side