From c3f00f3abf1c16fd3c74d023d441fc03598e06a9 Mon Sep 17 00:00:00 2001 From: arsen Date: Mon, 18 May 2026 01:23:09 +0700 Subject: [PATCH] =?UTF-8?q?tune(adr-120):=20adaptive=20smoothing=20window?= =?UTF-8?q?=207=20=E2=86=92=2015=20ticks=20(~1.5s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2/crates/wifi-densepose-sensing-server/src/main.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2/crates/wifi-densepose-sensing-server/src/main.rs b/v2/crates/wifi-densepose-sensing-server/src/main.rs index 4d640150..50642bc7 100644 --- a/v2/crates/wifi-densepose-sensing-server/src/main.rs +++ b/v2/crates/wifi-densepose-sensing-server/src/main.rs @@ -2729,10 +2729,10 @@ fn adaptive_override(state: &AppStateInner, features: &FeatureInfo, classificati /// ADR-120 follow-up: majority-vote smoothing buffer for the adaptive /// classifier output. At the broadcast tick rate (~10 Hz) the model emits /// a fresh decision every ~100 ms, and adjacent decisions can disagree -/// even when reality is stable (UI flicker). We keep the last 7 ticks -/// (~700 ms) and display the mode. Snappy enough for live UX, stable -/// enough that the user can read the label without it changing mid-read. -const ADAPTIVE_SMOOTH_WIN: usize = 7; +/// even when reality is stable (UI flicker). 15-tick window (~1.5 sec) +/// favours readability over reaction speed — sustained activity wins, +/// brief glitches don't update the display. +const ADAPTIVE_SMOOTH_WIN: usize = 15; static ADAPTIVE_LABEL_HISTORY: OnceLock>> = OnceLock::new();