Files
decePubClient/wwwroot/vendor/globe/SOURCES.md
T
thepraandClaude Opus 5.5 69d0a641fe The globe draws the poles as they are, and nothing while idle
The globe is a UV sphere: towards the poles its triangles narrow to
slivers, and texture coordinates interpolated across them pinched the
map into a star around each pole. Each pixel now computes its own
coordinates from its exact point on the sphere, with seam-safe mipmap
gradients; the map wraps horizontally and gets 8x anisotropic
filtering.

That showed a flaw in the day texture: NASA's mosaic has a lighter
strip at its east edge near the poles, a line from each pole once drawn
exactly. The day texture is now built from NASA's original Blue Marble
(December 2004) by tools/globe/prepare-day-texture.py, which blends
that strip into the map where both sides of the seam agree; same
4096x2048 size, provenance and hashes in SOURCES.md.

globe.gl redrew 60 times a second even when nothing moved; it now draws
only during camera flights, hover pulses, auto-rotation and the
reader's drags, so an idle globe costs no GPU time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
2026-10-04 17:46:44 +02:00

2.0 KiB
Raw Blame History

The globe's vendored files

Copied once on 2026-10-04 from the npm registry (registry.npmjs.org) and, for the day texture, from NASA (eoimages.gsfc.nasa.gov); the build and the app never fetch them from anywhere else. To update, download the new files, copy them the same way (the day texture through tools/globe/prepare-day-texture.py), and replace the hashes.

NASA's mosaic does not wrap cleanly at the 180° meridian near the poles (a lighter strip at its east edge), which the globe, drawing each pixel at its exact place, shows as a line from each pole; the script blends that strip into the map on both sides, only on rows where the two sides agree, and gives the rows within half a degree of each pole one colour.

File From Licence sha256
globe.gl.min.js globe.gl 2.46.2, dist/globe.gl.min.js (UMD, defines window.Globe) MIT, LICENSE-globe.gl 2c3e445c04d121215910a89688b96091c8a72071c122a4f830081a39b636c94c
earth-blue-marble.jpg NASA Visible Earth, Blue Marble Next Generation with topography and bathymetry, December 2004 (world.topo.bathy.200412.3x5400x2700.jpg, sha256 a9f0088972dee0254610af851c4d6838ca3f2cf79176987e0a5713e2c15ec042), seam repaired and scaled to 4096×2048 by tools/globe/prepare-day-texture.py NASA, public domain 1334612d91d5104afb0e48cce916e100575c2969baf99e21454c23535f4ce713
earth-night.jpg three-globe 2.45.3, example/img/earth-night.jpg, 4096×2048 NASA Earth Observatory "Black Marble" (city lights), public domain 355ab23dd1323315b393d7b91dd2d7ee223a1cbaaba2b48dc72ba90d371ced24

globe.gl.min.js bundles its dependencies: three.js r185 (MIT, © 2010–2026 three.js authors), three-globe (MIT, © 2019 Vasco Asturiano), @tweenjs/tween.js (MIT), kapsule and accessor-fn (MIT, © Vasco Asturiano), and d3 modules (ISC, © Mike Bostock). Their notices are in LICENSES-bundled.txt.

The service worker leaves this folder out of the offline precache (service-worker.published.js): the feed page loads it the first time it shows the globe.