Gun mixing (TMHorizon+BitBrain) vs DrussGT: clean negative, no dodge disruption

4 arms x 7 runs vs real DrussGT. mix alternates the two guns 476 times/7 runs
(liveness OK) but our bullets are no more varied (power sd / aim-offset sd flat)
and DrussGT's dodge quality is unchanged (miss/tick mix-pat +0.03, p=0.66; MDE
3.8%). mix wins 24/49 = the 49% baseline; the user's 6/10 has P=0.353 at 49%.
New tools/ab/ab_dodge_analyze.py splits the validated per-shot dodge instrument
by arm and adds gun-switch/power/bearing liveness; fixtures committed.
This commit is contained in:
2026-09-24 23:05:12 +02:00
parent d93ce444c0
commit 32a5e72fac
5 changed files with 1272 additions and 0 deletions
+486
View File
@@ -0,0 +1,486 @@
{
"arms": {
"bb": {
"ci": {
"lat_ctrl_abs": [
51.342068468176116,
52.805805223688346
],
"lat_fixed_abs": [
53.391673798672606,
54.727408738794885
],
"miss_per_tick": [
4.593774088337814,
4.716995057710113
]
},
"dodge": {
"hit": 0.09921575779682655,
"lat_ctrl_abs": 52.06310968098528,
"lat_disp_per_tick": 3.595491225896298,
"lat_fixed_abs": 54.02567072842506,
"miss": 118.60437036023144,
"miss_per_tick": 4.657664761142575
},
"guns": {
"counts": {
"BitBrain": 55
},
"runs_with": 7,
"switches": 0
},
"rounds": 49,
"runs": 7,
"shots": 5483,
"variation": {
"aimoff_hist": {
"-60": 1,
"-45": 1,
"-35": 3,
"-30": 6,
"-25": 345,
"-20": 443,
"-15": 529,
"-10": 607,
"-5": 610,
"0": 662,
"5": 577,
"10": 486,
"15": 442,
"20": 482,
"25": 282,
"30": 5,
"40": 1,
"50": 1
},
"aimoff_iqr": 22.82389184815574,
"aimoff_mean": -0.6759743337347359,
"aimoff_sd": 14.329539671665751,
"power_distinct": 647,
"power_hist": {
"0.5": 1416,
"0.52": 22,
"0.56": 22,
"0.6": 22,
"0.62": 24,
"0.71": 23,
"0.86": 22,
"0.9": 25,
"1.0": 3212,
"2.0": 22
},
"power_iqr": 0.5,
"power_mean": 0.8289494984497539,
"power_sd": 0.2477421650874806,
"range_mean": 473.40395357200674
}
},
"mix": {
"ci": {
"lat_ctrl_abs": [
52.149269165916934,
53.05168240489434
],
"lat_fixed_abs": [
53.751035608179855,
55.02334273976535
],
"miss_per_tick": [
4.58467855277936,
4.756884860165204
]
},
"dodge": {
"hit": 0.10057992026096411,
"lat_ctrl_abs": 52.600241347777825,
"lat_disp_per_tick": 3.7068191081033643,
"lat_fixed_abs": 54.393824082815996,
"miss": 117.92160657194027,
"miss_per_tick": 4.671767229918404
},
"guns": {
"counts": {
"BitBrain": 258,
"TMHorizon": 275
},
"runs_with": 7,
"switches": 476
},
"rounds": 49,
"runs": 7,
"shots": 5518,
"variation": {
"aimoff_hist": {
"-30": 38,
"-25": 255,
"-20": 478,
"-15": 524,
"-10": 594,
"-5": 609,
"0": 642,
"5": 581,
"10": 521,
"15": 478,
"20": 521,
"25": 248,
"30": 29
},
"aimoff_iqr": 23.19629241229177,
"aimoff_mean": -0.19128061717982736,
"aimoff_sd": 14.302914943275754,
"power_distinct": 651,
"power_hist": {
"0.1": 61,
"0.5": 1486,
"0.52": 24,
"0.57": 22,
"0.59": 26,
"0.7": 23,
"0.72": 22,
"0.73": 24,
"0.77": 23,
"1.0": 3074
},
"power_iqr": 0.5,
"power_mean": 0.8109788329104748,
"power_sd": 0.2636852717444021,
"range_mean": 469.1328637380008
}
},
"pat": {
"ci": {
"lat_ctrl_abs": [
50.37731936384525,
52.32848907082813
],
"lat_fixed_abs": [
52.45312790721141,
55.0568598598361
],
"miss_per_tick": [
4.555371361130827,
4.715270176768353
]
},
"dodge": {
"hit": 0.10705334765485142,
"lat_ctrl_abs": 51.36125322431849,
"lat_disp_per_tick": 3.5758709102416977,
"lat_fixed_abs": 53.89836250020473,
"miss": 117.0289207480357,
"miss_per_tick": 4.641754269524353
},
"guns": {
"counts": {
"Pattern": 54
},
"runs_with": 7,
"switches": 0
},
"rounds": 49,
"runs": 7,
"shots": 5586,
"variation": {
"aimoff_hist": {
"-30": 3,
"-25": 319,
"-20": 440,
"-15": 558,
"-10": 620,
"-5": 657,
"0": 671,
"5": 605,
"10": 467,
"15": 462,
"20": 470,
"25": 312,
"30": 1,
"45": 1
},
"aimoff_iqr": 22.547808248755246,
"aimoff_mean": -0.5000302815020886,
"aimoff_sd": 14.161575308720636,
"power_distinct": 601,
"power_hist": {
"0.1": 116,
"0.5": 1470,
"0.51": 22,
"0.55": 27,
"0.6": 25,
"0.65": 28,
"0.68": 27,
"0.71": 24,
"0.97": 23,
"1.0": 3163
},
"power_iqr": 0.5,
"power_mean": 0.8101581095596133,
"power_sd": 0.26204101790031575,
"range_mean": 469.974151732332
}
},
"tmh": {
"ci": {
"lat_ctrl_abs": [
52.10724351808622,
53.26490501694674
],
"lat_fixed_abs": [
53.429352471589546,
55.53570708426935
],
"miss_per_tick": [
4.677616757831026,
4.7978133827120795
]
},
"dodge": {
"hit": 0.09913236108547166,
"lat_ctrl_abs": 52.70125777256337,
"lat_disp_per_tick": 3.632106164750479,
"lat_fixed_abs": 54.584278804670376,
"miss": 121.61307223099864,
"miss_per_tick": 4.736555181980398
},
"guns": {
"counts": {
"TMHorizon": 54
},
"runs_with": 7,
"switches": 0
},
"rounds": 49,
"runs": 7,
"shots": 5417,
"variation": {
"aimoff_hist": {
"-35": 2,
"-30": 49,
"-25": 291,
"-20": 485,
"-15": 517,
"-10": 559,
"-5": 625,
"0": 640,
"5": 561,
"10": 519,
"15": 442,
"20": 483,
"25": 215,
"30": 29
},
"aimoff_iqr": 23.130255387415104,
"aimoff_mean": -0.8124060010024183,
"aimoff_sd": 14.316286775899426,
"power_distinct": 594,
"power_hist": {
"0.5": 1434,
"0.52": 20,
"0.54": 22,
"0.57": 22,
"0.63": 21,
"0.74": 20,
"0.78": 22,
"0.81": 20,
"0.82": 25,
"1.0": 3161
},
"power_iqr": 0.5,
"power_mean": 0.8281302012183867,
"power_sd": 0.25254388017875856,
"range_mean": 479.94567493925
}
}
},
"commit": "f91e12196537c6c1e64353160e8885445e3e222b",
"contrasts": {
"bb-pat": {
"hit": {
"method": "exact",
"perm_p": 0.02767258957180309,
"pooled": -0.007837589858024865,
"strat": -0.007832565743913025,
"strat_perm_p": 0.02825517040489368
},
"lat_ctrl_abs": {
"method": "exact",
"perm_p": 0.3067288086221963,
"pooled": 0.7018564566667891,
"strat": 0.7377803893237963,
"strat_perm_p": 0.2892513836294786
},
"lat_fixed_abs": {
"method": "exact",
"perm_p": 0.8858141567142441,
"pooled": 0.12730822822030063,
"strat": 0.12122394700330835,
"strat_perm_p": 0.8904748033789688
},
"miss": {
"method": "exact",
"perm_p": 0.3632391494319837,
"pooled": 1.5754496121956834,
"strat": 1.3754074032538215,
"strat_perm_p": 0.3282842994465482
},
"miss_per_tick": {
"method": "exact",
"perm_p": 0.7850276725895718,
"pooled": 0.015910491618221556,
"strat": 0.019163315366865954,
"strat_perm_p": 0.7372560442761433
}
},
"mix-bb": {
"hit": {
"method": "exact",
"perm_p": 0.729099912612875,
"pooled": 0.0013641624641375638,
"strat": 0.0009968895263179599,
"strat_perm_p": 0.7931838042528401
},
"lat_ctrl_abs": {
"method": "exact",
"perm_p": 0.27993009030002913,
"pooled": 0.5371316667925683,
"strat": 0.5458010552403781,
"strat_perm_p": 0.2869210602971162
},
"lat_fixed_abs": {
"method": "exact",
"perm_p": 0.4838333818817361,
"pooled": 0.36815335439101204,
"strat": 0.4433817857043871,
"strat_perm_p": 0.3865423827556073
},
"miss": {
"method": "exact",
"perm_p": 0.7407515292746869,
"pooled": -0.682763788291112,
"strat": 0.048289040397066954,
"strat_perm_p": 0.9790270900087387
},
"miss_per_tick": {
"method": "exact",
"perm_p": 0.8048354209146519,
"pooled": 0.014102468775829102,
"strat": 0.003432018973777013,
"strat_perm_p": 0.9522283716865715
}
},
"mix-pat": {
"hit": {
"method": "exact",
"perm_p": 0.12962423536265658,
"pooled": -0.006473427393887302,
"strat": -0.006845548923353688,
"strat_perm_p": 0.11505971453539178
},
"lat_ctrl_abs": {
"method": "exact",
"perm_p": 0.056219050393242063,
"pooled": 1.2389881234593574,
"strat": 1.2737305776097125,
"strat_perm_p": 0.048062918729973786
},
"lat_fixed_abs": {
"method": "exact",
"perm_p": 0.5817069618409554,
"pooled": 0.4954615826113127,
"strat": 0.5615935091004379,
"strat_perm_p": 0.5321875910282552
},
"miss": {
"method": "exact",
"perm_p": 0.6242353626565686,
"pooled": 0.8926858239045714,
"strat": 1.3399115632023169,
"strat_perm_p": 0.33177978444509176
},
"miss_per_tick": {
"method": "exact",
"perm_p": 0.6644334401398194,
"pooled": 0.03001296039405066,
"strat": 0.01991009043907127,
"strat_perm_p": 0.7489076609379551
}
},
"mix-tmh": {
"hit": {
"method": "exact",
"perm_p": 0.7040489367899796,
"pooled": 0.001447559175492455,
"strat": 0.0003077780829409617,
"strat_perm_p": 0.9440722400233033
},
"lat_ctrl_abs": {
"method": "exact",
"perm_p": 0.7984270317506554,
"pooled": -0.10101642478556272,
"strat": -0.06964226580464877,
"strat_perm_p": 0.8584328575589864
},
"lat_fixed_abs": {
"method": "exact",
"perm_p": 0.786192834255753,
"pooled": -0.1904547218543371,
"strat": -0.053909913492993525,
"strat_perm_p": 0.9289251383629479
},
"miss": {
"method": "exact",
"perm_p": 0.07893970288377512,
"pooled": -3.6914656590583093,
"strat": -2.1077191144440586,
"strat_perm_p": 0.1808913486746286
},
"miss_per_tick": {
"method": "exact",
"perm_p": 0.28051267113311973,
"pooled": -0.06478795206199361,
"strat": -0.07950123064257822,
"strat_perm_p": 0.1814739295077192
}
},
"tmh-pat": {
"hit": {
"method": "exact",
"perm_p": 0.01602097290999126,
"pooled": -0.007920986569379757,
"strat": -0.006327715923026292,
"strat_perm_p": 0.06845324788814448
},
"lat_ctrl_abs": {
"method": "exact",
"perm_p": 0.04981066122924556,
"pooled": 1.34000454824492,
"strat": 1.3555453008528295,
"strat_perm_p": 0.04573259539761142
},
"lat_fixed_abs": {
"method": "exact",
"perm_p": 0.4698514418875619,
"pooled": 0.6859163044656498,
"strat": 0.631144398873892,
"strat_perm_p": 0.49257209437809496
},
"miss": {
"method": "exact",
"perm_p": 0.011360326245266531,
"pooled": 4.584151482962881,
"strat": 3.624637348567873,
"strat_perm_p": 0.01893387707544422
},
"miss_per_tick": {
"method": "exact",
"perm_p": 0.10806874453830469,
"pooled": 0.09480091245604427,
"strat": 0.10491883548626751,
"strat_perm_p": 0.06728808622196329
}
}
},
"rounds": 7,
"runs": 7
}