Computing Solar Eclipses — Research

GitHub repositories

workingupdated 2026-09-15softwaregithubrepositoriesbesselianlimbterrain
  • Thirty repositories were inventoried from GitHub API searches on 2026-09-15 across Python, JavaScript, TypeScript, Rust, Go, Java, C++ and Julia. Most are small (0 to 3 stars) and recent (2024 to 2026). Star counts measure popularity, not correctness.
  • Three method families. Consumers of NASA's Canon Besselian elements are tahze0, aravpanwar, Absolute-Eclipse, johnarban, umbra-atlas and Eclipse-Engine. Geometric computation on Astronomy Engine or Skyfield is used by angristan, mf4633, eclipsite, eclipse-3d-sim, jpatka and eclipse-2026. Meeus and textbook ports are astronomia, soniakeys/meeus, Starainrt/astro and johanley.
  • Only tomasrojasc/eclipse-2026 builds Baily's beads from LOLA, using ldem_16.img with moon_pa_de421_1900-2050.bpc orientation. Only SolarEclipseWorkbench ships a limb band file. Nobody derives path limits from a limb profile.
  • Terrain is handled by four. Eclipse-Engine uses a DEM plus OpenStreetMap buildings, eclipsite uses EU-DEM at 25 m, eclipse-3d-sim ray-casts Copernicus at 30 m, and umbra-eclipse-atlas reads Copernicus through Open-Meteo.
  • Documented validation is rare: Absolute-Eclipse reports 1 to 5 s residuals against Espenak, eclipsite 0.36 s mean against NASA elements and 0.60 s RMS against IGN durations, tahze0 a 0.26 per cent median path-width error over 300 eclipses, Starainrt/astro second-level global agreement with NASA.
  • Five most complete: Stellarium, covered in open-source libraries, then RHerAle/Eclipse-Engine, tahze0/solar-eclipse-explorer, tomasrojasc/eclipse-2026, Xeratec/eclipsite. NASA's JSEX and its ports remain the cleanest minimal reference.

The question. Which public repositories contain substantive solar eclipse computation, what do they implement, from which formulas and elements, with which constants, and do any of them handle limb profiles, terrain or catalogue generation?

How the inventory was built

The GitHub repository search API was queried for "besselian elements", "solar eclipse calculator", "solar eclipse path", "eclipse circumstances", "solar eclipse besselian", "eclipse limb profile" (zero results), "baily beads", "eclipse explorer", "eclipse predictor", "pyeclipse", "eclipsecalc", and "solar eclipse" restricted to Rust, Go, Julia, Java and C++, each sorted by stars, on 2026-09-15 1. Metadata for language, stars, last push and licence comes from the repos endpoint on the same day 1. READMEs were then read for every repository below. Repositories that only process eclipse photographs, such as timelapse aligners and corona processing, were excluded, as was unrelated software named "Eclipse". The plausible project names "eclipsecalc", "SolarEclipseCalc", "pyeclipse", "solareclipse.js", "Eclipse-Path", "moon-shadow" and "eclipse_predictor" matched no substantive eclipse-computation repository except those listed.

Repositories

Elements consumers (NASA Canon Besselian elements)

RHerAle/Eclipse-Engine. JavaScript, AGPL-3.0, 0 stars, last push 2026-09-14. The engine behind eclipseradar.com for 2026 to 2050: "Besselian shadow geometry: contacts, obscuration, magnitude, central line, limits, shadow outline, and obscuration bands", plus spectral irradiance with limb darkening and ICNIRP exposure limits, "Terrain analysis: skyline toward the Sun from elevation models and OpenStreetMap building data", and solar-limb video stabilisation. Its data/eclipses.json is "the catalogue of Besselian elements, fitted to the JPL DE440s ephemeris", so it generates elements rather than copying NASA's. No dependencies. Data CC-BY-SA-4.0 2.

