Skip to content

Raise T1/T2 place reveal thresholds so initial fly-in stays uncluttered#76

Merged
pablo-mayrgundter merged 3 commits into
mainfrom
claude/raise-places-tier-thresholds
May 19, 2026
Merged

Raise T1/T2 place reveal thresholds so initial fly-in stays uncluttered#76
pablo-mayrgundter merged 3 commits into
mainfrom
claude/raise-places-tier-thresholds

Conversation

@pablo-mayrgundter

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #73. T1 was firing at the initial d=10R fly-in on 4K
displays (screenPx≈274 at d=10R is above the old T1=200 threshold), so
every named city was visible before the user had zoomed in at all.

  • T1: 200 → 400 — keeps the initial view clean across all common
    viewport sizes (900p / 1080p / 1440p / 2160p). T1 cities reveal as
    the user zooms in past d≈3.3R on 1080p, or d≈7R on 4K.
  • T2: 500 → 700 — secondary cities stay hidden until the user is at
    "almost landed" range (d≈1.8R on 1080p).

Distance / screenPx mapping (FOV 45°, 1080-px viewport):

Camera distance screenPx Visible tiers
10 R (initial fly-in) 137 T0
3.3 R 400 T0, T1
1.8 R 700 T0, T1, T2
R (surface) 1080 T0, T1, T2

Test plan

  • Places.test.js updated for the new thresholds
  • Full suite (459 tests) green; lint + bundle-check clean
  • Visual check on Earth: at initial fly-in only T0 (London, Paris,
    Tokyo, etc.) is visible; T1 (Berlin, Rome, Athens, …) reveals
    after a couple scroll-zooms; T2 (Austin, Madrid, Shanghai, …)
    reveals when zoomed in close enough to pick a landing spot.

Generated by Claude Code

T1 was firing at the initial d=10R fly-in on 4K displays (screenPx≈274
at d=10R, above the old T1=200 threshold) — every named place was
visible before the user had zoomed in at all.  Push T1 to 400 so all
common viewport sizes show only T0 on arrival, and push T2 to 700 so
secondary cities stay hidden until the user is at "almost landed"
range (d≈1.8R on 1080p).
@github-actions

github-actions Bot commented May 19, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-05-19 23:37 UTC

claude added 2 commits May 19, 2026 21:53
The previous absolute-pixel thresholds (T1=400 px radius, T2=700) read
very differently across viewports — T1 at 400 was "planet fills 74 %
of screen" on a 1080p display but only ~18 % on 8K, so users on larger
displays saw T1 names appear at the initial d=10R fly-in.

New table is planet apparent DIAMETER as a fraction of viewport height,
so the visual size at which each tier reveals is identical across
720p / 1080p / 4K / 8K monitors:

  T0: 0.06  (small disc — marquee only)
  T1: 0.75  (planet fills ~3/4 of screen — major cities)
  T2: 1.30  (planet bigger than screen — "almost landed" picking)

`Places.diameterFraction(camera, vph)` is the new viewport-relative
metric driving the LOD hook; `screenPx` is retained for tests and
debugging.  Tier reveal distances (independent of viewport):

  T0 fires at d ≈ 42 R
  T1 fires at d ≈ 3.3 R
  T2 fires at d ≈ 1.8 R
User report: the marquee names (Cairo, Mt. Everest, Sydney…) were
already on screen by the time the planet was a tiny disc — fraction
0.06 was way too eager.  Push the entire sequence into the "planet
is large" regime:

  T0: 0.75  (planet fills ~3/4 of screen — marquee names, was 0.06)
  T1: 1.00  (planet fills the screen — major cities, was 0.75)
  T2: 1.50  (planet 1.5× screen — close zoom for all cities, was 1.30)

Corresponding camera-distance progression at default FOV:
nothing until d ≈ 3.3 R, T0 reveals there, T1 at d ≈ 2.4 R,
T2 at d ≈ 1.5 R.
@pablo-mayrgundter pablo-mayrgundter merged commit afdfcb5 into main May 19, 2026
3 checks passed
@pablo-mayrgundter pablo-mayrgundter deleted the claude/raise-places-tier-thresholds branch May 19, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants