V1 Web PWA · Surface walkthrough

Isis Gaussian Splatting

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

walked
8sections4 minread

On this page

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: StudioIsis 3D GenerationGaussian 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 /v1 fetch): 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> over STUDIO_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 in data-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)#

  • Loadingoutcome === 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-form renders
  • 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 in data-gsl-plan-error

Interactions#

Storage Planner form (data-gsl-form)#

  • Storage payload (data-gsl-payload) — splat count 1..50,000,000 plus SH degree 0..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-splatting returns 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; persistence none, retention request_only, producer caller_supplied_splat_count_and_sh_degree, deterministic source-defined float32 layout, authoritative false
  • 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.tsx
    • apps/oshun/web/src/components/studio/StudioIsisGaussianSplattingStorageLane.tsx
    • apps/oshun/web/src/components/studio/StudioIsisGaussianSplattingRouteMap.ts

Cross-references#

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.