SirStone
7516ca47c0
docs: quick-recap README for bitbrain gun (inputs/outputs, knobs, verdict)
2026-09-26 14:47:42 +02:00
SirStone
8f44140783
j136 add TR_MODULE_* on/off switches + single [modules] boot inventory
2026-09-26 14:46:29 +02:00
SirStone
fd34e4ae4a
j135 draw-only geometry overlay (TR_GEO_DEBUG) + global debug-draw switch (TR_DEBUG_DRAW)
2026-09-26 14:29:46 +02:00
SirStone
3903ec71b4
j134 ledger: note phantom_meteor is dead code (not selectable), out of scope
2026-09-26 13:01:36 +02:00
SirStone
3237b65f40
j134 ledger: propagated fire fix to all 5 movers via one shared fire_tracker (TR_FIRE_FIX), per-mover catch table 98.888->100, live tick alignment measured (correction belongs on event_tick+2)
2026-09-26 12:59:35 +02:00
SirStone
882733819b
j134 fix: tracker must take the mover's switch per-call (instance flag was silently off on the object-literal construction path) + apply the correction on the reading that carries the server's turn-N+1 energy change (two-slot buffer); live-verified alignment
2026-09-26 12:56:26 +02:00
SirStone
6ad5d99922
j134 fire fix: share ONE fire_tracker across tfil/ring/strafe/learned/surf (TR_FIRE_FIX, default on); env-gated TR_FIRE_DIAG alignment trace
2026-09-26 12:40:19 +02:00
SirStone
bd57db6d63
j133 strafe: correct the comment's measured fire count (67065, catch 98.888%->100.000%)
2026-09-26 12:25:06 +02:00
SirStone
3bee4353b2
j133 ledger: appended 'Missed fires + the label question' (catch 98.888->100%, 746/67065 shots were blind: 456 by the server +3*power bonus, 290 by our own same-tick damage; exact label still -0.230, state-conditional model -0.347 -> the observable state is the constraint) + report fixtures
2026-09-26 12:22:31 +02:00
SirStone
799438bbe9
j133 strafe fire detection: correct the enemy energy delta for the server's +3*power hit bonus and our own damage, never drop a too-large drop (TR_STRAFE_FIRE_FIX, default on); catch 98.89%->100% of enemy fires on the 70-battle corpus
2026-09-26 12:18:21 +02:00
SirStone
0566264b06
j132 strafe display check: also assert the chosen tile's ramp border and value plate reach the SVG
2026-09-26 11:54:14 +02:00
SirStone
cc332138b3
j131 learned movement: real bullet-endpoint resolution (TR_LEARNED_REAL_EVENTS, default off) + exact-geometry Gate A/B (inversion NOT fixed; state still the constraint)
2026-09-26 11:54:11 +02:00
SirStone
d5047598b5
j132 strafe display check: also assert the chosen tile's heat number reaches the SVG with the heat grid ON and OFF
2026-09-26 11:53:10 +02:00
SirStone
4db46f02dd
j132 strafe pick quality: chosen tile's heat in the [strafe] log line (heat=h/10.0 alt=best-other ok=0|1) and ON the tile (green/yellow/red ramp + value), legible with TR_STRAFE_HEAT_GRID=0; deterministic display check vs pathMaxHeat
2026-09-26 11:51:33 +02:00
SirStone
8dd9b3b3b5
j130 learned movement outcome label: live panel results (no arm beats strafe; label swap is a dead heat; gap is information) + Gate A report
2026-09-26 11:35:47 +02:00
SirStone
61def1c3e9
j130 learned movement: outcome label (P(hit|state,g)) mode + Gate A; pre-registered outcome arms
2026-09-26 11:27:03 +02:00
SirStone
4c934a67c1
j129: add entry-point check for the virtual-bullet overlay draw proc
2026-09-26 11:03:14 +02:00
SirStone
752d3a3829
j129: virtual-bullet debug overlay (TR_VBULLET_DEBUG, default off) - travelled path, predicted aim ring, hit/miss vector; shared turret colour table
2026-09-26 11:02:39 +02:00
SirStone
a5c893ace6
learned movement: record the pre-registered prediction as partly wrong (right on wins, wrong on the hit-rate mechanism)
2026-09-26 10:56:02 +02:00
SirStone
4f332dcb95
learned movement (SBC): live panel results and the direct answer (module is a wash vs strafe on wins; state conditioning is a CI-separated hit-rate gain vs the same mover without it; the label is the wrong quantity)
2026-09-26 10:55:14 +02:00
SirStone
ee98827a62
learned movement: danger-map alignment diagnostic (corr(P(arrival bin), P(hit|bin)) = -0.342) in the gate + ledger
2026-09-26 10:45:26 +02:00
SirStone
b4e54fc3cd
j127: allocation batch results - forced shares do not beat pattern; allocation not a lever (closed axis)
2026-09-26 10:45:10 +02:00
SirStone
a436e9f16a
j128 learned movement: state-conditional counted-SBC wave danger (TR_MOVEMENT=learned, default-off), offline gate + pre-registered panel arms
2026-09-26 10:42:10 +02:00
SirStone
2a3a62a0ab
j127: fix TR_RACK_SHARE round-boundary dwell lock (bot.tick resets, tracker currentSince persists) - share path only
2026-09-26 10:29:45 +02:00
SirStone
6fd5fe6328
j127: forced-share allocator (TR_RACK_SHARE, default-off) + allocation batch pre-registration
2026-09-26 10:13:22 +02:00
SirStone
2e336452e6
HeadOn gun colour: red -> pure white (#FFFFFF)
2026-09-26 09:50:08 +02:00
SirStone
e25a00175a
Pattern gun colour: orange -> green (#00CC44 / #66FF99) so it is not confusable with BitBrain's pink
2026-09-26 09:40:22 +02:00
SirStone
2d8b7d7875
j126: read bot settings from a .env file (default ./.env, --env-file flag, TR_ENV_FILE); file wins over shell leftovers, boot report labels (source: .env)
2026-09-26 09:08:39 +02:00
SirStone
8e109bae0b
closing j125: verify movement ship end-to-end (clean build SuccessX, full 16-test guard suite all counts match, real default+revert battles) and restructure gun/movement ledgers outcome-first
2026-09-26 05:06:49 +02:00
SirStone
cf77d0d647
j124: spinner + fair-melee results doc; analyzer convergence tests
2026-09-26 05:05:09 +02:00
SirStone
5fe28574ab
gun j123 Batch 2 outcome + phase-2 final answer: len6 does not replicate (wash on 33 opponents); the shipped Pattern is already tuned on its match-length/history parameters; no default changed
2026-09-26 04:54:40 +02:00
SirStone
1b59b65810
gun j123 Batch 1 outcome + Batch 2 prereg: len6 is the only arm to beat pattern on wins (15 opp), but all 5 arms are wins-positive incl. the bearing-invariant rad_offset; pre-register the 33-opponent confirmation with a structural control
2026-09-26 04:22:49 +02:00
SirStone
6c21dc4c58
j124 fair melee: add strong-field melee harness + driver (legacy champion field)
2026-09-26 04:08:44 +02:00
SirStone
06da7abb0e
j124 spinner claim: add ConstantSpinner adversary + spinner A/B arms, panel, analyzer
2026-09-26 04:05:36 +02:00
SirStone
2a98aba91b
gun j123 Task A+B prereg: expose Pattern's TR_PATTERN_LEN/TR_PATTERN_DEPTH (default parity) and pre-register the 6-arm match-parameter sweep
2026-09-26 04:01:51 +02:00
SirStone
467e07a6a4
gun ledger: fix the arm count in the final answer (six configurations, not seven)
2026-09-26 03:55:32 +02:00
SirStone
2a5ea5c17b
gun j121 Batch 2 outcome: the wider panel kills the damage hint (bitbrain wash, tmhorizon WORSE); onlyPattern confirmed; phase closed
2026-09-26 03:54:52 +02:00
SirStone
c343c00aaf
gun j121 Batch 2: correct the SpinBot path in the wider panel before any battle (it is not under /tmp/tr_bots)
2026-09-26 03:35:11 +02:00
SirStone
3fd6db97e7
movement ship: gate v2 fresh-data primary passed (sign-flip p=0.045, CI [+0.02,+0.58]); default TR_MOVEMENT flipped to strafe
2026-09-26 03:19:33 +02:00
SirStone
087e26955f
gun j121 Batch 1 outcome: onlyPattern CONFIRMED across the 15-opponent panel; pre-register Batch 2 wider-panel calibration
2026-09-26 02:58:41 +02:00
SirStone
514674886d
movement gate v2: pre-register the sign-flip primary test on fresh 300-battle data (before any battle)
2026-09-26 02:44:22 +02:00
SirStone
feefc1912e
movement final: confirmation result and ship decision (gate failed on the sign-test leg; default NOT flipped)
2026-09-26 02:41:08 +02:00
SirStone
1d8143a15e
gun j121 Batch 1: pre-register the 6-arm Pattern-panel tournament and the decision rules
2026-09-26 02:22:38 +02:00
SirStone
ff03e81591
movement final: pre-register the ship criterion before the confirmation battles
2026-09-26 02:21:09 +02:00
SirStone
47ce244740
movement j119 Batch 3+4 results: the reversal/dwell and heat-field axes are a clean negative; nothing beats strafe
2026-09-26 02:18:22 +02:00
SirStone
1256357f07
movement j119 Batch 3+4: pre-register the reversal/dwell and heat-field arms
2026-09-26 01:40:03 +02:00
SirStone
7311aaef5a
movement j119 Task A: make the shipped TFIL heat shape env-overridable (default path byte-identical)
2026-09-26 01:38:51 +02:00
SirStone
c07e6d9599
movement ledger: the post-hoc structure of the strafe win (60 points, both batches)
...
56/60 opponent-level win deltas are non-negative and no opponent family
regresses reproducibly (the one WallAvoider loss reverses in Batch 2).
corr(dwins, d_hit_rate) = -0.09, corr(dwins, d_damage) = +0.38: the aggregate
win is a survival effect, but a per-opponent hit-rate gain does not predict a
per-opponent win gain - so hit rate stays an explanation, never a proxy.
2026-09-26 01:33:24 +02:00
SirStone
44e2d191e3
movement ledger: fix two claims in the Batch-1/2 prose
...
- tfil is 4th of five on round wins, not last (ring is nominally 0.04 lower,
ns) - the Batch-1 commit message overstates one word; the correction is
recorded in the ledger rather than rewritten.
- the Batch-2 direct answer quoted three of four CIs excluding 0; it is four of
four ([+0.04,+0.63], [+0.16,+0.60], [+0.27,+0.89], [+0.22,+0.72]).
- added the cleanest aggression isolation of Batch 1 (ring - ring_notemp, same
engine and heat field, range weighting alone): +41.9 dmg/run, -0.11 wins/run,
+12.8 pp incoming hit rate at 236 vs 395 px.
2026-09-26 01:32:28 +02:00
SirStone
7d3645da5a
movement Batch 2: the strafe win over shipped tfil replicates; the range target decides nothing
...
Same frozen panel, same 3x3 design, new session on commit 8efa627 (no source file
changed since 1984a78 , so the same code), 225 battles, 0 invalid runs. Arms:
tfil, strafe_notilt, strafe_325 + the tilt re-armed at 600px and 250px.
Paired vs tfil: strafe_325 +0.58 wins/run [CI +0.27,+0.89] 11/12 p=0.0063;
strafe_notilt +0.47 [+0.22,+0.72] 10/11 p=0.0117; tilt_600 +0.40 [+0.04,+0.76]
(sign test 8/11 p=0.23, sign-flip p=0.049); tilt_250 +0.38 [+0.07,+0.69] 10/12
p=0.039. Incoming hit rate -5.2..-6.9 pp with 0/15 opponents favouring tfil.
The range TARGET is not the lever: re-arming the tilt moved the achieved
distance from 459px (no steering) to 478px and 415px, and none of the three is
separable on wins. This overturns Batch 1's reading that the tilt costs wins -
the honest statement is that the tilt's win effect is below this design's
resolution. tfil reproduced to within 1.4 pp (40.7% -> 39.3% of rounds), so the
baseline itself is stable across sessions.
Ledger: Batch 2 section, the verbatim analyzer report, a data-driven
what-to-try-next, and the session log.
2026-09-26 01:31:08 +02:00