Capturing 500 frames from tcp://localhost:5561 (read-only)... 100/500 cycle=87580 200/500 cycle=88580 300/500 cycle=89580 400/500 cycle=90580 500/500 cycle=91580 Captured 500 frames in 71.9s (7.0 fps) cycle step: median=10 (expect ~10), min=10, max=10 ================================================================ PASSIVE PREDICT-TEST — live 5561 coarse field ================================================================ frames used: 500 (cycles 86590 -> 91580, ~4990 cycles) channels: ['rho', 'ux', 'uy', 'sxx', 'syy', 'sxy'] Per-step RMSE (z-scored field, lower = better predictor): PERSISTENCE (next=current): 0.3738 <- baseline to beat LINEAR (const-velocity extrap): 0.2945 RUNNING MEAN (dumb global): 1.0054 PRE-COMMITTED TEST: does LINEAR reliably beat PERSISTENCE? improvement: +21.22% (need > +2.00%) bootstrap 95% CI of (persist_err - linear_err): [+0.0757, +0.0828] (need lo > 0) VERDICT: LINEAR BEATS PERSISTENCE — field carries short-horizon dynamics READ: The field's next state is better predicted by its trajectory than by assuming it stays still. That means the live fast field carries structured short-horizon motion the 9 global scalars could not show. This is the FIRST positive signal that the live organism has learnable dynamics. It is NOT yet memory (that needs the poke/history test). It IS a green light to proceed. Wrote predict_report.txt and predict_capture.npz DONE.