Expose URL ?ax=N as auto-spin speed multiplier for all interactive globe
versions. On globe3d=11, render semi-transparent continent fill with
brighter coastline/border pixels matching the static SVG art.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default latf=1.25; linear multiply on lon/lat plus optional non-linear
bias via zy/zx toward equator and prime meridian.
Co-authored-by: Cursor <cursoragent@cursor.com>
Compress effective latitude before mercator row lookup so land
appears shorter on the orthographic disk.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ortho hub SVG only covers one fitted hemisphere — left empty on rotate.
Sample mercator-flat by lon/lat with U-wrap and inner_sy lat compress.
Co-authored-by: Cursor <cursoragent@cursor.com>
Restore sampleHub for reference N-S proportions; wrap via inverse
inner-layer affine on mercator-flat with seamless U bilinear.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop ortho hub layer (ghost/double shadow). Sample flat plate with
12° lon center and inverse Mercator Y matching extract_red_polygons.py.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hub 2D ellipses (v8) are not latitude circles and fail when rotated.
Use v4 sphere arcs plus hub ry vertical thickness clipped at limb.
Co-authored-by: Cursor <cursoragent@cursor.com>
Latitude bands (v6/7) are flat strips under Y-rot; trace hub SVG
ellipses to sphere with null-gap flush to avoid chord artifacts.
Co-authored-by: Cursor <cursoragent@cursor.com>
globe3d=1 keeps legacy hybrid ortho/mercator; globe3d=2 samples
hub-logo-continents-mercator-flat on visible z>0 and draws full
parallel/meridian rings so axes and continents survive rotation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire hub-downloads.js for stable OTA APK resolution, expand nav i18n, and add
Session Studio download slot for alpha hub FR.
Co-authored-by: Cursor <cursoragent@cursor.com>