From eac92c3e449b216040ba0aab4aea4005dd97601c Mon Sep 17 00:00:00 2001 From: "Claude (auto-RE)" Date: Thu, 13 Aug 2026 18:12:20 +0000 Subject: [PATCH] =?UTF-8?q?re(flight):=20withdraw=20the=20roll=20result=20?= =?UTF-8?q?=E2=80=94=20the=20probe=20was=20measuring=20pitch=20as=20much?= =?UTF-8?q?=20as=20roll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-running roll with 5 s settles and in-run clock brackets: this run's clock: TIME 00:34.93 -> 00:45.97 = 11.04 s game in 7.98 s wall = 1.383 min speed: 90.6 deg/wall-s /1.383 -> 65.5 deg/game-s (AV_Roll_Min 200) max speed: 59.1 /1.383 -> 42.7 (AV_Roll_Max 125) The corrected numbers are within a few per cent of the PITCH run's 67.8 and 40.9 — two different stick axes cannot produce the same rates, so the probe is not separating them. Cause: watching a non-forward matrix row sees any rotation that moves that row, and pitch moves it as much as roll. The correct measure is rotation ABOUT the forward axis (project the row onto the plane perpendicular to forward and track that angle). So "roll shows no speed dependence, unlike pitch" is withdrawn: it rested on 2 s settles and a row that mixes axes, and the two runs disagree with each other (144/150 then, 90.6/59.1 now). AV_Roll_{Min,Max} are not confirmed and the axis question is open. The clock ratio is now measured three times in three flights: 1.260, 1.311, 1.383 — a property of the moment, not the machine, so every rate probe must bracket its own phases. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9 --- docs/re/captures/roll-gametime.csv | 314 +++++++++++++++++++++++++++++ docs/re/flight-speed-law.md | 36 ++++ tools/re-capture/roll_gametime.py | 74 +++++++ 3 files changed, 424 insertions(+) create mode 100644 docs/re/captures/roll-gametime.csv create mode 100644 tools/re-capture/roll_gametime.py diff --git a/docs/re/captures/roll-gametime.csv b/docs/re/captures/roll-gametime.csv new file mode 100644 index 0000000..fe4120b --- /dev/null +++ b/docs/re/captures/roll-gametime.csv @@ -0,0 +1,314 @@ +phase,t,fx,fy,fz +slow,0.046,5.36441810913306e-07,0.8829469811387421,-0.4694727132621171 +slow,0.124,-0.0037028938908542333,0.8829408973863202,-0.4694695520472787 +slow,0.175,-0.029433192564468726,0.8825644180942943,-0.4692693630414654 +slow,0.225,-0.047907995026344505,0.8819330671344229,-0.46893377902154315 +slow,0.276,-0.05494452988794276,0.8816131314630001,-0.4687636772056853 +slow,0.327,-0.05494452988794276,0.8816131314630001,-0.4687636772056853 +slow,0.377,-0.05494452988794276,0.8816131314630001,-0.4687636772056853 +slow,0.427,-0.05494452988794276,0.8816131314630001,-0.4687636772056853 +slow,0.478,-0.2805405845010285,0.8474894135274412,-0.4506203217862406 +slow,0.529,-0.3464401476183601,0.828267481843762,-0.440400048408674 +slow,0.579,-0.4933270963841563,0.7680254218881261,-0.4083691066997395 +slow,0.629,-0.5646325672888053,0.7287328660233411,-0.3874770624621025 +slow,0.679,-0.663984471662157,0.6602195443081346,-0.35104810881855686 +slow,0.729,-0.6795143538879752,0.6477839998044589,-0.3444359627819725 +slow,0.782,-0.6795143538879752,0.6477839998044589,-0.3444359627819725 +slow,0.832,-0.6795143538879752,0.6477839998044589,-0.3444359627819725 +slow,0.883,-0.6795143538879752,0.6477839998044589,-0.3444359627819725 +slow,0.933,-0.8636404059341753,0.44509990979031433,-0.23666710701427646 +slow,0.983,-0.9034235025038042,0.37856180077666735,-0.20128819666459757 +slow,1.033,-0.9208475303349151,0.34428010688112226,-0.18306019196431236 +slow,1.084,-0.9823258963987413,0.1652676638242847,-0.08787737227792251 +slow,1.134,-0.9946318488171882,0.09136350259329508,-0.048581845502070904 +slow,1.188,-0.9965908416220451,0.07284426607901787,-0.03873509125422061 +slow,1.238,-0.9965908416220451,0.07284426607901787,-0.03873509125422061 +slow,1.288,-0.9965908416220451,0.07284426607901787,-0.03873509125422061 +slow,1.338,-0.9965908416220451,0.07284426607901787,-0.03873509125422061 +slow,1.388,-0.9887775514835899,-0.13190930729666128,0.0701347868794932 +slow,1.438,-0.9556714469692192,-0.2599717478297875,0.13822726134190855 +slow,1.489,-0.8922483691415248,-0.39869133958378805,0.21198599837058513 +slow,1.539,-0.8508838444950022,-0.46386065972493185,0.24663732794724316 +slow,1.589,-0.7907927164969744,-0.5404386826976731,0.28735502393266027 +slow,1.64,-0.7777418936805442,-0.5550070379438635,0.29510122779646286 +slow,1.691,-0.7777418936805442,-0.5550070379438635,0.29510122779646286 +slow,1.741,-0.7777418936805442,-0.5550070379438635,0.29510122779646286 +slow,1.791,-0.5952358692207049,-0.7094937017300517,0.377243882917219 +slow,1.841,-0.5604049203743158,-0.7312739567343891,0.38882480042081646 +slow,1.892,-0.45017479352935263,-0.7884196750580088,0.4192100562393852 +slow,1.942,-0.3527042657551637,-0.8262047790273792,0.4393009947979067 +slow,1.993,-0.2515210843607131,-0.8545622769363128,0.454379201724106 +slow,2.048,-0.21020554253366847,-0.8632198721332542,0.4589826600672126 +slow,2.098,-0.21020554253366847,-0.8632198721332542,0.4589826600672126 +slow,2.148,-0.21020554253366847,-0.8632198721332542,0.4589826600672126 +slow,2.199,-0.21020554253366847,-0.8632198721332542,0.4589826600672126 +slow,2.249,0.06423144170165734,-0.8811238583231025,0.46850300766455694 +slow,2.3,0.12787323617667282,-0.8756985100693347,0.46561846498184756 +slow,2.35,0.2327336093496518,-0.858701653919306,0.45658135817763307 +slow,2.423,0.3547279040834424,-0.8255283263615021,0.43894315855170307 +slow,2.479,0.5260315144840211,-0.7509151987562808,0.3992708479797423 +slow,2.529,0.5961056688939317,-0.7089229256787852,0.3769433869423229 +slow,2.581,0.5961056688939317,-0.7089229256787852,0.3769433869423229 +slow,2.631,0.5961056688939317,-0.7089229256787852,0.3769433869423229 +slow,2.681,0.5961056688939317,-0.7089229256787852,0.3769433869423229 +slow,2.732,0.5961056688939317,-0.7089229256787852,0.3769433869423229 +slow,2.782,0.8295924682130262,-0.4930097696572142,0.26214061819328877 +slow,2.832,0.8741827941510458,-0.4287555674072037,0.22797610801923318 +slow,2.882,0.9439064628362973,-0.29155959525346875,0.15502771310802138 +slow,2.932,0.9571066736003423,-0.25582037216180104,0.1360248232371042 +slow,2.982,0.9861968747582776,-0.14619466320861924,0.07773573609560003 +slow,3.032,0.9966905224322332,-0.07177339798264935,0.03816519141555759 +slow,3.083,0.9992422961997571,-0.03436404433766335,0.01827418786692905 +slow,3.133,0.9992422961997571,-0.03436404433766335,0.01827418786692905 +slow,3.184,0.9992422961997571,-0.03436404433766335,0.01827418786692905 +slow,3.234,0.9992422961997571,-0.03436404433766335,0.01827418786692905 +slow,3.286,0.9667885938062846,0.22566239526859874,-0.11998457504073406 +slow,3.336,0.9415539672577656,0.2974325173987048,-0.15814557956209666 +slow,3.386,0.8910494227865149,0.4007762840154738,-0.21309457131181636 +slow,3.437,0.8493271610881868,0.46607942161808097,-0.24781716280765573 +slow,3.487,0.761860256786668,0.5719223062697806,-0.30409509157499987 +slow,3.537,0.748009652602088,0.586002088637891,-0.3115816293142661 +slow,3.587,0.748009652602088,0.586002088637891,-0.3115816293142661 +slow,3.637,0.748009652602088,0.586002088637891,-0.3115816293142661 +slow,3.688,0.591663947524308,0.7118191730405439,-0.3784801686902885 +slow,3.738,0.539041368473937,0.7436887413829951,-0.3954256681273002 +slow,3.789,0.40803721926756004,0.8061006144181252,-0.4286110441030633 +slow,3.839,0.36886970856393964,0.8206831516383724,-0.4363648733810532 +slow,3.89,0.24776263895916018,0.8554178600934551,-0.4548339910001527 +slow,3.94,0.16475926423798679,0.8708809062626716,-0.46305597065027154 +slow,3.992,0.14387633165971442,0.8737609544059406,-0.46458733919873835 +slow,4.042,0.14387633165971442,0.8737609544059406,-0.46458733919873835 +slow,4.093,0.14387633165971442,0.8737609544059406,-0.46458733919873835 +slow,4.143,0.14387633165971442,0.8737609544059406,-0.46458733919873835 +slow,4.196,-0.1733023236078747,0.869586949506304,-0.46236872934967393 +slow,4.247,-0.21515127447977428,0.86226908085857,-0.4584778743680502 +slow,4.297,-0.3579950095311995,0.8244282743035451,-0.4383578374794213 +slow,4.347,-0.3974270950667179,0.8102218773848151,-0.43080414751236507 +slow,4.397,-0.5648254471144367,0.7286167551161777,-0.3874142982079373 +slow,4.448,-0.6161812577464959,0.6954125799901635,-0.36975938283344584 +slow,4.498,-0.6161812577464959,0.6954125799901635,-0.36975938283344584 +slow,4.55,-0.6161812577464959,0.6954125799901635,-0.36975938283344584 +slow,4.6,-0.6161812577464959,0.6954125799901635,-0.36975938283344584 +slow,4.65,-0.7949436150360499,0.5356686009745564,-0.2848223987740045 +slow,4.706,-0.8320602692300713,0.4897569720337153,-0.26041086135787 +slow,4.756,-0.9052591628184888,0.37512792417883484,-0.1994614966213956 +slow,4.824,-0.9519766029552919,0.2703318015873179,-0.14374026741403262 +slow,4.874,-0.983175920401433,0.1612793283684674,-0.08575597812287565 +slow,4.925,-0.992798606527993,0.10577208861815067,-0.05624226298282666 +slow,4.975,-0.992798606527993,0.10577208861815067,-0.05624226298282666 +slow,5.025,-0.992798606527993,0.10577208861815067,-0.05624226298282666 +slow,5.075,-0.992798606527993,0.10577208861815067,-0.05624226298282666 +slow,5.125,-0.9909352442124001,-0.11861635420392577,0.06306744241746298 +slow,5.177,-0.971089850817662,-0.21077290020723444,0.11206822108502636 +slow,5.227,-0.9473137584186095,-0.2828150426309014,0.15037385002881865 +slow,5.278,-0.8692337732689488,-0.43653100062660777,0.23210629655517379 +slow,5.329,-0.8474958640779253,-0.4686708632974702,0.24919546999657635 +slow,5.379,-0.7866667561433955,-0.5451126777938068,0.2898406170420097 +slow,5.43,-0.7734621510586307,-0.5596500718853581,0.29757032432430053 +slow,5.48,-0.7734621510586307,-0.5596500718853581,0.29757032432430053 +slow,5.531,-0.7734621510586307,-0.5596500718853581,0.29757032432430053 +slow,5.581,-0.6062043205372735,-0.7022162337138214,0.3733747217886052 +slow,5.632,-0.5541510145645213,-0.734979908569316,0.39079558218658444 +slow,5.682,-0.42418330732008847,-0.7995763915406578,0.42514246539461586 +slow,5.732,-0.3852348981801229,-0.8148002884614528,0.4332373058120499 +slow,5.783,-0.243946035449459,-0.8562723940695657,0.45528883024171124 +slow,5.833,-0.16070912377840446,-0.8714704720337134,0.4633700399332204 +slow,5.883,-0.0975990723650993,-0.8787317852366855,0.4672310677686361 +slow,5.934,-0.0975990723650993,-0.8787317852366855,0.4672310677686361 +slow,5.984,-0.0975990723650993,-0.8787317852366855,0.4672310677686361 +slow,6.034,-0.0975990723650993,-0.8787317852366855,0.4672310677686361 +slow,6.085,0.1775602464395945,-0.8689168079517865,0.46201292161928603 +slow,6.135,0.2607328887465965,-0.8524065164179079,0.45323447738906825 +slow,6.185,0.36194842063416144,-0.8230812569371999,0.4376420743931222 +slow,6.235,0.4398997578876258,-0.7929274597606337,0.4216091158501638 +slow,6.285,0.5682409772730201,-0.7265432946265349,0.38631209246025844 +slow,6.336,0.6359981125758746,-0.6813614183433645,0.36228858440895406 +slow,6.386,0.7140739082487315,-0.6181244196428086,0.32866495919039396 +slow,6.436,0.7140739082487315,-0.6181244196428086,0.32866495919039396 +slow,6.487,0.7140739082487315,-0.6181244196428086,0.32866495919039396 +slow,6.539,0.7140739082487315,-0.6181244196428086,0.32866495919039396 +slow,6.589,0.7140739082487315,-0.6181244196428086,0.32866495919039396 +slow,6.639,0.9065680252911018,-0.37265567940138744,0.1981468145837393 +slow,6.691,0.9392685544638382,-0.3030117042642596,0.16111638549285018 +slow,6.741,0.965104771584189,-0.2312113232646016,0.12293943167130032 +slow,6.792,0.9973294370055789,-0.06448454199620153,0.034289035064803325 +slow,6.842,0.9999278161305012,0.010609508165090861,-0.005639225565755396 +slow,6.892,0.9930188796365541,0.1041492959551682,-0.055375345031933365 +slow,6.943,0.9930188796365541,0.1041492959551682,-0.055375345031933365 +slow,6.993,0.9930188796365541,0.1041492959551682,-0.055375345031933365 +slow,7.043,0.9930188796365541,0.1041492959551682,-0.055375345031933365 +slow,7.093,0.9386688966024551,0.30445842560916364,-0.16188196201775823 +slow,7.144,0.9311374675345754,0.32198368527382176,-0.17120024232104936 +slow,7.223,0.8558381442539132,0.4566995610987047,-0.24283035587065402 +slow,7.273,0.7831408512856074,0.5490564200014606,-0.29193741572952536 +slow,7.324,0.7560444192777931,0.5779075266990185,-0.30727793064834297 +slow,7.374,0.6509683314574719,0.6702500769547218,-0.3563777010163019 +slow,7.425,0.6509683314574719,0.6702500769547218,-0.3563777010163019 +slow,7.475,0.6509683314574719,0.6702500769547218,-0.3563777010163019 +slow,7.525,0.6509683314574719,0.6702500769547218,-0.3563777010163019 +slow,7.576,0.4196485397802218,0.8014397844240222,-0.42613304847512623 +slow,7.626,0.3806332297410603,0.8164846784795214,-0.43413259981839836 +slow,7.676,0.23917773281080557,0.8573206036655484,-0.4558458014044032 +slow,7.727,0.13481190457623585,0.8748870865403633,-0.46518634566100775 +slow,7.777,0.007896542705130004,0.8829196865934407,-0.4694576356169389 +slow,7.828,-0.055613100836188686,0.8815807152851224,-0.46874580046412767 +slow,7.878,-0.055613100836188686,0.8815807152851224,-0.46874580046412767 +slow,7.934,-0.055613100836188686,0.8815807152851224,-0.46874580046412767 +slow,7.984,-0.055613100836188686,0.8815807152851224,-0.46874580046412767 +fast,0.044,-0.468564632951404,0.7800211366930896,-0.4147459596658374 +fast,0.094,-0.468564632951404,0.7800211366930896,-0.4147459596658374 +fast,0.147,-0.6532919035228096,0.6684843531374839,-0.3554410758507007 +fast,0.197,-0.6740804102157376,0.6521956099667656,-0.346780170862553 +fast,0.253,-0.7406633321896331,0.593230936921181,-0.31542809613185546 +fast,0.303,-0.8067414530300762,0.521736964591286,-0.27741443318975423 +fast,0.354,-0.8364927453434133,0.4838350279608412,-0.25726164250811173 +fast,0.404,-0.8572846408021899,0.4545782991663938,-0.24170563620165925 +fast,0.454,-0.8572846408021899,0.4545782991663938,-0.24170563620165925 +fast,0.505,-0.8572846408021899,0.4545782991663938,-0.24170563620165925 +fast,0.555,-0.8572846408021899,0.4545782991663938,-0.24170563620165925 +fast,0.605,-0.9267948315707897,0.33160599382699485,-0.17632017760790408 +fast,0.656,-0.9368960066831657,0.30868477952212847,-0.16413281071288688 +fast,0.706,-0.9657135503823218,0.22922111730247924,-0.12188116339522719 +fast,0.756,-0.9779586730613649,0.18435730681493703,-0.09802661479413445 +fast,0.807,-0.9943971478546243,0.09333425614443461,-0.04962891262715385 +fast,0.857,-0.9977694134078435,0.058940059911640835,-0.031341139184466044 +fast,0.907,-0.9977694134078435,0.058940059911640835,-0.031341139184466044 +fast,0.957,-0.9977694134078435,0.058940059911640835,-0.031341139184466044 +fast,1.007,-0.9977694134078435,0.058940059911640835,-0.031341139184466044 +fast,1.057,-0.9960740012037427,-0.0781633335984552,0.041558120827859354 +fast,1.108,-0.9915869770276278,-0.11429142880777064,0.06076788864432451 +fast,1.158,-0.9830488997220782,-0.16188358013218335,0.08607303433014432 +fast,1.208,-0.9654882699749504,-0.22996141302144335,0.12227080216453375 +fast,1.258,-0.9421438137516855,-0.2959725872352957,0.15736982498139357 +fast,1.308,-0.9183006336633192,-0.3495452280775043,0.1858549965478247 +fast,1.359,-0.9183006336633192,-0.3495452280775043,0.1858549965478247 +fast,1.409,-0.9183006336633192,-0.3495452280775043,0.1858549965478247 +fast,1.459,-0.9183006336633192,-0.3495452280775043,0.1858549965478247 +fast,1.509,-0.852788869570223,-0.4611250554621998,0.24518325220561926 +fast,1.561,-0.8457836830587759,-0.47107600317640114,0.25047427153877355 +fast,1.611,-0.7990683904573951,-0.5308639797392242,0.28226431298919213 +fast,1.661,-0.7576916738262323,-0.5762231745752734,0.30638240892191654 +fast,1.712,-0.7039218688816332,-0.6271380249228601,0.3334544949555229 +fast,1.763,-0.6851467559103143,-0.6431437685849701,0.34196493357637503 +fast,1.813,-0.6560905528050488,-0.6663450550269401,0.3543013606537654 +fast,1.863,-0.6560905528050488,-0.6663450550269401,0.3543013606537654 +fast,1.913,-0.6560905528050488,-0.6663450550269401,0.3543013606537654 +fast,1.964,-0.6560905528050488,-0.6663450550269401,0.3543013606537654 +fast,2.014,-0.5163993954213524,-0.7561103236758572,0.40203089786638574 +fast,2.064,-0.4546015920025061,-0.7864369179669822,0.4181559118407643 +fast,2.142,-0.3807299710798536,-0.8164494585717856,0.4341140065920148 +fast,2.193,-0.2820279695634007,-0.8471052048351421,0.45041424969150085 +fast,2.244,-0.23157561174253732,-0.8589461445197458,0.4567102548232671 +fast,2.294,-0.1805137900613878,-0.8684427065467883,0.46175971786564723 +fast,2.344,-0.1805137900613878,-0.8684427065467883,0.46175971786564723 +fast,2.395,-0.1805137900613878,-0.8684427065467883,0.46175971786564723 +fast,2.445,-0.1805137900613878,-0.8684427065467883,0.46175971786564723 +fast,2.496,-0.024830674288472077,-0.8826749954107264,0.46932748703975774 +fast,2.55,0.016627909997720097,-0.8828251361547534,0.4694073833914936 +fast,2.6,0.111726663405662,-0.8774189869035709,0.46653303645652927 +fast,2.651,0.13780214292537876,-0.874523580821017,0.4649936300565413 +fast,2.701,0.2656103428096974,-0.8512318793390828,0.45260958163672177 +fast,2.751,0.31554354506824306,-0.8378380863926662,0.4454880606207544 +fast,2.801,0.34018885207653954,-0.8302853882293821,0.4414722177166199 +fast,2.851,0.34018885207653954,-0.8302853882293821,0.4414722177166199 +fast,2.901,0.34018885207653954,-0.8302853882293821,0.4414722177166199 +fast,2.952,0.34018885207653954,-0.8302853882293821,0.4414722177166199 +fast,3.003,0.4940800181283668,-0.7676483628437457,0.4081677678474743 +fast,3.053,0.5530560650928253,-0.7356216755844609,0.39113902806336104 +fast,3.103,0.5974397882275826,-0.7080469991770619,0.3764772853691691 +fast,3.154,0.6185047351113914,-0.6938025932733614,0.3689035838968582 +fast,3.206,0.6881042365676635,-0.6406762784960411,0.34065593461746135 +fast,3.256,0.7514898864756772,-0.5825188958027513,0.3097332506488721 +fast,3.306,0.7931845845529396,-0.5376975001965116,0.2859014045261112 +fast,3.357,0.8009798300561773,-0.5286119824350076,0.28107060299737585 +fast,3.407,0.8009798300561773,-0.5286119824350076,0.28107060299737585 +fast,3.458,0.8009798300561773,-0.5286119824350076,0.28107060299737585 +fast,3.508,0.8009798300561773,-0.5286119824350076,0.28107060299737585 +fast,3.566,0.9079615585910537,-0.37000119040604634,0.19673567856139682 +fast,3.618,0.9289873638512246,-0.3267879327407989,0.1737588122074601 +fast,3.668,0.951171266364975,-0.27253270223930237,0.14491082862158244 +fast,3.718,0.97558673482976,-0.1939070387891802,0.10310471925289769 +fast,3.768,0.9897808982513759,-0.1259042544228822,0.06694693551550773 +fast,3.819,0.9931410372296491,-0.10323546390051833,0.05489370786949623 +fast,3.869,0.9931410372296491,-0.10323546390051833,0.05489370786949623 +fast,3.943,0.9931410372296491,-0.10323546390051833,0.05489370786949623 +fast,3.993,0.9999376400959273,0.009861411882843249,-0.005241037594265275 +fast,4.045,0.998654861608302,0.04578216735335978,-0.024340512289846263 +fast,4.095,0.992907801560002,0.10497188750958387,-0.05581218893717397 +fast,4.145,0.9853453521738103,0.15060635068109599,-0.08007661383945096 +fast,4.195,0.9656808627762835,0.22933012769607466,-0.12193508026222302 +fast,4.245,0.9584524128068335,0.25186373612958607,-0.13391650685261142 +fast,4.295,0.9422656297525576,0.295670151705548,-0.15720891952250804 +fast,4.346,0.9422656297525576,0.295670151705548,-0.15720891952250804 +fast,4.396,0.9422656297525576,0.295670151705548,-0.15720891952250804 +fast,4.446,0.9422656297525576,0.295670151705548,-0.15720891952250804 +fast,4.496,0.872076362854367,0.43208850957625344,-0.22974406900477443 +fast,4.547,0.8580093568921251,0.45351256088827063,-0.24113544036935863 +fast,4.598,0.8132252153454199,0.5138310229603692,-0.2732076663819958 +fast,4.648,0.7815435931024417,0.5508278891839419,-0.29287923889836937 +fast,4.699,0.7210023605142103,0.6118235759463857,-0.32531140165864775 +fast,4.752,0.7119253398407421,0.6200549034607505,-0.32968807559104 +fast,4.802,0.7119253398407421,0.6200549034607505,-0.32968807559104 +fast,4.852,0.7119253398407421,0.6200549034607505,-0.32968807559104 +fast,4.902,0.7119253398407421,0.6200549034607505,-0.32968807559104 +fast,4.952,0.5717137662325098,0.7244172953808695,-0.38517911632551577 +fast,5.003,0.5489901411529138,0.7379931951737293,-0.392397590199244 +fast,5.053,0.4917898196021908,0.7687948374153668,-0.40877533107946273 +fast,5.104,0.42168183785580987,0.8006073549916201,-0.42569036958318496 +fast,5.154,0.37379846714844805,0.8189426822227043,-0.43543953563193305 +fast,5.204,0.33726198026341786,0.8312163487333023,-0.44196576594491466 +fast,5.255,0.33726198026341786,0.8312163487333023,-0.44196576594491466 +fast,5.306,0.33726198026341786,0.8312163487333023,-0.44196576594491466 +fast,5.357,0.33726198026341786,0.8312163487333023,-0.44196576594491466 +fast,5.407,0.33726198026341786,0.8312163487333023,-0.44196576594491466 +fast,5.459,0.13407634499561424,0.8749752241040766,-0.46523315758513817 +fast,5.509,0.1067327874409669,0.8779037141803553,-0.4667902962931195 +fast,5.561,0.02627950826709677,0.8826423614597066,-0.46930997134311153 +fast,5.611,-0.05263072139273397,0.8817235042090142,-0.4688215751125975 +fast,5.662,-0.10470500798344481,0.8780938562969806,-0.46689189416468185 +fast,5.712,-0.14352498907655858,0.8738056992414621,-0.46461185680491773 +fast,5.762,-0.14352498907655858,0.8738056992414621,-0.46461185680491773 +fast,5.812,-0.14352498907655858,0.8738056992414621,-0.46461185680491773 +fast,5.862,-0.14352498907655858,0.8738056992414621,-0.46461185680491773 +fast,5.912,-0.295103523640452,0.843625197837987,-0.4485648625425387 +fast,5.962,-0.33420756849144506,0.8321770526698412,-0.44247785726832983 +fast,6.013,-0.4219355057458717,0.8005024328118661,-0.42563632839932636 +fast,6.063,-0.44551813189673,0.790478394286142,-0.42030643858743166 +fast,6.113,-0.5364964099008817,0.7451210147911475,-0.396189696332547 +fast,6.163,-0.5798139907491607,0.719379824283596,-0.38250281638863076 +fast,6.213,-0.6213904831858549,0.6917895911437915,-0.3678328818786537 +fast,6.265,-0.6213904831858549,0.6917895911437915,-0.3678328818786537 +fast,6.316,-0.6213904831858549,0.6917895911437915,-0.3678328818786537 +fast,6.366,-0.6213904831858549,0.6917895911437915,-0.3678328818786537 +fast,6.416,-0.6213904831858549,0.6917895911437915,-0.3678328818786537 +fast,6.467,-0.7697685939313547,0.5636049336495432,-0.2996761427989206 +fast,6.517,-0.8188294015799512,0.5068436537072459,-0.26949568049397077 +fast,6.567,-0.8407379772940358,0.4780642012631092,-0.2541933771879171 +fast,6.618,-0.8928806068283204,0.39758464497224594,-0.21140168408076437 +fast,6.668,-0.904333371419307,0.3768648333400775,-0.20038475672801448 +fast,6.719,-0.9150935727512862,0.35604033442654803,-0.18931200007056712 +fast,6.769,-0.9150935727512862,0.35604033442654803,-0.18931200007056712 +fast,6.819,-0.9150935727512862,0.35604033442654803,-0.18931200007056712 +fast,6.87,-0.9150935727512862,0.35604033442654803,-0.18931200007056712 +fast,6.92,-0.9695072843499856,0.21637647177545588,-0.11505150174735601 +fast,6.97,-0.9840519374844526,0.15705915122674283,-0.08351171983039263 +fast,7.021,-0.9950416541582717,0.08781629148940584,-0.04669481169271156 +fast,7.071,-0.9994288190771032,0.029837554381306492,-0.015866819047602072 +fast,7.122,-0.9990051683116948,-0.03937536594069818,0.020934522768823672 +fast,7.172,-0.9983402523657028,-0.05085064211870806,0.027036136974427062 +fast,7.222,-0.9983402523657028,-0.05085064211870806,0.027036136974427062 +fast,7.272,-0.9983402523657028,-0.05085064211870806,0.027036136974427062 +fast,7.322,-0.9983402523657028,-0.05085064211870806,0.027036136974427062 +fast,7.372,-0.9773662273888087,-0.18679204232103552,0.09931762424315102 +fast,7.423,-0.9642049478456077,-0.23412130178924356,0.12448306952577433 +fast,7.473,-0.9484068324824643,-0.27994440727138714,0.14884760306451283 +fast,7.545,-0.9099733991029075,-0.36612944116866886,0.194673175436727 +fast,7.595,-0.8747228862138969,-0.42789759461639953,0.22751597934019752 +fast,7.646,-0.8618665613775525,-0.44777421714659554,0.23808460857011965 +fast,7.696,-0.8618665613775525,-0.44777421714659554,0.23808460857011965 +fast,7.746,-0.8618665613775525,-0.44777421714659554,0.23808460857011965 +fast,7.796,-0.8618665613775525,-0.44777421714659554,0.23808460857011965 +fast,7.847,-0.7556758579959296,-0.5782831810950133,0.3074777392019586 +fast,7.897,-0.7097083644940697,-0.6220330202188311,0.3307400174224341 +fast,7.948,-0.6909634215042433,-0.6382740408720933,0.3393756014977489 +fast,7.998,-0.6322370482773051,-0.6840859490030367,0.3637344211952114 diff --git a/docs/re/flight-speed-law.md b/docs/re/flight-speed-law.md index 045ed32..7a02d35 100644 --- a/docs/re/flight-speed-law.md +++ b/docs/re/flight-speed-law.md @@ -384,3 +384,39 @@ image still parses, and the scans quietly report `0 moving triples` / "player en not found" — which reads like a tooling bug. `pgrep -x xenia_canary` does **not** help: zombies match it. `speed_law.require_live_emulator()` now checks the process *state letter* and refuses to measure a corpse, naming the stale image in its error. + +--- + +# ⚠️ The roll result is WITHDRAWN — the probe was not isolating roll + +Re-running the roll phases with 5 s settles and in-run clock brackets +([`tools/re-capture/roll_gametime.py`](../../tools/re-capture/roll_gametime.py)): + +``` +this run's clock: TIME 00:34.93 -> 00:45.97 = 11.04 s game in 7.98 s wall = 1.383 +minimum speed: 90.6 °/wall-s ÷ 1.383 -> 65.5 °/game-s (AV_Roll_Min 200) +maximum speed: 59.1 °/wall-s ÷ 1.383 -> 42.7 °/game-s (AV_Roll_Max 125) +``` + +Two things are wrong with reading this as "roll". + +* The corrected numbers — **65.5 and 42.7** — are within a few per cent of the + **pitch** run's **67.8 and 40.9**. Two different stick axes producing the same + rates is the signature of a measurement that is not separating them. +* Watching a non-forward matrix row sees **any** rotation that moves that row, and + pitch moves it as much as roll does. The forward row was the wrong thing to avoid; + what is needed is the rotation **about** the forward axis — project the row onto + the plane perpendicular to forward and track the angle of that projection. + +So the earlier conclusion — *"roll shows no speed dependence, unlike pitch"* — is +**withdrawn**. It rested on 2 s settles (which this session has twice shown to +produce wrong answers) and on a row that mixes the axes. The two runs do not even +agree with each other (144/150 then, 90.6/59.1 now), which is itself the tell. + +What survives: `AV_Roll_{Min,Max}` are **not** confirmed, and the axis question — +does roll follow the same speed rule as pitch? — is **open**, with the correct +measurement specified above. + +**The clock ratio has now been measured three times in three flights: 1.260, 1.311, +1.383.** It is not a property of the machine but of the moment, so any rate probe +must bracket its own phases. diff --git a/tools/re-capture/roll_gametime.py b/tools/re-capture/roll_gametime.py new file mode 100644 index 0000000..f5e921d --- /dev/null +++ b/tools/re-capture/roll_gametime.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +"""Is the clock factor universal, or does it apply only to linear motion? + +The mission clock runs ~1.26x wall time, which fully explains the linear +measurements. Applied to the angular ones it predicts a wall-time pitch rate of +~94 deg/s for `AV_Roll_Min` 75 — but the settled measurement read 74.9. +Either that was luck inside a noisy sample or angular integration is frame-based. + +The flaw in comparing across runs is that the emulator's speed depends on scene +load, so the clock ratio is not a constant of the machine. This measures BOTH in +the same run: a HUD screenshot brackets each turn phase, so the mission clock's +own advance over that phase converts wall seconds to game seconds. + +Usage: roll_gametime.py [dwell_s] (then read the HUD TIME off the shots) +""" +import json, math, os, struct, subprocess, sys, time +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import speed_law + +def pad(*a): + subprocess.run(["vgamepad", *a], capture_output=True) + +def shot(n): + subprocess.run(["screenshot", f"/sylph-home/re/shots/{n}.png"], capture_output=True) + +def row_at(fd, off, cfg, row): + at = off + cfg["rot_delta"] + row * cfg["rot_stride"] + v = struct.unpack(">3f", os.pread(fd, 12, at)) + n = math.sqrt(sum(c * c for c in v)) or 1.0 + return tuple(c / n for c in v) + +def ang(a, b): + return math.degrees(math.acos(max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3)))))) + +def main(): + out_csv = sys.argv[1] + dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 8.0 + cfg = json.load(open("/tmp/nav-live.json")) + w, off, nm = speed_law.find_player() + if not w: + sys.exit("player entity not found after retries") + print(f"# locked on {nm}") + # Roll turns the craft about its FORWARD axis, so the forward row barely moves — + # watch another row of the rotation matrix instead. + fwd = 1 if cfg.get("fwd_row", 0) != 1 else 2 + rows = [] + for label, (trig, tv) in (("slow", ("LT", 1.0)), ("fast", ("RT", 1.0))): + pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("axis", "LX", "0.0") + pad("trig", trig, str(tv)) + time.sleep(5.0) + shot(f"roll_{label}_a") # HUD TIME at the start of the phase + t0 = time.time() + pad("axis", "LY", "1.0") # nose down = Roll + seq = [] + while time.time() - t0 < dwell: + seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, fwd))) + time.sleep(0.05) + pad("axis", "LX", "0.0") + wall = seq[-1][0] + shot(f"roll_{label}_b") # HUD TIME at the end + rows += [(label, *s) for s in seq] + total = sum(ang(seq[i][1:], seq[i + 1][1:]) for i in range(len(seq) - 1)) + print(f"# {label:<5} wall {wall:5.2f}s swept {total:7.1f}deg " + f"rate {total / wall:6.1f} deg/wall-s " + f"(x1.26 -> {total / wall * 1.26:6.1f} deg/game-s if the clock applies)") + pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset") + with open(out_csv, "w") as f: + f.write("phase,t,fx,fy,fz\n") + for r in rows: + f.write(",".join(str(x) for x in r) + "\n") + print("# read HUD TIME off roll_slow_a/b and roll_fast_a/b to get the run's own ratio") + +if __name__ == "__main__": + main()