tahze0/solar-eclipse-explorer. Python, MIT code, 0 stars, last push 2026-09-08. Reconstructs all 11,898 Canon eclipses "computed locally from NASA Five Millennium Canon Besselian elements" from eclipse_besselian_from_mysqldump2.csv, with umbra and penumbra modules, a 14-step build pipeline and reported "median 0.26% error" in path width against catalogue values on 300 reference eclipses 3.

aravpanwar/besselian. Python, AGPL-3.0, 0 stars, last push 2026-09-14. Local circumstances from NASA elements intersected with OpenStreetMap populated places for 2027 August 2 in Egypt. States k1=0.272488k_1 = 0.272488 for penumbral and k2=0.272281k_2 = 0.272281 for umbral contacts, ΔT = 76.0 s, and that omitting ΔT in the hour angle "introduces ~32 km longitude error". Validates Sun altitude 81.69° and duration 382.5 s at greatest eclipse against published values 4.

Absolute-Eclipse/eclipse-data. JavaScript, MIT code and CC-BY-4.0 data, 0 stars, last push 2026-06-17. Local circumstances for 9,438 European cities for 2026 and 2027 from "Besselian elements sourced from F. Espenak (NASA/EclipseWise)", with ΔT, lunar-limb adjustments and refraction documented, elevation from Copernicus, NASA and ASTER, "accuracy within 1–5 seconds for greatest eclipse and 0.05 percentage points for partial phases" against NASA and Espenak, residuals published, and near-limit cities flagged 5.

johnarban/eclipse_explorer. TypeScript, GPL-3.0, 0 stars, last push 2026-07-15. A TypeScript port of NASA's JavaScript Solar Eclipse Explorer (JSEX) with SE2001.ts and SE2024.ts element files and a test file 6. ebradyjobory/eclipse-explorer. JavaScript, GPL-2.0, 16 stars, one commit in 2010. It mirrors NASA's JSEX and JLEX unchanged 7.

plhery/umbra-eclipse-atlas. TypeScript, MIT, 0 stars, last push 2026-09-08. Browses 11,898 eclipses using "Besselian elements from NASA's Five Millennium Canon via the @astronomy-bundle/solar-eclipse library", Copernicus DEM skyline via Open-Meteo, and states it is "a planning aid, not an official prediction service" 8.

gmiller123456/FiveMillenniumCanonOfSolarEclipses-Besselian-Elements. Python, 3 stars, last push 2023-03-10. Repackages NASA's elements as CSV, JS and JSON with condensing scripts. Data use requires the Espenak acknowledgment 9. Greg Miller's site also documents generating polynomial elements from a DE405 extract with k=0.2725076k = 0.2725076 and R=6.957×108R_\odot = 6.957\times10^8 m, fitting five points at t0±2t_0 \pm 2 h with Gauss-Jordan elimination, and matching Espenak "to approximately seven decimal places" 10, and a prediction article citing the Explanatory Supplement, Meeus, Chauvenet, Green and Smart 11 12.

Frencil/eclipsetracks. Python and JavaScript, Apache-2.0, 31 stars, last push 2024-02-20. Scrapes NASA path tables into CZML for a Cesium globe and does not compute the umbra itself 13.

Geometric computation on Astronomy Engine or Skyfield

Xeratec/eclipsite. Python, MIT, 2 stars, last push 2026-08-12. Ranks observing sites by "P(clear line of sight) × eclipse depth × terrain gate × model-agreement discount × drive-time discount". Local circumstances from JPL DE421 via Skyfield, cross-checked against NASA Besselian elements to "0.36s mean difference". It adds an EU-DEM 25 m skyline via OpenTopoData and cloud ensembles. Validation gives "RMS 0.60s" against IGN and Generalitat de Catalunya durations, which "caught a solar-radius convention error worth 1.3 seconds per site" 14.

