Skip to content

feat: define SceneForge Package v1 and runtime adapter - #30

Draft
ewanqian wants to merge 1 commit into
mainfrom
agent/issue-9-package-runtime
Draft

feat: define SceneForge Package v1 and runtime adapter#30
ewanqian wants to merge 1 commit into
mainfrom
agent/issue-9-package-runtime

Conversation

@ewanqian

@ewanqian ewanqian commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Closes #9

Intent

Define the first reviewable, renderer-neutral SceneForge Package v1 boundary and a minimal runtime adapter API without adding networking, backend services, Needle dependencies, or visual features.

Completed in this slice

  • Zod schemas for package metadata, assets, screens, cameras, spawn points, cue sets, and quality profiles.
  • Namespaced extensions fields for runtime-specific metadata; no Needle-specific core fields.
  • Cross-reference, duplicate-ID, portable-path, and readable validation errors.
  • Additive migration from the existing VenueManifest, including legacy metadata preservation.
  • Minimal RuntimeAdapter covering scene loading/disposal, cue application, camera selection, media-surface binding, and XR capability reporting.
  • Minimal R3F reference adapter skeleton behind an injected renderer port.
  • Portable package and runtime conformance fixtures with unit tests.
  • Units, coordinates, Blender export notes, directory layout, asset URI, and fallback conventions.

Deferred acceptance criteria

  • Projectors, navmesh, audio zones, and interaction schemas.
  • Input and XR session-entry adapter APIs.
  • Networking adapter APIs and shared room/media-track contracts.
  • Needle adapter implementation; this remains part of Spike Needle Engine as a replaceable SceneForge runtime #8.
  • Full desktop/mobile/Quest/Vision Pro capability policy and measured device evidence.
  • Existing viewer cutover from VenueManifest to SceneForgePackage; this slice keeps migration additive.

Validation

  • npm run verify
  • 5 test files / 15 tests passed
  • Production build passed
  • Existing VenueManifest fixtures migrate and validate
  • Desktop mouse/orbit path checked — no visual/runtime integration changed
  • Mobile responsive layout checked — no UI changed
  • WebXR device path checked — no XR session behavior changed

Risk and fallback

This is an additive domain/API slice. The current Stage Viewer continues using VenueManifest, so rollback is removal of the new package/runtime modules. WebGL2 and existing WebXR behavior are unchanged. Runtime-specific data is optional and isolated under dotted extension namespaces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define the portable SceneForge Package and runtime adapter API

1 participant