Skip to main content

AEROSIM-TS-77

Project task

Apply governed wind conditions to aircraft motion

The deterministic runtime applies the frozen wind vector and configured variation to aircraft forces at each fixed step.

AEROSIM-TS-77Canonical ID TASK-0077
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
@corp-v1-aerosim/flight-core — deterministic wind sampler and force integration
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Implement sampleWind(snapshot, simulationTick): WindSample using seeded deterministic phase and apply relative air velocity (aircraft velocity minus WindSample.windWorldMps) to TASK-0001 drag/lift calculations. A gust is sampled only from snapshot seed, amplitude, period, and simulationTick; no wall clock or frame delta enters physics.

Implementation contract

Implementation artifacts

  • packages/flight-core/src/environment/sample-wind.ts
  • packages/flight-core/src/physics/relative-air-velocity.ts
  • packages/flight-core/test/environment/wind-effects.spec.ts

Inputs

  • EnvironmentSnapshotV1, uint64 simulationTick, and AircraftKinematicState.velocityMps; sampleWind receives no mutable random generator or wall-clock time.

Outputs

  • WindSample {simulationTick,steadyWindWorldMps,gustWorldMps,windWorldMps} and RelativeAirVelocity {worldMps,speedMps}; both are passed into FlightForceInput for the same tick.

Failure boundaries

  • Throw WindModelError(code='ENVIRONMENT_SNAPSHOT_INVALID') for unsupported schema, digest mismatch, or non-finite wind/gust fields.
  • Throw WindModelError(code='SIMULATION_TICK_INVALID') for a negative, fractional, or regressing tick.
  • Throw WindModelError(code='GUST_PERIOD_INVALID') when gustPeriodTicks is not a positive integer.
  • Stop the simulation step with WIND_FORCE_NON_FINITE if wind sampling or relative-air calculation produces a non-finite value; do not advance aircraft state.

Excluded scope

  • Wind collision geometry, rotor wake, terrain-induced flow, stochastic turbulence, precipitation forces, and visual effects are excluded.

Verification steps

  • Run packages/flight-core/test/environment/wind-effects.spec.ts.
  • Assert calm, headwind, tailwind, and crosswind committed vectors, including expected relative-air speed/direction and resulting force change.
  • Repeat 3,600 gust samples with the same snapshot/ticks and assert exact sample equality; change only the seed and assert a changed phase with unchanged bounds.
  • Inject invalid snapshot schema/digest, tick, gust period, and non-finite values; assert exact failure and no state advancement.

Traceability

Requirements

Dependencies

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: final application PR #97 reviewed head 5ef9244af0387dd31e49ffbda115dd9c9fa60ae5 passed exact-head application validation run 3961, merged as 09628fbb828380fbe159be7530da26f4bbf02129, and integration runs 3962 and 3963 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.