tomasrojasc/eclipse-2026. Python and TypeScript, no licence stated, 0 stars, last push 2026-08-12. Contact times for Spain via Skyfield and DE421, and beads "computed from the Moon's actual shape. The app builds a limb profile from LOLA laser altimetry for the Moon's libration at your contact time, then slides that jagged limb across the Sun's edge". It uses LRO LOLA ldem_16.img at 16 pixels per degree, about 1.9 km at the limb, with the NAIF moon_pa_de421_1900-2050.bpc kernel. There are 84 tests, including totality-band checks for 11 cities 15.

angristan/eclipse. TypeScript, MIT, 1 star, last push 2026-09-09. Paths by intersecting the Sun-Moon axis with the WGS84 ellipsoid using astronomy-engine's SearchGlobalSolarEclipse and SearchLocalSolarEclipse, umbra radius by similar triangles, "no database and no data files", and "Overall accuracy is a few kilometers: great for a map, not for planning an expedition to the edge" 16.

mf4633/eclipse-predictor. HTML single file, MIT, 0 stars, last push 2026-09-08. Catalogue of 1900 to 2200, about 690 events, from astronomy-engine, "Besselian elements derived from position data" to trace the path, claims "±1–2 km ground accuracy" and local contacts "to a few seconds" against NASA 17.

carlok/eclipse-3d-sim. Python and React, no licence stated, 1 star, last push 2026-07-25. Astronomy Engine circumstances compared against terrain by ray-casting a WGS84 GeoTIFF DEM, optionally Copernicus 30 m from OpenTopography, plus a manual obstacle editor 18.

jpatka/Eclipse-Explorer. Python, MIT, 0 stars, last push 2026-08-14. Skyfield with DE421, refraction, and CSV and iCalendar output. No validation is stated, and it was developed with an LLM assistant 19.

pmisson/pyeclipsesimulator. Python, MIT, 4 stars, last push 2025-09-07. Astropy-based contacts with refraction libraries and Open-Meteo elevation, "compared with xjubier.free.fr" with discrepancies of a few seconds, "purely demonstrative", mostly LLM-generated 20.

AstroWimSara/SolarEclipseWorkbench. Python 3.11, GPL-3.0, 20 stars, last push 2026-08-07. Camera-control workbench computing C1, C2, MAX, C3, C4, sunrise and sunset. "Astropy/IERS is used to compute Delta T (TT − UT1)", solar radius "959.95 ±0.05 arcseconds", a bundled lunar_limb_band_v1.bin, and SPICE kernels for the Moon 21.

sPaMFouR/SolarEclipse. Jupyter, 2 stars, 2021. It uses astropy and astroplan, is "under development", and documents no method 22.

Element generators and textbook ports

i230010/sedategenerator_v2. Python, MIT, 2 stars, last push 2026-09-15. Emits eclipse dates with polynomial elements x0..x3, y0..y3, d0..d3, l10..l13, l20..l23, mu0..mu3, tan f1, tan f2, and ΔT, from a bundled ephem folder whose source is not documented 23.

RyuuNeko1107/umbra-rs. Rust, Apache-2.0 or MIT provisional, 0 stars, last push 2026-09-15. "Experimental pure-Rust solar eclipse prediction engine" with VSOP87, ELP-MPP02 and IERS EOP inputs, mean limb, precision targets of ±1 to 2 s, and the statement that it is "not ready for use" 24.

johanley/custom-solar-eclipse-viewer. Java, no licence stated, 2 stars, last push 2024-06-03. Local circumstances with Meeus's Elements of Solar Eclipses, 1989, as "my main reference" and the 1961 Explanatory Supplement 25.

Starainrt/astro, Go, Apache-2.0, 157 stars, last push 2026-08-06; commenthol/astronomia, JavaScript, MIT, 180 stars; soniakeys/meeus, Go, MIT, 376 stars, 2019; and andrmoel/astronomy-bundle, PHP, MIT, 12 stars, are covered in open-source libraries 26 27 28 29.

