Files
Alexandre 2cb633e99d Initial commit: offline flight planner (Rust, PFPX-class)
Clean-room reproduction of PFPX: route generation + IFPS validation + OFP.
Independent design — official ICAO/EUROCONTROL data only (RAD, FRA points,
IFPUV oracle); no community FPL sources.

Workspace crates: core (routing/discover/rad/navdata/perf/export),
cli, server, rad (Annex parser), gui (Tauri v2 + React + MapLibre).
Route discovery: oracle-in-the-loop repair against Eurocontrol IFPUV.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-21 11:10:35 +02:00

7.2 KiB

IDEAS / Vision — flightplanner

Cible produit à long terme : une appli de briefing de vol complète, dans l'esprit de SkyNexus / SimBrief / PFPX (voir maquettes fournies). Ce document capture les idées au-delà du MVP ; il ne remet pas en cause l'ordre de travail défini dans TODO.md.

⚠️ Tension à assumer. Le MVP est offline-first (navdata X-Plane locale, zéro dépendance cloud). La plupart des écrans ci-dessous reposent sur des données temps réel / online (météo, NOTAM, réseau VATSIM, cartes ChartFox). Ils appartiennent donc à une phase post-MVP, et seront branchés via une couche providers optionnelle : chaque source a une implémentation « offline / vide » par défaut, et une implémentation « online » activable. Le cœur (parsing, routing, perf, export) reste utilisable sans réseau.

Impact architecture (prévoir tôt, coder plus tard)

  • crates/providers — traits abstraits + implémentations : WeatherProvider (METAR/TAF/SIGMET/WAFS), NotamProvider, ChartProvider (ChartFox), NetworkProvider (VATSIM online ATC/traffic). Chaque trait a une impl Null/offline. Aucune de ces deps ne remonte dans core.
  • crates/web — UI locale (Axum + front simple) qui héberge les écrans Briefing / DEP-ARR-ALT / Enroute / Charts. Consomme core + providers.
  • OFP builder dans core : agrège route + perf + météo en un objet « briefing » sérialisable (base commune CLI ↔ web ↔ export PDF/texte).
  • Modèle de vol enrichi : callsign, type OACI (ex. BCS3/A220), CI, step climbs, ZFW/TOW/LDW, bloc carburant détaillé, alternates multiples.

1. Écran BRIEFING (OFP / dashboard)

  • Bandeau global (toutes pages) : callsign, type avion + moteur, dep→arr, heures OFF/ON + temps bloc, cycle AIRAC, version OFP, sync multi-appareils, actions PAD / OFP / REFRESH.
  • Couverture ATC : timeline des FIR traversés avec état online (VATSIM).
  • Weights : ZFW / TOW / LDW.
  • Fuel : bloc total + décomposition TAXI / TRIP / CONT / ALTN / FINRES (barre empilée visuelle).
  • Load : PAX, cargo, payload, Cost Index, CRZ FL / temp, Mach.
  • Step climbs : profil d'altitude par étape.
  • Cartes départ / arrivée condensées : RWY, SID/STAR, QNH, vent, METAR.
  • Route : chaîne complète SID … DCT/airways … STAR, + bouton « File on VATSIM ».
  • Alternates : FL, distance, fuel, ETE, route de déroutement.
  • Cruise level impact : Δ trip fuel / Δ temps pour FL ±2000/4000/6000 vs FL choisi.

2. Écrans DEP / ARR / ALT (briefing terrain)

  • En-tête terrain : nom, ELEV, TA (transition alt), TL (transition level), RWY active + « change RWY », sélecteur SID/STAR.
  • Météo : rose des vents (orientation piste + vecteur vent + composantes), tuiles WIND / VIS / QNH / TEMP-DEW, METAR + TAF (mise en évidence des changements/éléments importants), refresh.
  • ATIS décodé, avec source (SayIntentions / VATSIM / réel).
  • NOTAMs : compteur total + CRITICAL/IMPORTANT, filtre « n'affectant que mon vol », regroupement (YOUR FLIGHT / TAXIWAYS & GROUND / NAVAIDS & LIGHTING / GENERAL), tags CHANGED / NOT AVAILABLE, dépliables.
  • NADP (profil anti-bruit) + EOSID (engine-out SID).
  • Table pistes : HDG, type d'approche, dimensions, THR ELEV, TORA/TODA/ASDA/LDA, marge.
  • Operational notes : infos arrivée/départ/taxi spécifiques au terrain.
  • Crew briefing : catégorie d'approche (CAT), threats (TEM).
  • ALT (déroutement) : Divert plan — niveau, distance, fuel, ETE, route.

