AEROSIM-TS-28
Define the deterministic fixed-step simulation boundary
The browser flight runtime advances simulation through one documented fixed-step clock with explicit input, initial-state, and output contracts.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-46
- Component
- Web Application — deterministic flight runtime
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Define SimulationInput, AircraftState, SimulationSnapshot, and FixedStepClock with a 1/60-second authoritative step, bounded frame accumulator, maximum five catch-up steps, and render-only interpolation alpha. Primary files: packages/flight-core/src/simulation-clock.ts, packages/flight-core/src/simulation-types.ts, packages/flight-core/tests/simulation-clock.test.ts.
Implementation contract
Implementation artifacts
- packages/flight-core/src/simulation-clock.ts
- packages/flight-core/src/simulation-types.ts
- packages/flight-core/tests/simulation-clock.test.ts
Inputs
- FrameElapsedSeconds and an ordered SimulationInput sample for the current tick
- Initial AircraftState with finite position, rotation, linear velocity, and angular velocity
Outputs
- Zero to five fixed SimulationTick records per render frame
- SimulationSnapshot {previous,current,interpolationAlpha} where interpolation never mutates current
Failure boundaries
- Reject negative or non-finite elapsed time and non-finite initial state before advancing.
- Clamp accumulated elapsed time to five steps and report droppedTimeSeconds rather than running an unbounded catch-up loop.
Excluded scope
- requestAnimationFrame cadence, API time, network events, and interpolated render poses cannot become authoritative simulation state.
Verification steps
- pnpm --filter @aerosim/flight-core test -- simulation-clock.test.ts
- Feed the same one-second elapsed-time partitioned as 60×1/60 and 30×1/30; assert identical authoritative tick count and state inputs.
Traceability
Dependencies
- AEROSIM-TS-27Canonical ID: TASK-0027
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 #38 reviewed head b8711a32338a54fed9190d2b3d88f11c11affdaf, exact-head validation task 1881 succeeded, merged as 859a786d1347074a3d512f5e1a86993de6a238c1; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. 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.