Files
ruvnet--RuView/examples/research-sota/09-quantum-fusion/r20_2_threshold_results.json
T
rUv fecb1da252 research(R20.2): threshold-based hand-off — works at 0.5 m, harmonic gap at 1 m surfaces Pan-Tompkins requirement (#746)
Implements R20.1's catalogued refinement: when NV conf > 60% AND
amplitude > 3 pT, trust NV entirely.

Mixed result (5 distances):
- 0.5 m: NV=72.00 ✓, smart=72.0 (+0.0 error, NV trusted) ✓
- 1.0 m: NV=144 (harmonic!), smart trusts wrong NV (+72 BPM error)
- 1.5 m+: falls back to weighted (NV conf below threshold)

Production lesson: the threshold-based policy is correct in spirit
but incorrect with simple FFT rate estimator (picks harmonics).
Production needs:
1. Harmonic rejection (Pan-Tompkins QRS or autocorrelation)
2. Cross-check vs breathing band
3. Per-frame plausibility window

R20.1's 'production needs Pan-Tompkins' note is confirmed BINDING,
not nice-to-have, before threshold hand-off can ship.

ADR-114 implementation budget refined: +30-50 LOC for Pan-Tompkins.

Five-step quantum arc:
- R20 vision (tick 37)
- Doc 17 bridge (tick 38)
- ADR-114 spec (tick 39)
- R20.1 working demo (tick 40)
- R20.2 threshold refinement (this tick)

Production ADR-114 cog now has all known refinements catalogued
BEFORE any Rust code is written.

Honest mixed result — catalogue-then-revisit pattern works:
R20.1 flagged production gap; R20.2 attempted fix; fix surfaced
deeper gap (harmonic rejection). Three layers of refinement.
2026-05-22 07:57:48 -04:00

71 lines
2.0 KiB
JSON

{
"true_hr_bpm": 72.0,
"classical_hr_rate": 105.0,
"classical_hr_conf": 0.3805459134253063,
"results_per_distance": [
{
"distance_m": 0.5,
"nv_amplitude_pT": 50.0,
"nv_rate_bpm": 72.0,
"nv_conf": 0.8348130933810896,
"naive_fused_bpm": 82.33276175218474,
"smart_fused_bpm": 72.0,
"regime": "nv_drives",
"true_hr_bpm": 72.0,
"naive_error_bpm": 10.332761752184737,
"smart_error_bpm": 0.0
},
{
"distance_m": 1.0,
"nv_amplitude_pT": 6.25,
"nv_rate_bpm": 144.0,
"nv_conf": 0.6689134324169522,
"naive_fused_bpm": 129.85815561865903,
"smart_fused_bpm": 144.0,
"regime": "nv_drives",
"true_hr_bpm": 72.0,
"naive_error_bpm": 57.858155618659026,
"smart_error_bpm": 72.0
},
{
"distance_m": 1.5,
"nv_amplitude_pT": 1.8518518518518514,
"nv_rate_bpm": 72.0,
"nv_conf": 0.39058395452018735,
"naive_fused_bpm": 88.28521417307823,
"smart_fused_bpm": 88.28521417307823,
"regime": "weighted_fallback",
"true_hr_bpm": 72.0,
"naive_error_bpm": 16.28521417307823,
"smart_error_bpm": 16.28521417307823
},
{
"distance_m": 2.0,
"nv_amplitude_pT": 0.78125,
"nv_rate_bpm": 77.0,
"nv_conf": 0.3549718835175086,
"naive_fused_bpm": 91.48678132427328,
"smart_fused_bpm": 91.48678132427328,
"regime": "weighted_fallback",
"true_hr_bpm": 72.0,
"naive_error_bpm": 19.48678132427328,
"smart_error_bpm": 19.48678132427328
},
{
"distance_m": 3.0,
"nv_amplitude_pT": 0.23148148148148143,
"nv_rate_bpm": 78.0,
"nv_conf": 0.3829009843660022,
"naive_fused_bpm": 91.45835525791024,
"smart_fused_bpm": 91.45835525791024,
"regime": "weighted_fallback",
"true_hr_bpm": 72.0,
"naive_error_bpm": 19.45835525791024,
"smart_error_bpm": 19.45835525791024
}
],
"thresholds": {
"nv_conf": 0.6,
"nv_amplitude_pT": 3.0
}
}