3. Écran ENROUTE (carte + profil vertical)

  • Carte mobile avec la route tracée et les waypoints.
  • Couches :
    • Flight plan (route + waypoints)
    • Météo : METARs, SIGMET, conditions de vol, vents ≥15kt, radar de précip
    • Prévision WAFS : jet stream, turbulence, givrage, fronts
    • Réseau online : ATC VATSIM, trafic, ma position
    • Catégories de vol (VFR / MVFR / IFR / LIFR) avec compteurs + légende
    • Vent surface (légende barbules)
  • Time scrubber : LIVE + prévision (+6h … +36h).
  • Badges météo aéroports (dispo GA/TAF/ATIS).
  • Profil vertical (type EWAS) : bandes FL, vent/temp le long de la route, terrain, waypoints avec distances cumulées, axe temps, FL de croisière surligné.

4. Écran CHARTS

  • Intégration ChartFox (ou équivalent).
  • Par terrain (DEP/ARR/ALT + ajout ICAO) : cartes groupées TAXI / SID / STAR / APPROACH avec alternatives, tags « ON PLAN » / « GEO » (géo-référencé), épinglage.
  • Visionneuse : zoom/fit/rotation/luminosité, overlay position live, download, ouverture externe, barre d'onglets des cartes ouvertes.

Validation IFPS (Eurocontrol) — « check IFPS fiable »

Objectif : savoir si une route serait acceptée par l'IFPS (Eurocontrol NM, espace IFPZ européen). C'est demandé comme fonctionnalité fiable.

Réalité à assumer : un check IFPS fiable est forcément online et autoritatif. Les règles à respecter incluent la connectivité point/airway, le sens et la bande de FL des airways, les RAD (Route Availability Document : routings obligatoires, DCT interdits, restrictions de flux, contraintes de niveau par zone/horaire — change à chaque cycle AIRAC), les limites DCT en FRA, la connexion SID/STAR au réseau, RVSM, etc. Reproduire tout cela hors ligne ne peut pas être « fiable » : on courrait derrière le ruleset Eurocontrol.

Conception en deux couches :

  1. Validateur autoritatif (online, post-MVP) — la seule source fiable :

    • Eurocontrol NM B2B service flightPlanValidation (nécessite un compte NM + certificat, réservé AO/CFSP) — référence absolue.
    • Alternative : Autorouter (fait une vraie validation IFPS) ou portail NOP (manuel). Renvoie accepté/refusé + messages IFPS (ERROUTxxx, PROF…).
    • Exposé via un trait providers::IfpsValidator ; impl online activable.
  2. Pré-validateur structurel (offline, faisable dans core)best-effort, non autoritatif, pour attraper les erreurs évidentes avant soumission :

    • chaque point de la route existe et est bien sur l'airway cité ;
    • sens d'airway (N/F/B) respecté ;
    • FL de croisière dans la bande base_fl…top_fl du segment ;
    • DCT « raisonnables » (longueur, hors FRA) ;
    • continuité de la séquence (pas de trou entre segments). Résultat étiqueté clairement « pré-check local, non IFPS-officiel ».

Décision requise : cible du validateur autoritatif (NM B2B vs Autorouter) et accès/credentials disponibles. En attendant, le pré-validateur offline apporte déjà de la valeur et alimentera la même API IfpsResult { accepted, errors, warnings }.

Priorisation suggérée (post-MVP)

  1. OFP builder + écran Briefing texte (n'a besoin que de core : route + perf). Faisable offline, prolonge directement l'étape 5 (OFP).
  2. UI web locale (Axum) réutilisant l'OFP builder — pages statiques d'abord.
  3. Providers online optionnels : météo (METAR/TAF) → NOTAM → WAFS → réseau VATSIM → ChartFox, dans cet ordre de valeur/effort.
  4. Écran Enroute (carte + profil vertical) — le plus lourd, en dernier.