本文へ移動

アーキテクチャ ​

SKYWARDは描画、決定論的シミュレーション、判断ポリシー、ゲートウェイ境界を分離し、リモート判断が遅くても飛び続けられるようにしています。

実行の流れ ​

text
Three.js renderer (requestAnimationFrame)
        ▲ 現在の状態を参照
        │
simulation state (60Hz) ── observe() ── telemetry
        ▲                              │
        │ controlsForDecision()        │ 非同期 /api/decide
        │                              ▼
localDecision() ◄── fallback ◄── Express + JevClient

シミュレーション契約 ​

src/simulation.ts が固定ステップの物理を担当します。機体姿勢、スロットル、目標、弾丸、掃引衝突、地形警告、失速回復、フレア、score、勝敗を扱います。observe() は戦術テレメトリを作り、localDecision() はネットワークなしで決定論的に判断します。

ブラウザは物理を60Hzで進め、Three.jsの海・島・空、HUD、レーダー、カメラを描画します。JEVの回答は操縦入力へ変換されますが、物理時計を置き換えません。

ゲートウェイ境界 ​

server/index.ts は 127.0.0.1:4173 に GET /api/status と POST /api/decide を公開します。server/validation.ts が不正または無制限のテレメトリを拒否し、server/jev.ts がキーをサーバーで読み、Choice/Boolean/Scoreを解析し、期限と安全なエラーを管理します。

公開・静的境界 ​

Pagesサイトはゲームの説明と /play/ の静的な手動/ローカルAI体験を公開します。公開静的ページが AI_GATEWAY_API_KEY を露出しないよう、JEVはローカルNodeサーバーの機能です。

元構想や描画調査はGitHubの恒久的な調査記録を参照してください。

SKYWARD / JEV Flight Lab