curiousleo/twilight, C++, 2013, integrates Sun, Earth and Moon numerically and tests eclipse geometry with tangent lines 30. fizyk20/eclipse-predictor, Rust, 2022, has 8 commits and no README detail 31. ArctynFox/SunSketcher, Java, 2 stars, is the NASA-partnered Android app for crowd-sourced Baily's beads imagery. Its README covers the build only 32.

Comparison matrix

Repository Language Stars Last push Elements source Global path Local contacts Limb Terrain Catalogue Validation stated Licence
Stellarium 33 C++ 9,987 2026-09-15 Computed, own ephemeris Yes Yes No No Yes No GPL-2.0
cosinekitty/astronomy 34 C, JS, Py, C#, Kotlin 1,016 2025-01-27 Geometric Peak only Yes No No Yes Against NOVAS MIT
aloistr/swisseph 35 C 726 2026-09-14 Geometric Central line Yes No No Yes Error budget AGPL or paid
soniakeys/meeus 28 Go 376 2019-03-01 Meeus ch. 54 No No No No Yes No MIT
commenthol/astronomia 27 JavaScript 180 2025-08-30 Meeus ch. 54 No No No No Yes No MIT
Starainrt/astro 26 Go 157 2026-08-06 VSOP87, ELP2000 Yes Yes No No Yes NASA, seconds Apache-2.0
Frencil/eclipsetracks 13 Python, JS 31 2024-02-20 NASA tables Imported No No No No No Apache-2.0
AstroWimSara/SolarEclipseWorkbench 21 Python 20 2026-08-07 SPICE, astropy No Yes Band file No No No GPL-3.0
ebradyjobory/eclipse-explorer 7 JavaScript 16 2010-12-22 NASA Canon No Yes No No No NASA code GPL-2.0
andrmoel/astronomy-bundle 29 PHP 12 active VSOP87, Meeus No Yes No No No No MIT
pmisson/pyeclipsesimulator 20 Python 4 2025-09-07 astropy No Yes No Elevation No vs Jubier, seconds MIT
gmiller123456 Besselian 9 Python 3 2023-03-10 NASA Canon No No No No Data only No NASA terms
i230010/sedategenerator_v2 23 Python 2 2026-09-15 Own ephem No No No No Elements Tests MIT
Xeratec/eclipsite 14 Python 2 2026-08-12 Skyfield DE421 plus NASA No Yes No EU-DEM 25 m No 0.36 s, 0.60 s RMS MIT
johanley/custom-solar-eclipse-viewer 25 Java 2 2024-06-03 Meeus 1989 No Yes No No No No None
sPaMFouR/SolarEclipse 22 Jupyter 2 2021-06-09 astropy No Yes No No No No None
curiousleo/twilight 30 C++ 2 2013-02-02 Integration No No No No Dates No None
ArctynFox/SunSketcher 32 Java 2 2025-09-01 Not stated No App Imagery No No No None
angristan/eclipse 16 TypeScript 1 2026-09-09 astronomy-engine Yes Yes No No 2023 to 2035 few km MIT
carlok/eclipse-3d-sim 18 Python, React 1 2026-07-25 astronomy-engine No Yes No Copernicus 30 m No No None
fizyk20/eclipse-predictor 31 Rust 1 2022-11-26 Not stated No No No No Dates No None
RHerAle/Eclipse-Engine 2 JavaScript 0 2026-09-14 Own, fitted to DE440s Yes Yes No DEM plus OSM 2026 to 2050 Not stated AGPL-3.0
tahze0/solar-eclipse-explorer 3 Python 0 2026-09-08 NASA CSV Yes No No No 11,898 0.26 per cent width MIT
aravpanwar/besselian 4 Python 0 2026-09-14 NASA No Yes No No No Published values AGPL-3.0
Absolute-Eclipse/eclipse-data 5 JavaScript 0 2026-06-17 Espenak No Yes Adjustment Elevation 2026, 2027 1 to 5 s MIT, CC-BY
tomasrojasc/eclipse-2026 15 Python, TS 0 2026-08-12 Skyfield DE421 Band Yes LOLA beads at 16 pixels per degree No 2026 only 84 tests None
johnarban/eclipse_explorer 6 TypeScript 0 2026-07-15 NASA Canon No Yes No No No Tests GPL-3.0
plhery/umbra-eclipse-atlas 8 TypeScript 0 2026-09-08 NASA Canon via library Yes Yes No Copernicus 11,898 Disclaimer MIT
mf4633/eclipse-predictor 17 HTML 0 2026-09-08 astronomy-engine Yes Yes No No 1900 to 2200 1 to 2 km MIT
RyuuNeko1107/umbra-rs 24 Rust 0 2026-09-15 VSOP87, ELP-MPP02 Planned Planned Mean No Planned Not yet Provisional
jpatka/Eclipse-Explorer 19 Python 0 2026-08-14 Skyfield DE421 No Yes No No No No MIT

