Context. surface studio · domain isis · route /studio/isis/gaussian-splatting · auth signed-in + studio entitlement (AAA-gated — segment gaussian-splatting in AAA_ONLY_STUDIO_ROUTES) · source apps/oshun/web/src/app/studio/isis/gaussian-splatting/page.tsx
Last walked. 2026-07-21 automated production-artifact walk (Playwright, one worker, zero retries) — 9/9 desktop and mobile scenarios passed, including auth/scope denial, exact BFF contracts, malformed and inflated response rejection, reload loss, touch containment, local renderer interaction, and applicable axe checks. The disposable database applied all 32 migrations and was dropped after the walk.
Purpose#
Browser-local 3D Gaussian Splatting review workspace: a client-side expert shell
with real typed .ply/.splat/.igsplat parsing, compression roundtrips,
coverage-driven LOD, mesh extraction, animated 4D playback, and WebGPU/fallback
profiling. Scene inputs, derived data, and displayed telemetry exist only in the
current browser tab; the shell creates no retained scene, artifact, telemetry,
provider-execution, approval, governance, or release record.
The embedded admin lane — the Request-local Splat Storage Preview — calls
/v1/admin/isis/gaussian-splatting for a deterministic, non-authoritative
float32 storage-footprint calculation. It accepts caller-supplied splat count
and spherical-harmonics degree, retains nothing beyond the request, and fails
closed on missing, extra, malformed, or authority-inflated response data.
Entry points#
- Breadcrumb in-page:
Studio→Isis 3D Generation→Gaussian Splatting - Sibling quick-actions from
/studio/isis/3d-generation,/studio/isis/texture-enhancement - Direct URL / bookmark (AAA entitlement required)
Layout regions#
page.tsx mounts <ShellLayout active="studio"> with a breadcrumb panel, the
workspace, the Route Map, and sibling quick-actions.
- Header: shell header
- Breadcrumb panel (
data-isis-gaussian-splatting-breadcrumbs):Studio(link) →Isis 3D Generation(link →/studio/isis/3d-generation) →Gaussian Splatting(aria-current="page") - Workspace panel (
data-isis-gaussian-splatting-workspace):<h1>(WorkspaceHeading) "Isis Gaussian Splatting Workspace"- Summary paragraph (
data-isis-gaussian-splatting-summary) - Client-side review shell (real WebGPU algorithms, no
/v1fetch): capability summary (data-isis-gaussian-splatting-capability-summary), WebGPU canvas (data-isis-gaussian-splatting-canvas), file picker (data-isis-gaussian-splatting-file-picker), viewer controls (data-isis-gaussian-splatting-controls), compression panel (data-isis-gaussian-splatting-compression-*), LOD panel (data-isis-gaussian-splatting-lod-*), mesh-extraction panel (data-isis-gaussian-splatting-mesh-*), telemetry (data-isis-gaussian-splatting-telemetry), hydration shell (data-isis-gaussian-splatting-hydrating), implementation notes (data-isis-gaussian-splatting-implementation-notes) - Embedded admin lane
StudioIsisGaussianSplattingStorageLane(data-gsl-lane) with<h2>(data-gsl-heading) "Request-local Splat Storage Preview"
- Route Map panel (
data-isis-gaussian-splatting-route-map):<h2>Route Map</h2>overSTUDIO_ISIS_GAUSSIAN_SPLATTING_ROUTE_MAP(one mounted route and five documented-contract entries) - Sibling quick-actions panel:
/studio/isis/3d-generation,/studio/isis/texture-enhancement,/studio
States#
Client-side review shell#
- GPU available / fallback — WebGPU canvas renders; otherwise the shell shows its fallback notice
- Hydrating — deterministic server/client shell is shown until browser runtime capabilities and responsive stage dimensions can be measured
- Ingest — file picker accepts
.ply/.splat/.igsplat; errors surface indata-isis-gaussian-splatting-ingest-error - Compression / LOD / mesh — each panel runs its own client-side
computation (loading + error sub-states, e.g.
data-isis-gaussian-splatting-compression-error,data-isis-gaussian-splatting-mesh-error)
Storage Planner lane (data-gsl-lane)#
- Loading —
outcome === null;data-gsl-loading - Unauthorized — 401/403 admin-scope fail-closed;
data-gsl-unauthorized - Error — non-OK, malformed, partial, extra-key, or authority-inflated
catalog;
data-gsl-error - Ready (form) — catalog present;
data-gsl-formrenders - Result — after a plan POST, an exact echoed input and deterministic
arithmetic render in
data-gsl-result(data-gsl-floats,data-gsl-mb,data-gsl-breakdown,data-gsl-sh); malformed, inflated, or failed results render indata-gsl-plan-error
Interactions#
Storage Planner form (data-gsl-form)#
- Storage payload (
data-gsl-payload) — splat count1..50,000,000plus SH degree0..4; the source-defined layout uses four-byte floats - Submit (
data-gsl-submit) —POST /v1/admin/isis/gaussian-splatting/plan-storage
Client-side shell#
- File picker (
data-isis-gaussian-splatting-file-picker) — load a splat scene - LOD toggle (
data-isis-gaussian-splatting-lod-toggle) - Compression profile
(
data-isis-gaussian-splatting-compression-profile) - Mesh-extraction profile (
data-isis-gaussian-splatting-mesh-profile)
Route Map#
- Route-map articles ×6 — one mounted calculator; scene ingest, renderer execution, artifact output, governance record, and release authority remain documented contracts only
Sibling quick-actions#
- Open Isis 3D Generation workspace →
/studio/isis/3d-generation - Open Isis Texture Enhancement workspace →
/studio/isis/texture-enhancement - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/gaussian-splattingreturns exactly{generatedAt, planner, inputBounds, disposition}; the rest of the workspace reads no BFF data and computes from browser-local inputs - Writes:
POST /v1/admin/isis/gaussian-splatting/plan-storage(per-splat layout + footprint), returning exactly{ok, input, result, disposition} - Disposition:
request_local_non_authoritative_storage_footprint_preview; persistencenone, retentionrequest_only, producercaller_supplied_splat_count_and_sh_degree, deterministic source-defined float32 layout, authoritativefalse - Realtime: none; displayed measurements are browser-local and not retained
- Caching: storage lane uses client fetch on mount,
cache: 'no-store',buildBffAuthHeaders() - Auth/role check: storage lane is admin-scoped, fail-closed (401/403); route gated on signed-in + studio entitlement (AAA segment)
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisGaussianSplattingWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisGaussianSplattingStorageLane.tsxapps/oshun/web/src/components/studio/StudioIsisGaussianSplattingRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - AAA gating:
libs/isis/entitlements/src/studio-boundary.ts - Sibling routes:
Open questions / known gaps#
- No durable scene registry, revision history, collaborative review record, artifact/export authority, provider execution, retained telemetry, governance approval, or release authority exists. Those capabilities need separate contracts and lifecycle evidence if required; this surface does not imply them.