Changelog do motor

Versionamento semantico (MAJOR.MINOR.PATCH). MAJOR para mudancas que quebram compatibilidade. MINOR para features novas. PATCH para fixes que nao alteram saidas existentes.

v2.2.0 — 2026-04-29 (atual)

Marco L2 + L3 + L4 + L6++ — Sistema solar completo, atlas estelar, pequenos corpos.

  • VSOP87D full para os 7 planetas (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune): 31577 termos brutos baixados do IMCCE, 12104 preservados apos truncagem em 1e-7 rad / 1e-9 AU. Validado contra Meeus 32.a (Venus heliocentrico) com erro de 3.3 arcsec.
  • core/astro/ephemeris/PlanetEphemerisVSOP87.php: classe que computa posicao geocentrica com light-time iterativo (3 passes), conversao ecliptic-equatorial, magnitude aparente Meeus 41.
  • Paginas /laboratorio/planeta/{nome}: 7 paginas individuais para cada planeta com posicao em tempo real.
  • Hub /laboratorio/planetas: tabela viva dos 7 planetas com RA, Dec, magnitude, fase, elongacao.
  • API /api/v1/planeta: endpoint REST para qualquer planeta.
  • core/astro/StarCatalog.php: acesso a top 80 estrelas brilhantes (HIP) + 88 constelacoes IAU.
  • Paginas /laboratorio/atlas, atlas-estrela, atlas-constelacao: catalogo navegavel com nomes em PT, EN e Latim, formas genitivas, RA/Dec J2000.
  • core/astro/charts/LunarGlobe.php: SVG do globo lunar com terminator e libracao.
  • core/astro/charts/EclipseMap.php: mapa-mundi para mostrar visibilidade de eclipses.
  • core/astro/ephemeris/KeplerEphemeris.php: solver de Kepler para pequenos corpos (asteroides + cometas).
  • 22 asteroides numerados com elementos osculadores JPL SBDB: Ceres, Pallas, Juno, Vesta, Hygiea, Eros, Ida, Apophis, Bennu, Ryugu, Itokawa, Didymos, etc.
  • 10 cometas historicos: Halley, Hale-Bopp, NEOWISE, Hyakutake, Churyumov-Gerasimenko, Tempel 1, Borrelly, Wild 2, Tsuchinshan-ATLAS, Borisov.
  • Paginas /laboratorio/asteroides + asteroide individual: posicao geocentrica em tempo real, elementos orbitais, contexto editorial.
  • Endpoints visuais /laboratorio/lunar-globe, /laboratorio/sky-chart: SVG server-rendered.
  • 16 testes VSOP87 planetario (test_phase16_planets.php), todos pass. Adiciona ao total existente.
Total de paginas do laboratorio: hub + 5 docs + lua + 7 planetas + planetas hub + sky-chart + lunar-globe + atlas + ~50 estrelas + 88 constelacoes + asteroides hub + 22 asteroides individuais. ~180 paginas auditaveis.

v2.1.0 — 2026-04-28

Marco L0+L1+L5+L6+L8 — Laboratorio Astronomico inaugurado.

  • Estrutura /laboratorio/ criada com hub, paginas docs (precisao, metodologia, fontes, glossario, changelog).
  • Hub /astronomia/ criado para trilha publica de intent rapido.
  • IAU 2006 P03 precessao implementada em core/astro/frames/PrecessionIAU2006.php (Capitaine, Wallace & Chapront 2003).
  • Frame Bias matrix B em core/astro/frames/FrameBias.php (IERS Conventions 2010 Eq. 5.18).
  • Cadeia NPB (Nutacao x Precessao x Bias) em core/astro/frames/NPBChain.php: ICRS <-> true of date.
  • Eclipses Besselian em core/astro/eclipse/BesselianElements.php: classifica eclipses solares (parcial/anular/total) e lunares (penumbral/parcial/total) com gamma e magnitude.
  • SVG charts server-rendered: SvgChart, SkyChartPolar (estereografica), AltitudeTrack (altitude vs tempo).
  • Endpoint /laboratorio/sky-chart: mapa do ceu para qualquer data + localizacao.
  • API REST interna em /api/v1/: lua, sol, health, version. Restrita a localhost / X-OC-Internal por enquanto.
  • InputValidator com limites cientificamente justificados (latitude, altitude, pressao, temperatura, refracao, ΔT, UT1-UTC, TAI-UTC, datetime).
  • i18n PT/EN com hreflang em todas paginas do laboratorio.
  • 21 testes IAU 2006 (test_phase12_iau2006_frames.php), 15 testes charts (test_phase14_charts.php), 9 testes Besselian (test_phase15_besselian.php). Total: 45 novos testes, 100% pass.
  • Validacao contra NASA Espenak: gamma com erro de 0.001 em eclipses solares, magnitude lunar com erro de 0.02.

