From d05fa6988d8745b0d233a99658f627a01a0befa0 Mon Sep 17 00:00:00 2001 From: archipelago Date: Fri, 14 Aug 2026 03:57:05 -0400 Subject: [PATCH] =?UTF-8?q?fix(federation):=20kiosk=20map=20goes=20fully?= =?UTF-8?q?=20static=20=E2=80=94=20kills=20the=20blank-load=20stall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GSAP entrance intro needs healthy rAF delivery to reach opacity 1; on a paint-starved kiosk it stalls and the federation/peers screen reads as BLANK until a lucky refresh. Kiosks now take the existing staticMode branch (no intro, no ticker — everything lands in place instantly); the 2D default and 2D/3D toggle stay. Half-rate tick kept for any future non-static kiosk path. Co-Authored-By: Claude Fable 5 --- neode-ui/src/components/federation/NetworkMap3D.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/neode-ui/src/components/federation/NetworkMap3D.vue b/neode-ui/src/components/federation/NetworkMap3D.vue index 772a012a..ccc5f39c 100644 --- a/neode-ui/src/components/federation/NetworkMap3D.vue +++ b/neode-ui/src/components/federation/NetworkMap3D.vue @@ -1182,7 +1182,15 @@ function measure() { } function initialBuild() { - staticMode = prefersReducedMotion() + // Kiosk TVs get the fully static map: no entrance animation, no ticker. + // The GSAP intro needs healthy rAF delivery to ever reach opacity 1 — on + // a paint-starved kiosk it stalls and the screen reads as BLANK until a + // lucky refresh (framework-pt, 2026-08-14). Half-rate ticking (below) + // helped but any continuous SVG animation is still the single biggest + // load on the kiosk's compositor, and at TV distance the still map loses + // nothing. Everything lands in place immediately, graph updates apply + // instantly, and the 2D/3D toggle still works. + staticMode = prefersReducedMotion() || kioskLowPower built = true applyGraph()