Plataforma de inteligencia meteorológica aeronáutica en tiempo real y Heads-Up Display (HUD) de seguridad para pilotos de drones, parapentistas, paracaidistas y aviación general.
Zefyrio es una Progressive Web App (PWA) de alto rendimiento que consolida y analiza datos meteorológicos, geomagnéticos y de espacio aéreo en una interfaz de cabina (HUD) densa y optimizada para dispositivos móviles.
Mediante triangulación GPS de alta precisión o geolocalización IP en los servidores (Edge-level), la plataforma entrega reportes hiperlocales y un motor de toma de decisiones automatizado que categoriza el vuelo como GO / CAUTION / NO-GO según el perfil del vehículo configurado.
El diseño está optimizado para su uso en campo: interfaz oscura nativa, controles táctiles ergonómicos, y estética premium de glassmorphism (paneles translúcidos y desenfoques Gaussianos).
El proyecto sigue una estructura limpia utilizando Next.js 16.2 (App Router) y Zustand para la gestión de estado global reactivo:
zefyrio/
├── src/
│ ├── app/ # Enrutamiento, layouts y proxies API
│ │ ├── api/ # Endpoints de consulta y proxies backend
│ │ ├── auth/ # Flujos de autenticación de Supabase
│ │ ├── login/ # Página de acceso/registro
│ │ ├── globals.css # Estilos globales y variables de Tailwind v4
│ │ └── page.tsx # HUD Principal / Tablero de mandos
│ ├── components/ # Componentes modulares y reutilizables
│ │ ├── map/ # Leaflet, capas satelitales, espacio aéreo e interactividad
│ │ ├── navigation/ # Menú y barra de navegación inferior móvil
│ │ ├── telemetry/ # Indicadores HUD, perfiles, NOTAMs, gráficos y registros
│ │ ├── ui/ # Modales, menús de usuario y gestores PWA
│ │ └── weather/ # Tableros METAR, Windy integrado y gráficos sparkline
│ ├── lib/ # Lógica de negocio y utilidades nucleares
│ │ ├── api/ # Clientes de llamadas API (telemetría, base de datos)
│ │ ├── i18n/ # Soporte internacional (Español / Inglés)
│ │ └── supabase/ # Clientes de cliente/servidor y scripts de base de datos
│ └── store/ # Gestión de estado de Zustand (useStore.ts)
- Motor Multi-Perfil: Diseñado para soportar múltiples aeronaves (Dron, Helicóptero, Avión, Parapente, Paracaídas) con límites operacionales independientes.
- Algoritmo GO/NO-GO: Evaluación instantánea basada en parámetros críticos de seguridad (viento, ráfagas, visibilidad, índice KP geomagnético, NOTAMs y precipitaciones).
- Búsqueda Universal Avanzada: Búsqueda integrada que combina códigos de aeropuertos de la OACI (ICAO) y geocodificación global de poblaciones (Open-Meteo).
- Geolocalización Híbrida: Localización rápida mediante IP con superposición automática del GPS del navegador para máxima precisión geográfica en el campo.
- Visor Leaflet: Capas seleccionables (Google Vector/Satélite y CartoDB Dark Mode).
- Marcadores METAR Dinámicos: Aeropuertos colorizados en tiempo real según categoría de vuelo (VFR / MVFR / IFR / LIFR) mostrando TAF y NOTAMs al hacer clic.
- Espacio Aéreo (Airspaces): Capas de restricciones cargadas dinámicamente (Zonas Restringidas, Peligrosas, Prohibidas, CTR, TMA, zonas de planeadores y aeromodelismo). Optimizado para Sudamérica / Colombia mediante respaldo GeoJSON local (
co_asp.geojson). - Radar de Lluvia: Animación en tiempo real de precipitaciones integrando la API de RainViewer.
- Tráfico ADS-B: Módulo listo para renderizar posiciones en tiempo real de aeronaves tripuladas cercanas mediante la red de OpenSky Network.
- Decodificador METAR: Reportes de aeródromos oficiales parsed a lenguaje humano.
- Pronóstico de Viento Vertical: Gráfico dinámico que muestra la velocidad y dirección del viento en diferentes alturas críticas (Superficie, 50m, 80m, 120m y 180m / 400ft AGL) para análisis previo al despegue.
- Gráficos Sparkline de 24h: Visualización interactiva hora por hora de viento, temperatura, ráfagas, humedad y visibilidad con colores de alerta integrados.
- Techo de Nubes Estimado: Cálculo de la base de nubes en pies AGL basado en la fórmula psicrométrica de Espy (diferencia de temperatura y punto de rocío).
- Clima Extendido: Sección de previsión a 8 días con modal detallado estilo bottom-sheet.
- Grabador de Sesión: Inicio y finalización del vuelo cronometrados, capturando un snapshot JSON del clima en tiempo real.
- Analíticas Integradas: Totalizador de horas de vuelo, número de despegues y condiciones promedio.
El backend de base de datos corre sobre Supabase (PostgreSQL) con políticas de Row Level Security (RLS) activadas por defecto para asegurar la confidencialidad de los vuelos de cada piloto.
public.profiles: Almacena los perfiles de los pilotos (UUID ligado aauth.users).public.flight_profiles: Parámetros meteorológicos de seguridad configurados por el piloto para cada tipo de vehículo (dron,plane,helicopter,paraglider,parachute).public.favorite_locations: Waypoints y lugares frecuentes guardados por latitud/longitud.public.flight_sessions: Historial de vuelos guardados con duración y snapshot JSONB del clima (conditions).public.push_subscriptions: Puntos de enlace Web Push vinculados por dispositivo del usuario para recibir alertas automatizadas.
El backend cuenta con un Trigger en base de datos (handle_new_user()) que genera automáticamente el perfil del piloto y configura un perfil de vuelo tipo Dron con límites estándar de seguridad cuando se registra un usuario nuevo por primera vez.
Crea un archivo .env.local en la raíz del proyecto. Este archivo contiene las claves de conexión de Supabase y las API tokens de los proveedores meteorológicos:
# Supabase Backend
NEXT_PUBLIC_SUPABASE_URL=https://tu-proyecto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu-clave-anonima-jwt
# Bypass de Autenticación para Desarrollo Local (true = salta el login)
NEXT_PUBLIC_DEV_BYPASS_AUTH=true
# API Keys de Proveedores de Datos
OPENAIP_API_KEY=tu-clave-de-open-aip # Espacios aéreos y NOTAMs globales
AVIATIONSTACK_API_KEY=tu-clave-de-aviation-stack # Cobertura de telemetría de vuelos comerciales
# Configuración de Notificaciones Push (Web Push VAPID)
# Generar claves con: npx web-push generate-vapid-keys
NEXT_PUBLIC_VAPID_PUBLIC_KEY=tu-vapid-public-key
VAPID_PRIVATE_KEY=tu-vapid-private-key
VAPID_SUBJECT=mailto:tu-correo@dominio.comEl sistema de alerta del HUD analiza en tiempo real las variables meteorológicas locales y aplica las siguientes reglas restrictivas por defecto para sub-25 kg multirrotores:
| Variable | Umbral GO | Umbral CAUTION | Umbral NO-GO | Razón Técnica |
|---|---|---|---|---|
| Lluvia / Precipitación | 0 mm | — | > 0 mm | Riesgo de cortocircuito y daño eléctrico. |
| Ráfagas en Superficie | < 22 km/h | 22 - 30 km/h | > 30 km/h | Desestabilización de actitud y pérdida de control física. |
| Viento a 120m (400ft) | < 15 km/h | 15 - 25 km/h | > 25 km/h | Corrientes fuertes en altura, deriva de retorno difícil. |
| Índice Geomagnético Kp | < 4.0 | 4.0 - 4.5 | > 4.5 | Interferencia electromagnética solar en GPS (riesgo fly-away). |
| Visibilidad Horizontal | > 5 km | 3 - 5 km | < 3 km | Pérdida de línea visual directa (VLOS) requerida por ley. |
git clone https://github.com/Cesar-Matta/zefyrio-platform.git
cd zefyrio-platform
npm installnpm run dev
# El servidor se iniciará por defecto en http://localhost:3007npm run build
npm run startZefyrio está construido para ser 100% instalable en smartphones y ordenadores:
- En iOS (Safari): Presiona el botón de compartir y selecciona "Añadir a la pantalla de inicio".
- En Android (Chrome): Haz clic en el banner flotante de instalación o en el menú de opciones de tres puntos y selecciona "Instalar aplicación".
- Modo Offline: Gracias al Service Worker incorporado, los paneles principales e interfaces se cargan de forma instantánea incluso si pierdes señal en zonas rurales de vuelo.
Desarrollado y mantenido por Cesar Matta (@Nodyt) — Desarrollador Full-Stack. Parte de la suite de herramientas y productos digitales del ecosistema Nodyt.
Zefyrio — Meteorología para Drones. Fly informed, fly safe.