The five most complete

  1. Stellarium SolarEclipseComputer.cpp: elements, limits, outlines, rise-set curves, contacts and maps with cited equations 33.
  2. RHerAle/Eclipse-Engine: elements fitted to DE440s, full Besselian product set, terrain skyline, radiometry 2.
  3. tahze0/solar-eclipse-explorer: full 5,000-year catalogue reconstruction from the NASA CSV with a measured path-width error 3.
  4. tomasrojasc/eclipse-2026: the only repository that computes Baily's beads from a LOLA DEM with a lunar orientation kernel, in its case the DE421 one 15.
  5. Xeratec/eclipsite: local contacts from two independent methods with published residuals and a DEM skyline gate 14.

Negative findings

No repository was found that derives the northern and southern umbral limits from a lunar limb profile, which is what SVS's umbra_hi polygons encode 36. No repository was found that reads Watts charts. No general-purpose library ships a LOLA-derived limb profile as a reusable function. The GitHub query "eclipse limb profile" returned zero repositories 1.

Sources compared

Method family Representative Strength Gap
NASA elements consumer tahze0, aravpanwar, Absolute-Eclipse Reproduces Espenak to seconds, cheap Inherits NASA's kk, ΔT and no limb
Own elements from JPL kernels Eclipse-Engine, Celestial Programming Independent of NASA, current ephemeris Element accuracy unverified except Miller's seven-decimal match
Geometric on Astronomy Engine angristan, mf4633 No data files, multi-language Few-kilometre paths, mean lunar radius
Skyfield plus DEM or LOLA eclipsite, eclipse-2026 Terrain and beads, published residuals Single-eclipse scope

What a developer should do

Clone Stellarium sparsely (src/core, src/gui) and read SolarEclipseComputer.cpp end to end 33. Read program.js from NASA for the minimal local-circumstance loop 37. Read tomasrojasc/eclipse-2026's bead code for a worked LOLA limb construction with the correct orientation kernel 15. Use tahze0's pipeline as a template for catalogue-scale validation against the NASA CSV 3. Avoid the LLM-generated repositories for anything but ideas, since they state so themselves 20 19.

What this changes

Nothing in the stage design. It establishes that a limb-corrected limit computation has to be written, not imported, and that LOLA-based bead prediction has a small worked precedent.

Open questions

  • Obtain data/eclipses.json and the fitting script from RHerAle/Eclipse-Engine and compare its 2026 elements against NASA's page 2.
  • Obtain tomasrojasc/eclipse-2026's limb-profile module and test it against Jubier's 2026 Baily's beads diagram for one site 15 38.
  • Obtain SolarEclipseWorkbench's lunar_limb_band_v1.bin format description 21.
  • Obtain the @astronomy-bundle/solar-eclipse npm package source (the fetch of its npm page returned 404) to see which element set it bundles 8.

