fix(*): apply the locomotion mask during in-game/eval inference, not just training

AIShipController (eval + real gameplay) ran the raw policy output unmasked
regardless of allow_vertical/allow_pitch_roll, while ShipAIController
(training) correctly discarded those axes for grounded curriculum stages.
A grounded-trained model's untrained vertical/pitch-roll output reached the
ship as noise during eval, understating it against models that were never
handicapped this way.
This commit is contained in:
Josh Creek
2026-07-21 22:23:09 +01:00
parent dd2b3c570b
commit 8c15c466ef
5 changed files with 78 additions and 8 deletions
+7
View File
@@ -122,6 +122,13 @@ appends to `training/eval_history.json` — the long-term progress record.
Evaluate each new candidate against the previous promoted bot and a fixed
early reference to see absolute progress over time.
If a model was trained with the locomotion mask on (curriculum stages 1-2 —
see below), pass `--grounded-a`/`--grounded-b` for whichever side it's on.
The eval otherwise runs `AIShipController` fully unmasked regardless of how a
model was trained, so a grounded model's untrained vertical/pitch-roll output
reaches the ship as noise it never had to contend with during training —
this understates it, not a neutral comparison.
## Difficulty tiers
A bot is `(model, reaction_ticks, action_noise)` — configured on the Match