DEV Community

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

Posted on Edited on

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

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Referencias


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

Top comments (0)