Wire multi-gun system into EvoBot #105

Open
opened 2026-08-28 22:03:16 +02:00 by SirStone · 1 comment
Owner

Parent

#99

What to build

part-of: #99

Wire the three guns (GF_Gun, GA_Gun, CMA_Gun) and the virtual guns selector into EvoBot. GA_Gun uses existing mutation-only GA evo thread. CMA_Gun uses new CMA-ES evo thread. Both share the replay tape (one writer, multiple readers). Each learning gun has its own champion channel. Virtual guns selector picks the active gun each tick. Always fire — random-init weights from tick 1, hot-swap on champion delivery. Two concurrent evo threads. Each learning gun saves its own global_<name>.weights on round-end.

Acceptance criteria

  • Three guns instantiated and registered with the virtual guns selector
  • GA_Gun and CMA_Gun each run their own evolution thread concurrently
  • Replay tape has one writer (tick loop) and is read by both evo threads and GF_Gun
  • Bot fires from tick 1 with random-init weights (no cold-start silence)
  • Champion hot-swap works: when an evo thread produces a new champion, the corresponding gun switches to it
  • Virtual guns selector picks the active gun each tick based on angle-delta tracking
  • Each learning gun persists global_<name>.weights via saveChampionIfBetter on round-end
  • Bot compiles, runs a match, and does not crash

Blocked by

## Parent #99 ## What to build part-of: #99 Wire the three guns (GF_Gun, GA_Gun, CMA_Gun) and the virtual guns selector into EvoBot. GA_Gun uses existing mutation-only GA evo thread. CMA_Gun uses new CMA-ES evo thread. Both share the replay tape (one writer, multiple readers). Each learning gun has its own champion channel. Virtual guns selector picks the active gun each tick. Always fire — random-init weights from tick 1, hot-swap on champion delivery. Two concurrent evo threads. Each learning gun saves its own `global_<name>.weights` on round-end. ## Acceptance criteria - [ ] Three guns instantiated and registered with the virtual guns selector - [ ] GA_Gun and CMA_Gun each run their own evolution thread concurrently - [ ] Replay tape has one writer (tick loop) and is read by both evo threads and GF_Gun - [ ] Bot fires from tick 1 with random-init weights (no cold-start silence) - [ ] Champion hot-swap works: when an evo thread produces a new champion, the corresponding gun switches to it - [ ] Virtual guns selector picks the active gun each tick based on angle-delta tracking - [ ] Each learning gun persists `global_<name>.weights` via `saveChampionIfBetter` on round-end - [ ] Bot compiles, runs a match, and does not crash ## Blocked by - #100 - #101 - #102 - #103 - #104
SirStone added the wayfinder:task label 2026-08-28 22:03:16 +02:00
Author
Owner

blocked-by: #100, #101, #102, #103, #104

blocked-by: #100, #101, #102, #103, #104
SirStone added the ready-for-agent label 2026-08-28 22:15:08 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SirStone/SirRoboGarage#105