References

  1. 1unsourced GitHub repository search API queries run for this survey Queries run 2026-09-15: besselian elements; solar eclipse calculator; solar eclipse path; eclipse circumstances; solar eclipse besselian; eclipse limb profile; baily beads; eclipse explorer; solar eclipse by language (Rust, Go, Julia, Java, C++); pyeclipse; eclipsecalc; eclipse predictor; solar eclipse Python besselian OR circumstances OR contact. Metadata (stars, language, licence, last push) taken from the repos endpoint.
  2. 2company RHerAle/Eclipse-Engine (eclipseradar.com engine) Read live. Besselian geometry, elements fitted to DE440s, terrain skyline from DEM and OSM, AGPL-3.0, last push 2026-09-14.
  3. 3company tahze0/solar-eclipse-explorer Read live. Reconstructs all 11,898 Canon eclipses from the NASA CSV; path width median error 0.26 percent; MIT; last push 2026-09-08.
  4. 4company aravpanwar/besselian Read live. Local circumstances from NASA elements for 2027 Egypt towns; k1 = 0.272488, k2 = 0.272281, ΔT = 76.0 s; AGPL-3.0.
  5. 5company Absolute-Eclipse/eclipse-data Read live. Verified local circumstances for 9,438 European cities for 2026 and 2027 from Espenak elements; residuals 1 to 5 s; MIT code, CC-BY-4.0 data.
  6. 6company johnarban/eclipse_explorer (TypeScript port of NASA JSEX) Read live. GPL-3.0, 12 commits, SE2001 and SE2024 element files, last push 2026-07-15.
  7. 7company ebradyjobory/eclipse-explorer (mirror of NASA JSEX and JLEX) Read live. One commit (2010), GPL-2.0, 16 stars.
  8. 8company plhery/umbra-eclipse-atlas Read live. Uses @astronomy-bundle/solar-eclipse with NASA Canon elements, Copernicus DEM skyline; MIT.
  9. 9company gmiller123456/FiveMillenniumCanonOfSolarEclipses-Besselian-Elements Read live. Repackaging of the NASA Besselian elements as CSV, JS and JSON; 3 stars; last push 2023-03-10.
  10. 10trade Celestial Programming: Computing Besselian Element Polynomial Coefficients Read live. DE405 extract, formulas for x, y, z, mu, k = 0.2725076, solar radius 6.957e8 m, five-point cubic fit, agreement with Espenak to about seven decimals.
  11. 11trade Celestial Programming: Solar Eclipse Predictions Using Besselian Elements Read live. Work in progress; cites Explanatory Supplement, Meeus, Chauvenet, Green, Smart; code in the Eclipse Map.
  12. 12trade Celestial Programming (Greg Miller) home page Read live. Lists the eclipse map, Besselian polynomial generator and prediction articles.
  13. 13company Frencil/eclipsetracks (EclipseTracks.org) Read live. Scrapes NASA path tables into CZML for Cesium; does not compute the umbra; Apache-2.0; 31 stars.
  14. 14company Xeratec/eclipsite Read live. Skyfield DE421 plus NASA Besselian cross-check (0.36 s mean difference), EU-DEM 25 m skyline, RMS 0.60 s against IGN durations; MIT.
  15. 15company tomasrojasc/eclipse-2026 Read live. Skyfield with DE421, LOLA LDEM_16 limb profile, moon_pa_de421 orientation, Baily's beads per bead; 84 tests; no licence stated.
  16. 16company angristan/eclipse (interactive eclipse map) Read live. astronomy-engine based, WGS84 axis intersection, accuracy a few kilometres; MIT; last push 2026-09-09.
  17. 17company mf4633/eclipse-predictor Read live. Single HTML file, astronomy-engine plus Besselian tracing, claims 1 to 2 km path accuracy; MIT.
  18. 18company carlok/eclipse-3d-sim Read live. Astronomy Engine circumstances plus DEM ray-casting (Copernicus 30 m via OpenTopography); no licence stated.
  19. 19company jpatka/Eclipse-Explorer Read live. Skyfield DE421, refraction; no validation; MIT.
  20. 20company pmisson/pyeclipsesimulator Read live. Astropy based, refraction libraries, compared against Jubier to within seconds; MIT; largely generated by an LLM.
  21. 21company AstroWimSara/SolarEclipseWorkbench Read live. Astropy and IERS for ΔT, solar radius 959.95 arcsec, bundled lunar limb band file, SPICE kernels; GPL-3.0; 20 stars.
  22. 22unsourced sPaMFouR/SolarEclipse Read live. Astropy and astroplan notebook, under development, no method documented.
  23. 23company i230010/sedategenerator_v2 Read live. Produces polynomial Besselian elements and ΔT in CSV; ephemeris source not documented; MIT.
  24. 24unsourced RyuuNeko1107/umbra-rs Read live. Experimental Rust engine, VSOP87 and ELP-MPP02, mean limb, declared not ready for use; last push 2026-09-15.
  25. 25company johanley/custom-solar-eclipse-viewer (Java) and its documentation page Read live. Cites Meeus Elements of Solar Eclipses (1989) and the 1961 Explanatory Supplement; Java; no licence stated.
  26. 26company Starainrt/astro (Go astronomy library) README Read live. VSOP87 and ELP2000/82 built in, Meeus-based, central path and footprints, Apache-2.0, 157 stars.
  27. 27company astronomia src/eclipse.js (commenthol) Read live. Meeus chapter 54 global circumstances only.
  28. 28company soniakeys/meeus eclipse package (Go) Read live. Solar(year) and Lunar(year) return type, central flag, jmax, gamma, magnitude.
  29. 29company andrmoel/astronomy-bundle README Read live. PHP library with local circumstances C1 to C4 from VSOP87 and Meeus; MIT.
  30. 30unsourced curiousleo/twilight Read live. Numerical integration of Sun, Earth and Moon with geometric eclipse test; C++; 2013.
  31. 31unsourced fizyk20/eclipse-predictor Read live. Rust, 8 commits, no README detail.
  32. 32company ArctynFox/SunSketcher Read live. NASA-partnered Android app for Baily's beads imagery; README has build instructions only.
  33. 33company Stellarium src/core/SolarEclipseComputer.cpp Read from a sparse clone at commit 69888f4 (2026-09-14). 2,183 lines. Besselian elements, k and s constants, Explanatory Supplement references, KML and PNG map export.
  34. 34company Astronomy Engine (cosinekitty/astronomy) README Read live. MIT, C, C#, JS, Python, Kotlin; 1 arcminute accuracy claim against NOVAS; predicts lunar and solar eclipses.
  35. 35company Swiss Ephemeris swecl.c (eclipse routines) Read from a depth-1 clone at commit 9083a12 (2026-09-14), SE_VERSION 2.10.03. Functions eclipse_where, eclipse_how, eclipse_when_loc and their constants and comments.
  36. 36primary NASA SVS 5073: The 2023 and 2024 Solar Eclipses: Map and Data Read from a Wayback Machine snapshot (2025) because svs.gsfc.nasa.gov refused connections. Lists the shapefile and KML contents and the data sources (SRTM, LRO, DE421).
  37. 37primary JSEX program.js (JavaScript source of the Solar Eclipse Explorer) Source read in full (36.8 KB, downloaded 2026-09-15). GPL v2+. Contains the local-circumstance algorithm, the observer geocentric constants and the crude refraction handling.
  38. 38company Jubier: EclipseCalculatorGM3_xSE.js (Solar Eclipse Calculator for Google Maps v3) Source read (198 KB, downloaded 2026-09-15). Change log 2007 to 2016, constants, k1/k2 ratio, Watts and Kaguya limb correction hooks, refraction and elevation handling.