|
| 1 | +# Changelog — Caelis Engine |
| 2 | + |
| 3 | +## [3.0.0] — 2026-05 |
| 4 | + |
| 5 | +### Motor astronómico — Precisión |
| 6 | + |
| 7 | +**Mercurio — VSOP87B oficial** |
| 8 | +- Reemplaza la ecuación del centro anterior (±5–10') por VSOP87B del IMCCE (Bretagnon & Francou 1988) |
| 9 | +- 122 términos extraídos de `VSOP87B.mer` con umbral de amplitud ≥ 1×10⁻⁶ rad/AU |
| 10 | +- Precisión: ±3" longitud, ±2" latitud, ±0.001 AU radio — mejora 10–100× sobre implementación anterior |
| 11 | +- Constantes de fase pre-evaluadas correctamente (fix de `A×cos(π) = −A` en términos constantes) |
| 12 | + |
| 13 | +**Rise / Set — Meeus Cap.15 completo** |
| 14 | +- Interpolación cuadrática de 3 puntos: posiciones en t−1d, t₀, t+1d recalculadas con el motor real |
| 15 | +- ΔT corregido: GMST calculado en JD UT (no TT) — elimina error sistemático de ~1 min |
| 16 | +- 3 iteraciones de corrección de altitud — convergencia garantizada incluso para la Luna |
| 17 | +- h₀ correcto por tipo de cuerpo: Sol −0.8333°, Luna +0.1167° (antes −0.1667°), planetas −0.5667° |
| 18 | +- Resultado en hora local automática vía `Date.getTimezoneOffset()` |
| 19 | +- Mejora: Luna de ±48 min → ±10 min de error vs Stellarium |
| 20 | + |
| 21 | +**RA / Dec — normalización y unidades** |
| 22 | +- `moonPosition()`: RA topocéntrico normalizado a [0, 2π] (corrige RA negativo en ciertas configuraciones) |
| 23 | +- `fmtRA()`: normaliza input a [0, 360°) antes de formatear + carry para 60s/60m |
| 24 | +- Todos los call sites de `fmtRA()` / `fmtDec()` corregidos para pasar grados (no radianes) |
| 25 | +- Estrellas fijas, planetas y Sol en tooltips ahora muestran RA/Dec correctos |
| 26 | + |
| 27 | +### Dashboard |
| 28 | + |
| 29 | +**Nuevas columnas en tabla de posiciones** |
| 30 | +- `Az` (azimut) añadido junto a `Alt` |
| 31 | +- `Rise` y `Set` calculados por fila para todos los cuerpos |
| 32 | +- `AR` renombrado a `RA` (convención estándar) |
| 33 | +- Columnas en nuevo orden: `λ Ecl | β Ecl | RA | Dec | Alt | Az | Dist | Vel | Rise | Set` |
| 34 | + |
| 35 | +**Card Luna expandida** |
| 36 | +- Filas Rise y Set añadidas al resumen de la Luna |
| 37 | + |
| 38 | +**Card Tiempo** |
| 39 | +- Nueva fila `Local` (hora del dispositivo con timezone) como primera línea, destacada |
| 40 | +- UTC permanece como segunda fila |
| 41 | + |
| 42 | +**Planetas — limpieza de datos** |
| 43 | +- Urano y Neptuno eliminados de todas las tablas (sin algoritmo implementado) |
| 44 | +- Keys de planetas corregidas para coincidir con los nombres de `heliocentricCoords()` |
| 45 | + |
| 46 | +### Motor de tiempo |
| 47 | + |
| 48 | +**Loop de animación — delta-time real** |
| 49 | +- `timeOffset += timeSpeed*(1/60)` reemplazado por delta-time basado en `performance.now()` |
| 50 | +- Cap de 500ms para saltos grandes (tab en background, sleep del sistema) |
| 51 | +- Cuando `timeSpeed === 1` (tiempo real): `timeOffset = 0` — anclado a `Date.now()` sin drift |
| 52 | +- `_lastFrameTime` se resetea en `resetNow()` para evitar deltas acumulados tras saltos manuales |
| 53 | + |
| 54 | +### Correcciones de bugs |
| 55 | + |
| 56 | +- `_iaUpdateContextLabel` eliminado de `_applyLang()` (función eliminada en v3.0, llamada huérfana) |
| 57 | +- `observer.lon` en `_riseSetForBody` corregido a `lon` (variable global, no objeto inexistente) |
| 58 | +- `ocuToggleArmilar()` protegido con guards null para `btnArmilar` (elemento eliminado en v3.0) |
| 59 | +- Variable `t` (blend por planeta) eliminada de `renderOculus()` — reemplazada por `tG` (blend global) |
| 60 | + |
| 61 | +### Modo Armilar 3D |
| 62 | + |
| 63 | +**Posicionamiento astronómico real** |
| 64 | +- Nueva variable `armilarReal`: cuando activa, los planetas se posicionan en `(cos(dec)cos(ra), sin(dec), cos(dec)sin(ra)) × orbitR` — coordenadas esféricas ecuatoriales directas del motor |
| 65 | +- Blend animado `armilarBlendGlobal` (0→1) para transición suave libre ↔ real |
| 66 | +- La pulsación estética se reduce a 15% en modo real para no distorsionar posiciones |
| 67 | + |
| 68 | +**Capas visuales armilares** (todas activables/desactivables) |
| 69 | +- Eclíptica: `TorusGeometry` inclinado 23.44° (oblicuidad real), dorado |
| 70 | +- Ecuador ecuatorial: anillo horizontal Y=0, azul |
| 71 | +- Horizonte local: inclinado según `lat` del observador, verde |
| 72 | +- Meridiano: plano YZ, naranja |
| 73 | +- Grid de declinación: anillos en ±30° y ±60°, azul oscuro |
| 74 | + |
| 75 | +**Escala radial** |
| 76 | +- Slider Uniforme ↔ Logarítmica (proporcional a AU reales) |
| 77 | +- `OCU_SCALE_LOG` con radios logarítmicos normalizados por planeta |
| 78 | + |
| 79 | +**Panel rediseñado** — secciones: Modo / Esferas / Escala / Paleta / Estelas / Astros |
| 80 | + |
| 81 | +**Acceso** |
| 82 | +- Modo accesible mediante secuencia de interacción en el dashboard |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## [2.2.0] — 2024 |
| 87 | + |
| 88 | +- Motor VSOP87 base (Meeus Apéndice II) para Venus, Tierra, Marte, Júpiter, Saturno |
| 89 | +- ELP/MPP02 para Luna (Meeus Cap.47) |
| 90 | +- Nutación IAU 2000B |
| 91 | +- Aberración anual (Meeus §23) |
| 92 | +- Light-time iterativo |
| 93 | +- Astrolabio estereográfico 2D |
| 94 | +- Dashboard de efemérides inicial |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +## [1.5.0] — 2024 |
| 99 | + |
| 100 | +- Motor inicial: atasir.js, astrocore.js, timeengine.js (arquitectura multi-archivo) |
| 101 | +- Algoritmos simplificados (ecuación del centro, coordenadas aproximadas) |
| 102 | +- Primer prototipo de visualización astronómica |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +*Hermetica Labs · CC BY-NC-ND 4.0* |
0 commit comments