Skip to content

Fix limb blistering on the home-page globe animation#315

Merged
rdhyee merged 2 commits into
isamplesorg:mainfrom
rdhyee:fix/280-globe-blisters
Jul 1, 2026
Merged

Fix limb blistering on the home-page globe animation#315
rdhyee merged 2 commits into
isamplesorg:mainfrom
rdhyee:fix/280-globe-blisters

Conversation

@rdhyee

@rdhyee rdhyee commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

What was wrong

The animated globe on the home page had visible "blistering" — bright, oversized glow/dot artifacts along the horizon (limb) of the globe at certain rotation angles, where points near the edge of the visible disc appeared larger and more saturated than points near the center.

The fix

Two complementary changes in tools/globe_capture.html (which drives the capture used to bake the static animation):

  1. Added translucencyByDistance: NearFarScalar(20e6, 1.0, 24e6, 0.15) to each point primitive. At the fixed capture altitude (~22 Mm), nadir (center-globe) points sit ~22 Mm from the camera while limb points sit ~23 Mm away — this scalar fades limb dots down to 15% opacity while leaving center-globe dots fully opaque, dissolving the horizon protrusion.
  2. Reduced pixelSize from 14px to 10px, so the screen-space circles extend less beyond the globe's silhouette at the limb (the size difference is imperceptible at globe-overview zoom).

The home-page globe is a baked WebP, not a live Cesium render, so assets/isamples_globe.webp was regenerated via tools/capture_globe_rotation.py after the fix (120 frames, 15s, 800x500, q40 — new file is actually smaller: 1.3MB vs the old 2.2MB, since the faded/smaller limb blobs compress better).

Note on tuning

The fade was set to 0.15 (limb points drop to 15% opacity). An earlier open question was whether to soften further to 0.3 minimum opacity; this PR ships the more conservative 0.15 as already committed. If review feedback wants the limb fade softened further, that's an easy follow-up — just adjust the NearFarScalar value and re-run the capture script.

Closes #280

🤖 Generated with Claude Code

rdhyee and others added 2 commits June 30, 2026 14:36
Two complementary changes to tools/globe_capture.html, which drives the
animated isamples_globe.webp on the home page:

1. Add `translucencyByDistance: NearFarScalar(20e6, 1.0, 24e6, 0.15)` to
   each PointPrimitive.  At the fixed capture altitude (~22 Mm) nadir points
   are ~22 Mm from the camera and limb points are ~23 Mm away; this scalar
   fades limb dots to 15 % opacity while leaving center-globe dots fully
   opaque, visually dissolving the horizon protrusion.

2. Cap `pixelSize` at 10 px (was 14 px).  Smaller screen-space circles
   extend less beyond the globe silhouette at the limb; the size difference
   is imperceptible at globe-overview zoom.

The static WebP on the home page must be regenerated with
`tools/capture_globe_rotation.py` after this change to update the image.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r fix applied

Rebuilt assets/isamples_globe.webp (120 frames, 15 s, 800×500, q40) from
tools/globe_capture.html after the fix in the previous commit:
- translucencyByDistance fades limb dots to 15 % opacity
- pixelSize capped at 10 px (was 14 px)

Old file: 2.2 MB.  New file: 1.3 MB (smaller because large limb blobs
are now faded/smaller and compress better).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rdhyee rdhyee merged commit f632620 into isamplesorg:main Jul 1, 2026
2 checks passed
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.

data points that are less 3D

1 participant