Dream globe: choropleth invisible while hovering and past a zoom threshold (small polygons) #764

Closed
opened 2026-07-21 03:25:30 +00:00 by spikerj · 1 comment
Owner

Follow-up to #752 (family dream globe). Reported on prod /sponsor/family globe.

Symptoms:

  1. While the mouse is over the globe, the colored choropleth becomes invisible until the mouse moves off the globe.
  2. Zooming in past a threshold also hides the choropleth — affects small polygons (Louisiana state cap) but NOT huge ones (Alaska).
  3. Zooming WAY out, the choropleth is visible again (globe barely visible at that distance).

Leading suspects:

  • onPolygonHover re-assigns polygonAltitude + polygonCapColor accessors across all ~170 polygons on every hover change with polygonsTransitionDuration(250) — continuous re-tween of conic geometries while sweeping the mouse.
  • Size-dependent vanish at close zoom points at per-mesh frustum culling with degenerate bounding spheres on thin conic caps; also to check: animateIn scale-animation timing, camera near-plane, transparent depth-sort. (three version mismatch ruled out — single deduped three@0.185.1, peer ranges satisfied.)

Fix in family-globe.component.ts: guard redundant hover events + color-only hover feedback (no altitude re-tween), plus the minimal verified fix for the zoom vanish after runtime diagnosis.

Follow-up to #752 (family dream globe). Reported on prod /sponsor/family globe. Symptoms: 1. While the mouse is over the globe, the colored choropleth becomes invisible until the mouse moves off the globe. 2. Zooming in past a threshold also hides the choropleth — affects small polygons (Louisiana state cap) but NOT huge ones (Alaska). 3. Zooming WAY out, the choropleth is visible again (globe barely visible at that distance). Leading suspects: - `onPolygonHover` re-assigns `polygonAltitude` + `polygonCapColor` accessors across all ~170 polygons on every hover change with `polygonsTransitionDuration(250)` — continuous re-tween of conic geometries while sweeping the mouse. - Size-dependent vanish at close zoom points at per-mesh frustum culling with degenerate bounding spheres on thin conic caps; also to check: `animateIn` scale-animation timing, camera near-plane, transparent depth-sort. (three version mismatch ruled out — single deduped three@0.185.1, peer ranges satisfied.) Fix in `family-globe.component.ts`: guard redundant hover events + color-only hover feedback (no altitude re-tween), plus the minimal verified fix for the zoom vanish after runtime diagnosis.
Author
Owner

Resolved in spikersoft-angular PR #502 (merged to master). Three root causes: (1) COL.geo.json's CO-X01~ feature ships an empty polygon that crashed conic triangulation and aborted every polygon built after it — new sanitizeGeoFeature() drops degenerate parts; (2) US-AK/US-FL/CA-NU/MX-ROO have inverted ring winding — US-AK spherically covered the entire globe in wish-blue (the "missing countries" + z-fighting zoom vanish) — new rewindGeoFeature() normalizes winding; (3) the hover handler re-tweened every polygon's geometry per hover change — now color-only + guarded, transitions disabled. Verified: hover keeps the choropleth, and zooming from space to state-fills-the-frame never drops a polygon. Closing.

Resolved in spikersoft-angular PR #502 (merged to `master`). Three root causes: (1) `COL.geo.json`'s `CO-X01~` feature ships an empty polygon that crashed conic triangulation and aborted every polygon built after it — new `sanitizeGeoFeature()` drops degenerate parts; (2) US-AK/US-FL/CA-NU/MX-ROO have inverted ring winding — US-AK spherically covered the entire globe in wish-blue (the "missing countries" + z-fighting zoom vanish) — new `rewindGeoFeature()` normalizes winding; (3) the hover handler re-tweened every polygon's geometry per hover change — now color-only + guarded, transitions disabled. Verified: hover keeps the choropleth, and zooming from space to state-fills-the-frame never drops a polygon. Closing.
Sign in to join this conversation.