Commit Graph

61 Commits

Author SHA1 Message Date
CosmicClash Training Bot aeeb730636 chore(training): Add 20260815-0812-gen5-s4-handling-retry2 checkpoints, logs, and exported policy 2026-08-15 14:28:21 +01:00
CosmicClash Training Bot 34f883cf46 chore(training): Add 20260815-0156-gen5-s4-handling-retry1 checkpoints, logs, and exported policy 2026-08-15 08:11:33 +01:00
CosmicClash Training Bot 84e0ebf771 chore(training): Add 20260814-1939-gen5-s4-handling checkpoints, logs, and exported policy 2026-08-15 01:54:55 +01:00
Josh Creek 8f7f672a15 fix(training): restore ground_tilt_penalty, add grounded_upright_fraction diagnostic
Round 4 changed three things at once and two of them cut upright pressure:
grounded_upright_reward went to 0 and ground_tilt_penalty was cut 2.5x,
while the new uprightness multiplier only pays below GROUND_HANDLING_HEIGHT
*and* while moving forward *and* facing the ball - a far narrower slice of
ticks than the penalty it was meant to replace. Net pressure fell and
upright_fraction fell with it (0.268 -> 0.239 -> 0.238, the lowest of any
round). Restore ground_tilt_penalty to 0.05 and change nothing else, so
this is a genuine single-variable test of multiplier plus full tilt
pressure.

The conjunctive mechanism itself held up: forward_motion_fraction reached
its best sustained value (0.242) without goal_rate sagging, ep_rew_mean
turned positive for the first time (+0.28), and eval win rate hit 49% with
no reward hacking.

Also adds grounded_upright_fraction: a diagnostic, deliberately ungated
metric measuring uprightness over real floor-contact ticks instead of
sub-3m ticks. upright_fraction has never exceeded 0.331 across four rounds
and ~560M steps without cheating, and its denominator is dominated by
ballistic transit (airborne_fraction ~0.45, mean_altitude ~4.4m) where
attitude is not meaningfully controllable - so it likely cannot measure
what the 0.45 floor was meant to capture. Re-baseline that floor from what
this reports rather than from another round of reshaping.
2026-08-14 19:36:45 +01:00
CosmicClash Training Bot f08ecbe651 chore(training): Add 20260813-0134-gen5-s4-handling-retry2 checkpoints, logs, and exported policy 2026-08-13 07:44:31 +01:00
CosmicClash Training Bot 4d78e89e95 chore(training): Add 20260812-1922-gen5-s4-handling-retry1 checkpoints, logs, and exported policy 2026-08-13 01:32:50 +01:00
CosmicClash Training Bot 9e7b93af2b chore(training): Add 20260812-1307-gen5-s4-handling checkpoints, logs, and exported policy 2026-08-12 19:20:31 +01:00
Josh Creek 4f3cf56e28 fix(training): make uprightness a multiplier on the forward-approach reward
Rounds 2 and 3 showed that tuning grounded_upright_reward's magnitude only
slides along a tradeoff instead of resolving it: at 0.015 upright_fraction
climbed to 0.331 while goal_rate sagged to 0.542 (then farmed outright at
0.696/0.366), and at 0.004 goal_rate climbed 0.569->0.604 while
upright_fraction went flat at ~0.26. An additive uprightness bonus is an
alternative to playing well, so the policy just picks whichever is cheaper
and no magnitude buys both behaviours.

