Skip to content

Commit b403f9b

Browse files
committed
feat: Caelis Engine 3.0 — VSOP87B, Armilar Mode, suite de tests v3.0
Motor: - caelis_engine_3_0.html: monolito ~540KB, sin dependencias externas - AstroCore.js v3.0: vsop87Mercurio VSOP87B oficial IMCCE (122 terms, +-3'') - AstroCore.js v3.0: moonPosition RA normalizado a [0, 2pi] - TimeEngine.js / Atacir.js: sin cambios funcionales Tests: - tests/test_precision.js: 45/45 PASS (suite independiente, sin deps) - tests/astrocore.test.js: VSOP87B + RA normalizacion añadidos - tests/timeengine.test.js: deltaT 2026 corregido, snapshot 2026 añadido - tests/atacir.test.js: NodoNorte.ra >= 0 verificado Limpieza: - Elimina: index (duplicado), README_npm, sync_caelis.ps1, sync_caelis_v22.ps1 - Archivos legacy (suite_v2, validation, audit) conservados en OLD/ - README.md (EN) + README_es.md (ES) como documentacion oficial - src/vsop87/ + src/elp/ con README de referencia
1 parent 1a8a4d8 commit b403f9b

22 files changed

Lines changed: 14434 additions & 1838 deletions

CHANGELOG.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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*
File renamed without changes.

0 commit comments

Comments
 (0)