Computing Solar Eclipses — Research

GitHub repositories

workingupdated 2026-09-30softwaregithubrepositoriesbesselianlimbterrain
  • 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. NASA Canon coefficient consumers include tahze0, aravpanwar, Absolute-Eclipse, johnarban and umbra-atlas. Eclipse-Engine consumes independently fitted DE440s elements. Geometric computation on Astronomy Engine or Skyfield and Meeus/textbook ports provide other routes 1 2 3 4.
  • The survey includes public limb work. tomasrojasc/eclipse-2026 builds beads from LOLA for the 2026 eclipse, and SolarEclipseWorkbench ships a limb band file. The surveyed repositories do not derive general limb-corrected path limits 5 6.
  • 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?

Inventory scope

The inventory covers thirty public eclipse-computation repositories documented on 2026-09-15. Repository metadata and author documentation identify languages, licences and capabilities. Star counts and last-push dates describe that snapshot. Image-processing software and unrelated products named Eclipse are outside the scope 7.

Repositories

Besselian element consumers

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", The repository consumes these independent elements. Its element-fitting generator is not published in the surveyed repository. No dependencies. Data CC-BY-SA-4.0 1.

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 2.

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 8.

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 9.

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 10. ebradyjobory/eclipse-explorer. JavaScript, GPL-2.0, 16 stars, one commit in 2010. It mirrors NASA's JSEX and JLEX unchanged 11.

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" 12.

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 13. 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" 14, and a prediction article citing the Explanatory Supplement, Meeus, Chauvenet, Green and Smart 15 16.

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 17.

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" 18.

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 5.

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" 19.

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 20.

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 21.

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 22.

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 23.

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 6.

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

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 25.

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" 26.

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 27.

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 28 4 29 30.

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

Comparison matrix

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

Negative findings

The thirty-repository September 2026 inventory includes no implementation deriving general northern and southern umbral limits from lunar profiles, no Watts-chart reader and no reusable general-library LOLA profile function. This scope leaves room for implementations outside the inventory and for the single-eclipse bead work listed above 7.

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 34. 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 5. Use tahze0's pipeline as a template for catalogue-scale validation against the NASA CSV 2. Avoid the LLM-generated repositories for anything but ideas, since they state so themselves 23 22.

What this changes

Nothing in the stage design. The surveyed implementations do not supply a general limb-corrected path-limit library, 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 1.
  • Obtain tomasrojasc/eclipse-2026's limb-profile module and test it against Jubier's 2026 Baily's beads diagram for one site 5 38.
  • Obtain SolarEclipseWorkbench's lunar_limb_band_v1.bin format description 6.
  • Obtain the @astronomy-bundle/solar-eclipse npm package source to see which element set it bundles 12.

References

  1. 1company RHerAle/Eclipse-Engine README Author README read 2026-09-30 at commit a3aff74127bbe2a7de7cb33f30a8c92c744ab67f. Elements fitted to DE440s; Python reference chain is not in this repository. Public engine consumes the fitted elements. Cached README SHA256 ebfc38b21edc31726bbf810402756136089129f25308ab31ac79eed4f4a1d97c.
  2. 2company 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.
  3. 3company Astronomy Engine source/c/astronomy.c Raw source downloaded 2026-09-15 (122 KB) and grepped. CalcShadow, GeoidIntersect, LocalEclipse, Obscuration, EclipseKindFromUmbra.
  4. 4company astronomia src/eclipse.js (commenthol) Read live. Meeus chapter 54 global circumstances only.
  5. 5company 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.
  6. 6company 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.
  7. 7unsourced 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.
  8. 8company 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.
  9. 9company 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.
  10. 10company 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.
  11. 11company ebradyjobory/eclipse-explorer (mirror of NASA JSEX and JLEX) Read live. One commit (2010), GPL-2.0, 16 stars.
  12. 12company plhery/umbra-eclipse-atlas Read live. Uses @astronomy-bundle/solar-eclipse with NASA Canon elements, Copernicus DEM skyline; MIT.
  13. 13company gmiller123456/FiveMillenniumCanonOfSolarEclipses-Besselian-Elements Read live. Repackaging of the NASA Besselian elements as CSV, JS and JSON; 3 stars; last push 2023-03-10.
  14. 14trade 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.
  15. 15trade 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.
  16. 16trade Celestial Programming (Greg Miller) home page Read live. Lists the eclipse map, Besselian polynomial generator and prediction articles.
  17. 17company Frencil/eclipsetracks (EclipseTracks.org) Read live. Scrapes NASA path tables into CZML for Cesium; does not compute the umbra; Apache-2.0; 31 stars.
  18. 18company 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.
  19. 19company angristan/eclipse (interactive eclipse map) Read live. astronomy-engine based, WGS84 axis intersection, accuracy a few kilometres; MIT; last push 2026-09-09.
  20. 20company mf4633/eclipse-predictor Read live. Single HTML file, astronomy-engine plus Besselian tracing, claims 1 to 2 km path accuracy; MIT.
  21. 21company carlok/eclipse-3d-sim Read live. Astronomy Engine circumstances plus DEM ray-casting (Copernicus 30 m via OpenTopography); no licence stated.
  22. 22company jpatka/Eclipse-Explorer Read live. Skyfield DE421, refraction; no validation; MIT.
  23. 23company pmisson/pyeclipsesimulator Read live. Astropy based, refraction libraries, compared against Jubier to within seconds; MIT; largely generated by an LLM.
  24. 24unsourced sPaMFouR/SolarEclipse Read live. Astropy and astroplan notebook, under development, no method documented.
  25. 25company i230010/sedategenerator_v2 Read live. Produces polynomial Besselian elements and ΔT in CSV; ephemeris source not documented; MIT.
  26. 26unsourced RyuuNeko1107/umbra-rs Read live. Experimental Rust engine, VSOP87 and ELP-MPP02, mean limb, declared not ready for use; last push 2026-09-15.
  27. 27company 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.
  28. 28company 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.
  29. 29company soniakeys/meeus eclipse package (Go) Read live. Solar(year) and Lunar(year) return type, central flag, jmax, gamma, magnitude.
  30. 30company andrmoel/astronomy-bundle README Read live. PHP library with local circumstances C1 to C4 from VSOP87 and Meeus; MIT.
  31. 31unsourced curiousleo/twilight Read live. Numerical integration of Sun, Earth and Moon with geometric eclipse test; C++; 2013.
  32. 32unsourced fizyk20/eclipse-predictor Read live. Rust, 8 commits, no README detail.
  33. 33company ArctynFox/SunSketcher Read live. NASA-partnered Android app for Baily's beads imagery; README has build instructions only.
  34. 34company Stellarium src/core/SolarEclipseComputer.cpp Source read at pinned commit 69888f4f47af2aa4d1c9d14ec3853e874e253c73. SHA256 6ea4ddfac3c2fc921adcb75c06fd6c0062d6e7716ce566c15976c16b2020cbd5. Lines 584-587 use a small-separation angular axis approximation; global limits and observer transformations inspected. Verified 2026-09-30.
  35. 35company Astronomy Engine (cosinekitty/astronomy) README Read live. MIT, C, C#, JS, Python, Kotlin; 1 arcminute accuracy claim against NOVAS; predicts lunar and solar eclipses.
  36. 36company 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.
  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.