Change the mechanism rather than the number: grounded_upright_reward drops
to 0, and uprightness becomes a multiplier inside the nose-led approach
term, which already requires moving forward at the ball. Parked-and-upright
and fast-but-sideways now both pay zero; only upright, forward, nose-on to
the ball pays full. forward-velocity-to-ball rises 0.06 -> 0.15 to offset
the ~2-3x expected-value cut from the new factor, and ground-tilt-penalty
drops 0.05 -> 0.02 now that uprightness is paid positively during play.
Delete the three blocked attempts and reset state to restart from the
Stage-3 foundation.
2026-08-12 13:04:20 +01:00
CosmicClash Training Bot 8e5eea4f46 chore(training): Add 20260812-0424-gen5-s4-handling-retry2 checkpoints, logs, and exported policy 2026-08-12 10:30:03 +01:00
CosmicClash Training Bot 739c4b09d5 chore(training): Add 20260811-2216-gen5-s4-handling-retry1 checkpoints, logs, and exported policy 2026-08-12 04:22:59 +01:00
CosmicClash Training Bot 722ad7cc85 chore(training): Add 20260811-1606-gen5-s4-handling checkpoints, logs, and exported policy 2026-08-11 22:14:46 +01:00
Josh Creek b8e2a7b57a fix(training): cut grounded_upright_reward, restart stage-4 from Stage-3 foundation
grounded_upright_reward at 0.015 overshot: four force-retries pushed
upright_fraction from 0.265 to a plateauing 0.331, then the fifth jumped it
to 0.696 (55% over the 0.45 floor) while goal_rate collapsed 0.542->0.366
and forward_motion_fraction fell 0.244->0.184 (vertical_thrust_mean went
negative) - the policy learned to sit pinned upright and farm the bonus
instead of chasing the ball. It was sized "comparable to
time_penalty/ball_distance_penalty" but at 0.015/tick it was actually above
ball_distance_penalty's 0.01/tick worst case, so idling near the ball beat
playing. Cut to 0.004/tick (episode ceiling ~7.2, below
ball_distance_penalty's ~18 worst case). Delete the five blocked attempts
and reset generation5_state.json so the next run starts fresh from the
Stage-3 foundation rather than continuing from the farming checkpoint.
2026-08-11 15:57:27 +01:00
CosmicClash Training Bot 25560a65b5 chore(training): Add 20260811-0858-gen5-s4-handling-retry4 checkpoints, logs, and exported policy 2026-08-11 15:10:43 +01:00
CosmicClash Training Bot 651c048115 chore(training): Add 20260810-1338-gen5-s4-handling-retry3 checkpoints, logs, and exported policy 2026-08-10 19:50:40 +01:00
CosmicClash Training Bot 677fff2c82 chore(training): Add 20260810-0211-gen5-s4-handling-retry2 checkpoints, logs, and exported policy 2026-08-10 08:21:17 +01:00
CosmicClash Training Bot aa8d895b14 chore(training): Add 20260809-1955-gen5-s4-handling-retry1 checkpoints, logs, and exported policy 2026-08-10 02:10:10 +01:00
CosmicClash Training Bot dcf618dda1 chore(training): Add 20260809-1340-gen5-s4-handling checkpoints, logs, and exported policy 2026-08-09 19:53:46 +01:00
Josh Creek c56f5ed1a3 chore(training): retune stage-4 handling penalties and restart from Stage-3 foundation
Stage 4's upright/forward-motion telemetry plateaued flat across all three
blocked attempts because ground_tilt_penalty (0.003) was too weak to matter
and nothing penalized sideways/reverse motion at all. Raise
ground_tilt_penalty to 0.05 and add a new non_forward_penalty term
(ship_ai_controller.gd) that directly costs non-forward planar velocity near
the floor, independent of the ball. Delete the three blocked attempts'
checkpoints/logs/exports and reset generation5_state.json so the next run
starts fresh from the Stage-3 foundation checkpoint instead of continuing
from the drifted retry2 weights.
2026-08-09 13:09:12 +01:00
CosmicClash Training Bot c6f0f2084f chore(training): Add 20260809-0328-gen5-s4-handling-retry2 checkpoints, logs, and exported policy 2026-08-09 09:35:20 +01:00
CosmicClash Training Bot 686b115b88 chore(training): Add 20260808-2120-gen5-s4-handling-retry1 checkpoints, logs, and exported policy 2026-08-09 03:27:31 +01:00
CosmicClash Training Bot 11b41ab562 chore(training): Add 20260808-1508-gen5-s4-handling checkpoints, logs, and exported policy 2026-08-08 21:18:39 +01:00
CosmicClash Training Bot b7f646ba48 chore(training): Add 20260806-1939-curric-s3-gauntlet checkpoints, logs, and exported policy 2026-08-08 08:24:30 +01:00
CosmicClash Training Bot a370b15020 chore(training): Add 20260805-1926-curric-s2-selfplay checkpoints, logs, and exported policy 2026-08-06 19:37:58 +01:00
CosmicClash Training Bot 9f78d37c79 chore(training): Add 20260805-0953-curric-s1-bootstrap checkpoints, logs, and exported policy 2026-08-05 19:26:20 +01:00
Josh Creek 0e046aa9f1 chore(training): scrap generation 1-3 training data for generation 4
All checkpoints/logs/exported policies here are a continuous-Gaussian,
31-input action/observation shape that generation 4's MultiDiscrete
redesign is structurally incompatible with -- nothing to resume from (see
the prior commit and TRAINING.md's "Generation 4" section). Game/bots/promoted/
(easy.json, and the new reference-grounded.json copied from
curric-s5-aggression before this) is untouched -- both remain valid,
playable evaluation opponents forever via PolicyNetwork's format-versioned
JSON despite their own checkpoints/generation being gone.

- training/checkpoints/*, training/logs/* removed (~3.5GB of working tree,
  all generation 1-3 experiment runs).
- Game/bots/*.json flat dump removed (superseded exports; main_menu.gd's
  Spectate dropdown will just be empty until the first generation-4 export).
- curriculum_state.json -> curriculum_state_gen3.json, archived alongside
  the existing _gen1/_gen2 logs (all three are referenced as postmortem
  evidence in TRAINING.md/curriculum.py). A fresh curriculum_state.json
  will be created on the next curriculum.py run (load_state() already
  handles a missing file).

training/eval_history.json is deliberately NOT reset -- it's the one
continuous cross-generation progress record.

NOT YET PUSHED: this needs the remote Linux training box quiesced first
(kill any active tmux session, confirm it's synced to origin) so its own
run_training.sh doesn't race a still-running job's final commit against
this deletion.
2026-08-04 23:28:57 +01:00
CosmicClash Training Bot 6198dc67fc chore(training): Add 20260803-1829-curric-s4-unmask-retry2 checkpoints, logs, and exported policy 2026-08-04 22:06:04 +01:00
CosmicClash Training Bot 5fe53b2406 chore(training): Add 20260802-1458-curric-s4-unmask-retry1 checkpoints, logs, and exported policy 2026-08-03 18:27:21 +01:00
CosmicClash Training Bot f62ddde369 chore(training): Add 20260801-1131-curric-s4-unmask checkpoints, logs, and exported policy 2026-08-02 14:56:35 +01:00
CosmicClash Training Bot e5a0df63c5 chore(training): Add 20260801-0658-curric-s3-unmask-ramp75 checkpoints, logs, and exported policy 2026-08-01 11:31:48 +01:00
CosmicClash Training Bot 1615791ee0 chore(training): Add 20260801-0223-curric-s2-unmask-ramp50 checkpoints, logs, and exported policy 2026-08-01 06:58:11 +01:00
CosmicClash Training Bot 23b2cd19df chore(training): Add 20260731-2149-curric-s1-unmask-ramp25 checkpoints, logs, and exported policy 2026-08-01 02:23:27 +01:00
CosmicClash Training Bot f03037a612 chore(training): Add 20260730-1224-curric-s1-unmask-retry2 checkpoints, logs, and exported policy 2026-07-31 16:04:58 +01:00
CosmicClash Training Bot f41702e7ea chore(training): Add 20260729-0837-curric-s1-unmask-retry1 checkpoints, logs, and exported policy 2026-07-30 12:22:54 +01:00
Josh Creek efda6c1a05 chore(training): Resume stage 1 unmask from its own checkpoint, not foundation
Generation 2's first two real stage-1 attempts both independently restarted
from curric-s5-aggression (reset_retry_checkpoint) with identical flags and
landed at 32% and 27% win rate vs the reference -- a real regression either
way, but too much spread between "identical" runs for repeat fresh restarts
to be a controlled test of anything. The first attempt's own trajectory
(ep_rew_mean climbing from -10.86 toward ~0 by the 240M-step cutoff,
briefly touching positive) looked closer to convergence than the second's,
so retries now continue that attempt's own checkpoint for another full
timesteps budget instead of resetting to foundation again.

Drops retry1 and retry2 (checkpoints, logs, exported bots, eval_history
entries) -- retry2 never trained meaningfully before crashing on the
GoalRateCallback bug just fixed, and retry1 was the inferior of the two
real samples. curriculum_state.json rewinds to attempt 1, in_progress, so
the next run resumes 20260726-1904-curric-s1-unmask/final.zip directly.
2026-07-29 08:35:34 +01:00
CosmicClash Training Bot a6c2ed6177 chore(training): Add 20260729-0607-curric-s1-unmask-retry2 checkpoints, logs, and exported policy 2026-07-29 06:08:10 +01:00
CosmicClash Training Bot cb3732fcb7 chore(training): Add 20260728-0031-curric-s1-unmask-retry1 checkpoints, logs, and exported policy 2026-07-29 06:05:33 +01:00
CosmicClash Training Bot a0b527b8cb chore(training): Add 20260726-1904-curric-s1-unmask checkpoints, logs, and exported policy 2026-07-28 00:29:06 +01:00
Josh Creek 31aa5cae8c chore(*): Remove superseded pre-curriculum and dead-branch runs 2026-07-26 19:25:22 +01:00
Josh Creek f7d03b1e74 chore(*): Remove superseded curriculum branches 2026-07-26 19:19:01 +01:00
CosmicClash Training Bot 653afe4040 chore(training): Add curric-s6-unmask-retry2 checkpoints, logs, and exported policy 2026-07-26 13:06:31 +01:00
CosmicClash Training Bot 4e0efec612 chore(training): Add curric-s6-unmask-retry1 checkpoints, logs, and exported policy 2026-07-25 07:39:52 +01:00
CosmicClash Training Bot f4dfc43d04 chore(training): Add curric-s6-unmask checkpoints, logs, and exported policy 2026-07-24 02:23:34 +01:00
CosmicClash Training Bot fda784d50d chore(training): Add curric-s5-aggression checkpoints, logs, and exported policy 2026-07-22 20:31:54 +01:00
CosmicClash Training Bot cf4859e61c chore(training): Add curric-s4-mechanics checkpoints, logs, and exported policy 2026-07-22 11:53:29 +01:00
CosmicClash Training Bot bc644e0305 chore(training): Add curric-s3-no_draws checkpoints, logs, and exported policy 2026-07-21 21:44:51 +01:00
CosmicClash Training Bot ffa9017cbd chore(training): Add curric-s2-defend checkpoints, logs, and exported policy 2026-07-21 19:17:32 +01:00
CosmicClash Training Bot 523a26aa60 chore(training): Add curric-s1-score checkpoints, logs, and exported policy 2026-07-21 16:50:08 +01:00
CosmicClash Training Bot 1d539cc8c7 chore(training): Add run11 checkpoints, logs, and exported policy 2026-07-21 09:40:13 +01:00
CosmicClash Training Bot fbf51eebe5 chore(training): Add run10 checkpoints, logs, and exported policy 2026-07-20 22:34:32 +01:00
CosmicClash Training Bot e23d780402 chore(training): Add run09 checkpoints, logs, and exported policy 2026-07-20 19:09:32 +01:00