Files
decePubClient/wwwroot/vendor/globe/SOURCES.md
T
thepraandClaude Opus 5.5 0f68e74e38
Build / Build (push) Successful in 46s
Deploy / decepub.thepra.dev (push) Successful in 1m52s
The globe under the Sun of now or of a post, with borders and country names
The Sun lights the globe where it really is (wwwroot/js/sun.js, the Astronomical Almanac's low-precision solar
coordinates): the day map shaded by the Sun's height and the Earth–Sun distance, warm city lights on the night side,
and a twilight blend about 13° wide between them. It shows now, refreshed every 30 s, or the moment of the hovered,
focused or pinned post: a click on a card pins it, and the subsolar point travels there the shorter way round. The
panel's top corner shows that moment, the phase of the day and solar time at the post's place, and the season in its
hemisphere (or in both, for a post without a place). Its tooltip shows the subsolar point, declination, axial tilt,
distance, irradiance, day length and the next equinox or solstice.

Land borders are thin paths. Country names are in the reader's language and appear as the camera comes closer:
largest countries first, away from the globe's edge, never overlapping. They come from world-atlas 2.0.2 (Natural
Earth 1:50m), prepared by tools/globe/prepare-countries.py, and are vendored with their hashes in SOURCES.md.

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

2.9 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, the countries through tools/globe/prepare-countries.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
countries.json world-atlas 2.0.2 (tarball sha256 032e7765f2ce00edaeafec23ff22bc3b77e42987c257da944cc585b452c05b97), countries-50m.json (sha256 04342cdc1e3016bcd7db1630de95684d67b79fe3c8c460321e87aef469502394): land borders and name positions, by tools/globe/prepare-countries.py; two-letter codes from Debian's iso-codes 4.20.1 (iso_3166-1.json, LGPL-2.1, only the code mapping is used) Natural Earth 1:50m, public domain; world-atlas ISC, LICENSE-world-atlas 5194ad47c539b4c89826a48616ddbef2b2d2fbd2ca9a368dd6d2bced81e0d74f

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.

Country names are not in countries.json beyond Natural Earth's English ones: the globe asks the browser (Intl.DisplayNames) for each two-letter code in the reader's language, and falls back to the English name for the few areas without a code (Kosovo, Somaliland, Northern Cyprus, …).

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.