AEROSIM-TS-78
Render governed visibility and world-condition effects
The flight scene visibly reflects the frozen visibility and supported environmental settings.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-10
- Component
- Web flight scene — environment presenter
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Map EnvironmentSnapshotV1 to EnvironmentPresentationState and apply it to Three.js fog, renderer clear colour/ambient light, horizon visibility marker, and deterministic wind indicator. Derive every frame from the immutable snapshot plus simulationTick; report the snapshot selectionDigest in the in-session conditions panel.
Implementation contract
Implementation artifacts
- applications/web/src/flight/presentation/environment-presentation.ts
- applications/web/src/flight/scene/apply-environment-presentation.ts
- applications/web/test/flight/environment-presentation.browser.spec.ts
Inputs
- EnvironmentSnapshotV1 and simulationTick; Three.js scene handles for Fog, AmbientLight, renderer background, horizon marker, and wind indicator.
Outputs
- EnvironmentPresentationState {selectionDigest,fogNearM,fogFarM,fogDensity,ambientLight,backgroundColor,horizonMarkerDistanceM,windIndicator:{directionDeg,speedMps,gustActive}} applied atomically to one rendered frame.
Failure boundaries
- Return ENVIRONMENT_PRESENTATION_UNSUPPORTED for an unknown snapshot schema and keep the last valid scene state.
- Return ENVIRONMENT_PRESENTATION_NON_FINITE when calculated fog, light, distance, direction, or speed is non-finite; do not partially update scene objects.
- Return ENVIRONMENT_DIGEST_MISMATCH when the conditions panel, presentation state, and active FlightSessionConfig do not share selectionDigest.
- Return SCENE_BINDING_MISSING when a required scene handle is absent; session setup remains blocked rather than rendering default conditions.
Excluded scope
- Photorealistic atmosphere, volumetric clouds, precipitation, HDR calibration, post-processing, and physics wind calculation are excluded.
Verification steps
- Run applications/web/test/flight/environment-presentation.browser.spec.ts.
- Render calm/clear, crosswind/haze, and low-visibility fixtures; assert scene property values, wind indicator state, horizon distance, and displayed selectionDigest.
- Inject unsupported schema, non-finite derivation, mismatched digest, and each missing scene binding; assert atomic rollback to last valid presentation state.
- Advance simulationTick through one gust period and assert the indicator changes from the same WindSample used by physics.
Traceability
Acceptance evidence
Verified delivery: application PR #98 reviewed head d3016544aa6e860cdfc0883885b8675ce6105949 passed exact-head application validation run 3972, merged as 7fa431152cbebdf208925920384d5ddc8bb731a4, and integration runs 3973 and 3974 succeeded. Final forward-fix PR #99 reviewed head a4d310baa3ad7d2a5431ba510388b085539aea4b passed exact-head application validation run 3976, merged as d624ce2960b43a4edd7babf7b668c117625e8559, and final integration runs 3977 and 3978 succeeded. 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.