What to build
Complete a fixed-wing mission through the shared planner and owned vehicle-control contracts, then explicitly inventory VTOL, helicopter and other airframe gaps.
Current published VTOL status, October 23
Main f90a68e, including #83 and #84, now exposes the same 14 modeled lift-and-cruise cases through native Buddy, the copied standalone CLI and the common stx mission workspace. These share one case factory and actual runtime execution, with phase-bound failures, recovery/abort outcomes, captured mode acknowledgements and optional electrical playback. The native-command/workspace acceptance item below is complete for this experimental profile.
Exact combined-source Linux CI passed all five jobs and required steps: 1,796 passes, 41 skips, zero failures and 500,360 assertions across 1,837 tests in 212 files. Eleven standalone reports have matched outcomes and neutral inhibited outputs. The local 237-test/10,403-assertion suite, 48 copied/Buddy cases, 48 actual-parent byte comparisons and actual 375px/320px STX checks are retained separately.
The sections below retain earlier milestone history. Their earlier hover-only or unpublished status descriptions describe those earlier revisions. Current support remains fictional development simulation. Wind/envelope campaigns, fresh-process restoration, broader recovery/abort behavior, identified hybrid physics, other VTOL mechanisms/airframes, native control, HIL and physical acceptance remain open. No broader checkbox changes or full parity claim are made.
Acceptance criteria
- Separate vehicle-specific dynamics, allocation, transition, airspeed and energy management from common missions.
- Demonstrate fixed-wing navigation and landing with wind and stall constraints in simulation.
- Track VTOL transitions, TECS/soaring, helicopters, blimps/airships and experimental spacecraft as separate evidence-gated extensions.
Blocked by
- #5 Multirotor control: stabilize the first simulated quadcopter
- #6 Authority: verify arming, manual override and independent failsafes
- #10 Mission engine: run and resume an owned waypoint mission
Implemented air slice
- A force/torque aerodynamic trainer, relative airspeed/differential-pressure measurements, post-stall lift loss, pressure-dependent surface control, runway steering/braking and bounded energy/altitude/heading policy.
- Explicit takeoff, survey and runway landing mission. Nominal and 2 m/s crosswind fixtures complete; airspeed/position loss, RC takeover, kill and host loss inhibit outputs. Stall, excessive bank, reverse airflow, runway overshoot and airborne landing pause have focused regression coverage.
- Native
air:simulateand the common stx/missionsviewer.
Read air model and limits and shared vehicle contract.
Remaining gates and airframe extensions
- Measured aerodynamic/propulsion/landing gear identification, calibrated airspeed/heading, reviewed flight envelopes and tuning.
- Native allocation/control port, HIL and supervised physical takeoff, stall, crosswind and landing campaigns.
- VTOL transitions and allocation, with transition abort/energy tests.
- Full TECS and soaring with measured energy/polar models.
- Helicopter rotor dynamics and swashplate/collective control.
- Blimp/airship buoyancy and envelope dynamics.
- Experimental spacecraft-specific dynamics, authority and acceptance evidence.
Shared runtime and evidence
Implemented in 8dde96a and its preceding commits. Every profile uses the owned raw IMU/GNSS sensor pipeline, estimator, versioned vehicle mission policy, shared authority lifecycle and independent typed output leases. Per-execution sessions isolate mutable controller, payload and sensor state. Physical endpoints remain inhibited.
The integrated suite passed 320 Bun tests, 22,849 assertions, 13 Python bridge tests, Buddy lint, application/runtime/view typechecks, roadmap/parity gates and native standalone CLI checks outside the checkout. Independent Standards and Spec reviews passed after sampler authority/scope, session isolation, estimator/clock epochs, scenario binding and landing-pause fixes. Browser QA verified nominal and recovery playback, correlated payload ACKs, host-loss versus stale host snapshots, numeric timeline controls and zero horizontal overflow at 320/375 px.
All evidence is owned physics simulation. It does not establish native controller execution, external firmware SITL, HIL or physical vehicle acceptance. CI for this pushed commit passed, including all Linux standalone CLI scenarios and both neutral-only Pico 2 cross-builds.
Next owned VTOL implementation
Source inspection established the following boundaries. The fictional hover prerequisite is now published; full transition control remains missing:
VehicleKindnow includes the hover-only VTOL development profile. It reuses per-execution plant/controller factories and independent output leases.- The air plant has one propeller, three aerodynamic surfaces and wheel brakes. It has no vertical lift rotors, and surface moments vanish at zero airspeed.
- The air controller rejects airborne speed below 8 m/s. Wrapping it does not implement hover or transition control.
- The vehicle mission graph now records explicit mode requests and correlated initial-hover observations. Actual front/cruise/back controller qualification remains separate in #78; reaching a waypoint never implies a successful flight-mode transition.
The next owned simulation slice should implement a lift-and-cruise profile through the existing raw IMU/GNSS, estimator, mission, authority and independent modeled board loop. Its acceptance cases are tracked below:
- Model four vertical rotors, their motor response/allocation and an independent pusher/surfaces in one rigid body with relative-airflow forces. Declare the fictional model and limits.
- Record explicit hover, front-transition, cruise and back-transition requests and fresh observed outcomes. Bind them to the mission, estimator reference and monotonic epochs; preserve replay and existing profile compatibility.
- Complete vertical takeoff, qualified front transition, cruise, back transition and vertical landing. Ground speed or elapsed time alone must not certify sufficient wing-borne airspeed.
- Exercise bounded acceleration/airspeed failure, altitude sag, attitude limits, transition timeout and reserve handling. Retain a distinct abort or bounded recovery result; no automatic retry until a passing transition appears.
- Cover pause/recovery in every phase, stale/replayed sensors, reference/clock loss, RC takeover, kill and host loss. No authority regain or claimed safe landing from neutral outputs alone.
- Account for peak hybrid power and the complete worst-case mission, including supported abort and landing demand. Keep session state isolated and model truth out of controller inputs.
- Expose the same implementation through native Buddy commands, the copied standalone CLI outside the checkout and the common stx mission workspace with phase and failure evidence.
Primary comparison references: PX4 v1.17 transition configuration, PX4 v1.17 back-transition behavior, and ArduPilot QuadPlane transitions. These identify behavior to account for; they do not establish parity or provide coefficients for our model. No upstream controller source is copied.
This slice does not complete #12. Tiltrotor/tailsitter allocation, full TECS/soaring, helicopters, buoyant aircraft, experimental spacecraft, native board execution and measured hardware acceptance remain required under this parent. The pinned upstream VTOL control inventory remains linked to #5 as well.
Published hover prerequisite #76 in 48f411c: a fictional lift-and-cruise rigid body, collective-priority allocation and estimator-driven hover on the shared raw sensor, mission, authority and independent output-lease runtime. The development mission takes off vertically, reaches a nearby hover waypoint and lands with fresh contact evidence. Seven distinct nominal/loss/manual/host scenarios run through native vtol:hover in Buddy and the copied standalone CLI. All seven copied CLI reports exactly match Buddy; short and unsupported cruise inputs retain failure exits. Native lint, app/runtime types, docs and roadmap/parity gates pass. Independent Spec and Standards reviews pass for each milestone.
The complete local suite passed 1,578 tests, 27 skips, zero failures and 489,990 assertions. Exact-source Linux CI passed all five jobs with 1,564 tests, 41 skips, zero failures and 489,967 assertions, including standalone hover and host-loss reports. The main integration has an identical source tree to the qualified CI head. Read the hover-only guide for fictional coefficients and scope.
Front/cruise/back controllers, correlated mode outcomes in the runtime, hybrid energy, transition abort/recovery and the common VTOL mission workspace remain unfinished. The first model criterion above is the only newly completed VTOL criterion. Full transitions and physical vehicle support are not claimed.
Published initial hover acknowledgement
PR #77 is merged and published on main in 03cedae: explicit mode request/observation policy, replay/capture watermarks and actual initial-hover acknowledgement delivery through the shared runtime. It requires matching captured positions, the oldest post-request source epoch, and 200 ms on both decision time and source coverage. Legacy recording shapes stay unchanged; the hover adapter explicitly aborts cruise requests. Declared bounded contact friction settles the modeled skids without an airborne braking or physical landing claim.
Native lint/app/runtime types, 139 focused tests / 4,179 assertions, CLI checks and the 90-page docs build pass. Independent Spec and Standards reviews are clean. The exact-source local full suite passed 1,596 tests, 27 skips, zero failures and 490,313 assertions across 205 files, with source and pinned Bun bytes unchanged. Exact-head Linux CI passed all five jobs with 1,582 passes, 41 skips, zero failures and 490,290 assertions; original logs verify both standalone VTOL reports. The earlier two disk preflights launched no child; the eventual full run passed without restart. Published by normal fast-forward as Chris, without coauthors. Automatic main CI is a separate pending run.
Full transition controllers, hybrid energy, bounded transition abort/landing and the common workspace remain unfinished on main. No VTOL acceptance checkbox changes with this initial-hover prerequisite.
Experimental full-route library milestone, pending qualification
Draft PR #78, e95871f, builds on #77 with original force-aware front/cruise/back control through the shared raw sensor, estimator, mission, authority and independent modeled output loop. Actual nominal and turning routes reach wing-supported cruise, return to captured position and heading, and land vertically. Delayed airflow uses its qualified capture attitude; acknowledgements retain every consumed oldest-source epoch. Observed hover heading must remain within 0.1 rad for the full 500 ms dwell. The finite 45-second back allowance is charged to the complete 131,520 ms / 43.84 Wh declared plan; the original short back budget still fails without retry.
Retained failing regressions cover the missing back controller, turning height breach, oldest-source overclaim and wrong-heading hover acknowledgement. The final focused suite passes 175 tests / 4,870 assertions across 14 files, including 24 actual modeled runtime loss/manual/host campaigns across four phases. Native lint, app/runtime types, 90-page docs build and both independent reviews pass. Exact-head Linux CI failed: GitHub reported hosted-runner communication loss during the full test step, and the check log is absent from the original downloaded archive. Four other jobs passed. The exact cause and test completion are unknown; this is not a full-suite pass. The original failure and incomplete archive are retained without rerun or log refetch. An installed Buddy file-filter invocation accidentally launched the full suite and was deliberately stopped after 47 seconds; its output is retained, with no full-suite success claim.
This is a library experiment pending main publication. Phase pause/recovery, explicit bounded abort/landing, complete hybrid electrical power/reserve, full-transition native CLI/common workspace, wind/envelope qualification and measured board/HIL/physical evidence remain open. No acceptance checkbox changes and no full VTOL or ArduPilot/PX4 parity claim.
Stable-phase lifecycle and documentation milestone, pending qualification
Draft PR #79, d8046f0, includes #78 and adds bounded, captured operator schedules through the existing shared runtime. Stable hover holds position, wing-borne pause captures a clockwise 60 m circle with complete 400 m envelope containment, and qualified stopped contact remains neutral. Explicit resume continues the route. Task time pauses while global endurance and energy continue. Pending transitions retain uncertain-outcome refusal; this does not implement controlled recovery or abort landing.
Actual runtime campaigns cover straight/banked cruise pause, post-back airborne/contact pause, same-session recover/resume, source/manual/host loss, input validation before resources, caller mutation, unchanged legacy reports, energy/endurance and near-fence refusal. Native lint/app/runtime types, 200 focused tests / 5,108 assertions across 15 files, and the 90-page docs build pass. Runtime and supplemental docs each received separate clean Spec and Standards reviews. README, sidebar, introduction, shared guide and feature matrix now distinguish the hover-only native command from the experimental library and remaining work.
Exact new CI is pending on the original full workflow. This is qualification of new reviewed source, not a rerun of the failed #78 workflow. No main publication, full VTOL completion, physical/SITL parity or acceptance checkbox change is claimed. Fresh-process recovery, controlled front/back recovery/abort landing, complete hybrid electrical power/reserve, native full-transition CLI/common workspace and broader wind/envelope qualification remain open.
Published full-route library and stable-phase lifecycle
PR #79 and its included #78 are merged. Main is d8046f0, published by normal fast-forward as Chris without coauthors. The exact qualified source completes bounded modeled nominal/turning front/cruise/back/vertical-contact routes, records correlated source-qualified observations and replay, and supports stable-phase pause/resume. The two corresponding simulation acceptance criteria are now checked.
Exact-head full Linux CI passed all five jobs and required steps: 1,643 passes, 41 skips, zero failures and 491,219 assertions, 1,684 tests across 207 files. The original single-download archive verifies standalone hover and host-loss outcomes, neutral board outputs, expired leases and physical actuation disabled. Local focused/native/docs evidence is separate; no exact d804 macOS full-suite pass is claimed. The original #78 runner-communication failure and missing check log remain retained and are not converted into a pass. Automatic main CI is a separate new run.
README, documentation navigation, vehicle introduction and coverage matrix are aligned with the published experimental library. The native CLI remains hover-only; common workspace VTOL selection is absent. Controlled pending-transition recovery/abort landing is new, uncommitted work after this main revision. Complete hybrid electrical power/reserve, broader wind/envelope qualification, full-transition native CLI/common workspace and measured board/HIL/physical evidence remain open. This does not complete #12 or establish full autopilot parity.