AEROSIM-TS-26
Render the representative flight scene
A representative aircraft, terrain surface, environment, primary camera, and secondary camera render through React Three Fiber.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-45
- Component
- Web Application — R3F scene composition
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Compose a deterministic placeholder aircraft mesh, plane terrain, hemisphere and directional lights, sky color, chase camera, and cockpit camera in R3F; switch active camera by CameraId without bypassing SceneRoot ownership. Primary files: applications/web/src/flight/RepresentativeFlightScene.tsx, applications/web/src/flight/cameras.ts, applications/web/src/flight/fixtures/representative-scene.ts, applications/web/tests/representative-flight-scene.test.tsx.
Implementation contract
Implementation artifacts
- applications/web/src/flight/RepresentativeFlightScene.tsx
- applications/web/src/flight/cameras.ts
- applications/web/src/flight/fixtures/representative-scene.ts
- applications/web/tests/representative-flight-scene.test.tsx
Inputs
- RepresentativeSceneFixture with aircraft transform, plane dimensions, light values, and two CameraPose records
- CameraSelection {activeCameraId:"chase"|"cockpit"}
Outputs
- R3F scene graph containing named aircraft, terrain, environment lights, chase camera, and cockpit camera
- Active Three.js camera matching CameraSelection
Failure boundaries
- Reject an unknown camera ID and retain the last valid camera.
- Do not mount the scene when a fixture transform contains NaN or Infinity.
Excluded scope
- Placeholder primitives do not satisfy governed glTF asset ingestion, terrain heightmaps, or Rapier collision.
Verification steps
- pnpm --filter @aerosim/web test -- representative-flight-scene.test.tsx
- Assert scene graph object names and world transforms, switch chase→cockpit→chase, and verify the selected camera identity each time.
Traceability
Dependencies
- AEROSIM-TS-25Canonical ID: TASK-0025
UI/UX applicability
non_visual
This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.
Acceptance evidence
Verified delivery: application PR #31 reviewed head f9740f81ba264640e2cbd1b2909a8da1273b5f8d, exact-head validation task 1846 succeeded, merged as 7e909c17137f72ae52c162c0ba2f6232be59f382; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.
Current evidence boundary
No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.