v2.0.0 — 2026-04-27

Refatoracao em camadas SSOT (Single Source of Truth).

  • Layered architecture: motor reorganizado em core/astro/ com 30+ classes especializadas (TimeScales, Coordinates, MoonPosition, SunPosition, ObserverModel, TopocentricTransformer, RiseSetTransitSolver, PhaseGeometryCalculator, etc).
  • ELP-2000/82B full: 36 series carregadas em elp_all.php (8467 termos preservados apos truncagem em 0.0001 arcsec). Reproduz Meeus 47.a com erro < 0.02 arcsec.
  • VSOP87D Sun: 58 termos truncados (35 L + 7 B + 16 R), substituindo as series simplificadas anteriores.
  • IAU 2000A nutation opt-in: 1365 termos completos disponiveis via observer.nutation_model = 'iau2000a'. Default permanece IAU 1980 para compatibilidade.
  • 3 modelos de refracao: Bennett 1982 (default), Saemundsson 1986, None (modo astrometrico).
  • Espenak-Meeus ΔT: polinomio completo em 9 ramos historicos cobrindo 4000 BC – 3000 AD.
  • Topocentric transformer: paralaxe via elipsoide WGS84 (opcional, default esfera para compatibilidade).
  • Time scale bundle: UTC, UT1, TAI, TT, TDB explicitos em cada saida.
  • Calendarios multiculturais: gregoriano, juliano, hijri, hebraico, chines.
  • Folclore lunar: nomes de Lua Cheia/Nova por mes (Algonquin) + termos Tupi-Guarani por fase.
  • Birth date metrics: lunacoes vividas, dias, anos.
  • Validation suite: 30+ scripts test_phase*.php cobrindo cada camada.
  • JPL Horizons benchmark: 322 pontos seed, 9/9 metricas dentro de tolerancia.
Marco editorial: criacao do /laboratorio/ com paginas /precisao, /metodologia, /fontes, /glossario e este changelog.

v1.x.x — 2026-04 e anteriores

Versoes anteriores antes da refatoracao em camadas. Implementacao monolitica em MoonPhaseCalculator.php com aproximacoes de baixa ordem (sufficient para uso recreativo/educacional simples mas nao para validacao cientifica). Mantida em lua/data/MoonPhaseCalculator.php para compatibilidade com paginas publicas que nao precisam da precisao do v2.

Roadmap proximas versoes

v2.1.0 — Frames IAU 2006

  • IAU 2006 P03 precessao (substitui IAU 1976)
  • Frame bias matrix B (ICRS → equador medio J2000)
  • Cadeia ICRS → BCRS → GCRS → CIRS → ITRS
  • TT-TDB diferenca relativistica completa

v2.2.0 — Sistema solar

  • VSOP87D FULL para 7 planetas (Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune)
  • Paginas individuais por planeta em /laboratorio/planeta/{nome}
  • Predicao de oposicoes e maior elongacao

v2.3.0 — Atlas estelar

  • Catalogo Hipparcos top 5000
  • 88 constelacoes IAU + culturas Tupi, Yanomami, Chinesa, Indiana
  • Paginas /laboratorio/atlas/constelacao/{nome} e /laboratorio/atlas/estrela/{HIP}

v2.4.0 — Pequenos corpos

  • 5000 asteroides com elementos osculadores Keplerianos
  • 100 cometas historicos numerados
  • Predicao de proximas aparicoes

v2.5.0 — Eclipses Besselian

  • Elementos Besselianos completos
  • Mapa de visibilidade global
  • Magnitude local exata para qualquer cidade

v2.6.0 — Saidas graficas

  • Sky chart 2D estereografica polar SVG
  • All-sky panoramic SVG
  • Lunar globe com terminator
  • Eclipse path maps
  • Sistema solar vista superior

v3.0.0 — DE440 com lazy load

  • Leitor SPK em PHP
  • Suporte ao DE440 (1550-2650, 114 MB binario)
  • Toggle engine=elp (default) vs engine=de440
  • Precisao de metros em vez de arcsec

Politica de compatibilidade

  • MAJOR (X.0.0): pode quebrar API ou alterar saidas existentes. Anunciada com 90 dias de antecedencia.
  • MINOR (x.Y.0): novas features ou novos campos de saida, sem quebrar existentes.
  • PATCH (x.y.Z): correcao de bugs ou aumentos de precisao que nao mudam contratos.

Veja a metodologia atual, validacao de precisao, e bibliografia completa.