relmap v0.1.0: navegación relativista y mapa del espacio-tiempo con Python

Calcula deflexión de luz, retraso de Shapiro y dilatación temporal en el Sistema Solar (y escenas propias) y genera un mapa 3D interactivo animado.

Qué es

relmap es una biblioteca y CLI en Python para navegación relativista: toma masas y posiciones (estimadas, con incertidumbre), resuelve la métrica del espacio-tiempo y traza geodésicas nulas (rayos de luz) y temporales (relojes). Incluye el Sistema Solar completo (Sol, 8 planetas, Plutón, Luna, cinturón de asteroides) con elementos keplerianos aproximados de JPL válidos 1800–2050.

Tres modos de uso:

  • relmap-solar — mapa interactivo del Sistema Solar (HTML + JS, modo oscuro/claro, animación orbital, vistas predefinidas)
  • relmap — tus propias escenas YAML/JSON
  • relmap-pdf — guías pedagógicas (estudiante/profesor) con números calculados al vuelo por el propio código

Qué entrega (v0.1.0)

Capacidad Estado Verificación
Schwarzschild exacto (fase 1) ✅ 1,75″ deflexión luz rozando el Sol; 42,98″/siglo precesión Mercurio
Campo débil multi-cuerpo (fase 2) ✅ Retraso Shapiro vs fórmula analítica; dilatación Tierra 6,95·10⁻¹⁰
Catálogo Sistema Solar (fases 3-4) ✅ 11 cuerpos + cinturón + Luna; posiciones dentro de apsides
Mapa 3D interactivo + animación ✅ Plotly + JS embebido; --offline (~7 MB) o CDN
Monte Carlo incertidumbre ✅ Propaga σ masa/posición a σ deflexión/retraso
Guías PDF (estudiante/profesor) ✅ relmap-pdf --nivel ambos; ReportLab + Matplotlib
Tests ✅ 92 passed, 1 skipped (browser test sin Chromium)
CI ✅ GitHub Actions matrix 3.11/3.12; ruff + compileall + pytest
Licencia ✅ AGPL-3.0-or-later; LICENSE 661 líneas + SPDX en todos los .py

Ejemplo rápido:

python3 -m venv .venv && source .venv/bin/activate pip install -e ".[dev]" pytest # ≈ 1 min relmap-solar --date 2026-11-05 --offline --out sistema_solar.html # Abre sistema_solar.html en el navegador 

Qué NO hace aún

  • Posiciones exactas desde JPL Horizons (script pendiente para descargar y sustituir aproximadas)
  • Planetas enanos distintos de Plutón (Ceres, Eris…) ni lunas de los gigantes
  • Órbitas multi-cuerpo con correcciones post-newtonianas
  • Relatividad numérica (agujeros negros fusionándose)
  • Guías en inglés

Cómo probarlo

git clone https://github.com/amurlaniakea/relmap cd relmap python3 -m venv .venv && source .venv/bin/activate pip install -e ".[dev]" pytest -v relmap-solar --date 2026-11-05 --offline --out sistema_solar.html # WSL: explorer.exe sistema_solar.html relmap-pdf --nivel ambos 

Para escenas propias: relmap examples/sistema_solar.yaml --mc 200 --out mapa.html

Como biblioteca:

from datetime import datetime, timezone from relmap import solar_system_bodies, default_rays, trace_ray bodies = solar_system_bodies(datetime(2026, 11, 5, tzinfo=timezone.utc)) ray = default_rays(bodies)[0] # rasante al Sol res = trace_ray(bodies, ray.origin, ray.direction, ray.length) print(res.deflection_arcsec, res.delay_s) # ≈ 0.8756″ y ≈ 150 µs 

Referencias

  • Repo: https://github.com/amurlaniakea/relmap
  • Documentación: README.md + guías PDF en docs/
  • Datos orbitales/físicos: NASA/JPL (Standish, Planetary Physical Parameters)
  • Motor numérico: SciPy (DOP853, tol 10⁻¹²); gráficos: Plotly; PDF: ReportLab + Matplotlib

Autor: Pedro Sordo Martínez — amurlaniakea@gmail.com
Licencia: AGPL-3.0-or-later