From e6fcb7b365d02de353b4512e8ba8276b96f91f2c Mon Sep 17 00:00:00 2001 From: m3ultra Date: Thu, 16 Jul 2026 17:19:08 +1000 Subject: [PATCH] =?UTF-8?q?Lane=20F=20R19=20(v4.0-alpha):=20B's=20BIG=5FCI?= =?UTF-8?q?TY=20one-liner=20=E2=80=94=20big-graph=20towns=20stream=20like?= =?UTF-8?q?=20big=20cities?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Real towns can have FEW shops but a HUGE road graph (real Katoomba: 20 shops / 799 edges / 5 km), so the shop-count-only heuristic left them on small-town streaming and blew the tri budget (280k > the 200k gate). Extend the trigger to the graph: BIG_CITY = shops>120 || edges>200. B proved the effect; landed EARLY so D/B's post-fix re-measures see it (per the R19 order). Verified: katoomba_real 799 edges -> BIG_CITY -> 61 draws / ~12k tris (was 280k), 0 errors. Co-Authored-By: Claude Opus 4.8 --- web/index.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/index.html b/web/index.html index 737a4d9..6946c33 100644 --- a/web/index.html +++ b/web/index.html @@ -138,7 +138,10 @@ try { // Adaptive to plan density: a large generated city (Lane A) has content in nearly every chunk, so // a smaller radius + no sun-shadow pass keeps draw calls near the ≤300 gate. The sparse fixture // gets the fuller radius 3 + shadows (measured ~140 draws). Override via ?r= / ?shadows=0|1. -const BIG_CITY = (plan.shops?.length || 0) > 120; +// [Lane F R19 — B's proven one-liner] a real town can have FEW shops but a HUGE road graph (real Katoomba: +// 20 shops / 799 edges / 5 km) — the shop-count heuristic alone left it on small-town streaming and blew the +// tri budget (280k > 200k). Extend the trigger to the graph size so big-graph towns stream like big cities. +const BIG_CITY = (plan.shops?.length || 0) > 120 || (plan.streets?.edges?.length || 0) > 200; const RADIUS = parseInt(params.get('r'), 10) || (BIG_CITY ? 2 : 3); const SHADOWS = params.has('shadows') ? params.get('shadows') !== '0' : !BIG_CITY; const canvas = document.getElementById('c');