v2.2.0 — 2026-04-29 (current)
Milestone L2 + L3 + L4 + L6++ — Full solar system, stellar atlas, small bodies.
- VSOP87D full for the 7 planets (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune): 31577 raw terms pulled from IMCCE, 12104 preserved after truncation at 1e-7 rad / 1e-9 AU. Validated against Meeus 32.a (heliocentric Venus) with 3.3 arcsec error.
- core/astro/ephemeris/PlanetEphemerisVSOP87.php: class that computes geocentric position with iterative light-time (3 passes), ecliptic-equatorial conversion, apparent magnitude Meeus 41.
- Pages /laboratorio/planeta/{name}: 7 individual pages for each planet with real-time position.
- Hub /laboratorio/planetas: live table of the 7 planets with RA, Dec, magnitude, phase, elongation.
- API /api/v1/planeta: REST endpoint for any planet.
- core/astro/StarCatalog.php: access to the top 80 bright stars (HIP) + 88 IAU constellations.
- Pages /laboratorio/atlas, atlas-estrela, atlas-constelacao: navigable catalogue with names in PT, EN and Latin, genitive forms, RA/Dec J2000.
- core/astro/charts/LunarGlobe.php: SVG of the lunar globe with terminator and libration.
- core/astro/charts/EclipseMap.php: world map to show eclipse visibility.
- core/astro/ephemeris/KeplerEphemeris.php: Kepler solver for small bodies (asteroids + comets).
- 22 numbered asteroids with JPL SBDB osculating elements: Ceres, Pallas, Juno, Vesta, Hygiea, Eros, Ida, Apophis, Bennu, Ryugu, Itokawa, Didymos, etc.
- 10 historic comets: Halley, Hale-Bopp, NEOWISE, Hyakutake, Churyumov-Gerasimenko, Tempel 1, Borrelly, Wild 2, Tsuchinshan-ATLAS, Borisov.
- Pages /laboratorio/asteroides + individual asteroid: real-time geocentric position, orbital elements, editorial context.
- Visual endpoints /laboratorio/lunar-globe, /laboratorio/sky-chart: SVG server-rendered.
- 16 planetary VSOP87 tests (test_phase16_planets.php), all pass. Adds to the existing total.
v2.1.0 — 2026-04-28
Milestone L0+L1+L5+L6+L8 — Astronomical Laboratory launched.
- Structure /laboratorio/ created with hub, docs pages (precision, methodology, sources, glossary, changelog).
- Hub /astronomia/ created for the fast-intent public trail.
- IAU 2006 P03 precession implemented in
core/astro/frames/PrecessionIAU2006.php(Capitaine, Wallace & Chapront 2003). - Frame Bias matrix B in
core/astro/frames/FrameBias.php(IERS Conventions 2010 Eq. 5.18). - NPB chain (Nutation x Precession x Bias) in
core/astro/frames/NPBChain.php: ICRS <-> true of date. - Besselian eclipses in
core/astro/eclipse/BesselianElements.php: classifies solar (partial/annular/total) and lunar (penumbral/partial/total) eclipses with gamma and magnitude. - Server-rendered SVG charts:
SvgChart,SkyChartPolar(stereographic),AltitudeTrack(altitude vs time). - Endpoint /laboratorio/sky-chart: sky map for any date + location.
- Internal REST API at
/api/v1/:lua,sol,health,version. Restricted to localhost / X-OC-Internal for now. - InputValidator with scientifically justified limits (latitude, altitude, pressure, temperature, refraction, ΔT, UT1-UTC, TAI-UTC, datetime).
- PT/EN i18n with hreflang on every laboratory page.
- 21 IAU 2006 tests (test_phase12_iau2006_frames.php), 15 chart tests (test_phase14_charts.php), 9 Besselian tests (test_phase15_besselian.php). Total: 45 new tests, 100% pass.
- Validation against NASA Espenak: gamma with 0.001 error on solar eclipses, lunar magnitude with 0.02 error.
v2.0.0 — 2026-04-27
Refactor into SSOT (Single Source of Truth) layers.
- Layered architecture: engine reorganized into
core/astro/with 30+ specialized classes (TimeScales,Coordinates,MoonPosition,SunPosition,ObserverModel,TopocentricTransformer,RiseSetTransitSolver,PhaseGeometryCalculator, etc). - ELP-2000/82B full: 36 series loaded in
elp_all.php(8467 terms preserved after truncation at 0.0001 arcsec). Reproduces Meeus 47.a with error < 0.02 arcsec. - VSOP87D Sun: 58 truncated terms (35 L + 7 B + 16 R), replacing the previously simplified series.
- IAU 2000A nutation opt-in: full 1365 terms available via
observer.nutation_model = 'iau2000a'. Default stays IAU 1980 for compatibility. - 3 refraction models: Bennett 1982 (default), Saemundsson 1986, None (astrometric mode).
- Espenak-Meeus ΔT: full polynomial in 9 historical branches covering 4000 BC – 3000 AD.
- Topocentric transformer: parallax via WGS84 ellipsoid (optional, default sphere for compatibility).
- Time scale bundle: UTC, UT1, TAI, TT, TDB explicit in every output.
- Multicultural calendars: Gregorian, Julian, Hijri, Hebrew, Chinese.
- Lunar folklore: Full/New Moon names by month (Algonquin) + Tupi-Guarani phase terms.
- Birth date metrics: lunations lived, days, years.
- Validation suite: 30+
test_phase*.phpscripts covering each layer. - JPL Horizons benchmark: 322 seed points, 9/9 metrics within tolerance.
v1.x.x — 2026-04 and earlier
Earlier versions before the layered refactor. Monolithic implementation in MoonPhaseCalculator.php with low-order approximations (sufficient for simple recreational/educational use but not for scientific validation). Kept in lua/data/MoonPhaseCalculator.php for compatibility with public pages that do not need v2 precision.
Roadmap for upcoming versions
v2.1.0 — IAU 2006 frames
- IAU 2006 P03 precession (replaces IAU 1976)
- Frame bias matrix B (ICRS → J2000 mean equator)
- Chain ICRS → BCRS → GCRS → CIRS → ITRS
- Complete TT-TDB relativistic difference
v2.2.0 — Solar system
- VSOP87D FULL for 7 planets (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune)
- Individual pages per planet at
/laboratorio/planeta/{name} - Prediction of oppositions and greatest elongation
v2.3.0 — Stellar atlas
- Hipparcos top 5000 catalogue
- 88 IAU constellations + Tupi, Yanomami, Chinese, Indian cultures
- Pages
/laboratorio/atlas/constelacao/{name}and/laboratorio/atlas/estrela/{HIP}
v2.4.0 — Small bodies
- 5000 asteroids with Keplerian osculating elements
- 100 numbered historic comets
- Prediction of upcoming apparitions
v2.5.0 — Besselian eclipses
- Complete Besselian elements
- Global visibility map
- Exact local magnitude for any city
v2.6.0 — Graphical outputs
- 2D polar stereographic SVG sky chart
- All-sky panoramic SVG
- Lunar globe with terminator
- Eclipse path maps
- Solar system top-down view
v3.0.0 — DE440 with lazy load
- SPK reader in PHP
- DE440 support (1550-2650, 114 MB binary)
- Toggle
engine=elp(default) vsengine=de440 - Meter precision instead of arcsec
Compatibility policy
- MAJOR (X.0.0): may break API or change existing outputs. Announced 90 days in advance.
- MINOR (x.Y.0): new features or new output fields, without breaking existing ones.
- PATCH (x.y.Z): bug fixes or precision improvements that do not change contracts.
See the current methodology, precision validation, and full bibliography.