Sobre el proyecto

Este proyecto es un simulador de entrenamiento basado en navegador (además de un modo opcional para aula en Windows) para practicar misiones supervisadas de búsqueda y rescate con múltiples drones. Todo está simulado: no se conecta a aeronaves, sistemas de tráfico aéreo, Remote ID, despacho ni cámaras, y explícitamente no está destinado a vuelos reales, emergencias reales o uso regulatorio. Idea central: determinismo. El mismo escenario con las mismas entradas produce la misma misión cada vez — el mismo clima, detecciones y resultado — registrado en un registro de eventos encadenado por hash que se puede reproducir y auditar. Esto hace que las ejecuciones sean comparables entre estudiantes y revisables movimiento a movimiento. Lo que ofrece: - 31 escenarios: 25 misiones de incidentes (búsqueda y rescate costera y de montaña, incendios forestales, inundaciones, desastres históricos) más 6 ejercicios de habilidades inspirados en métodos de prueba NIST (descritos como simulaciones educativas, no aparatos oficiales ni certificación). - Mando de flota para tres a ocho aeronaves: planificación de rutas, sitios de lanzamiento y recuperación, reasignación, vuelo estacionario, desvío, reanudación, recarga, regreso a la base. - Entradas congeladas por escenario para clima, terreno, espacio aéreo, GNSS, térmica y batería, de modo que las ejecuciones sean repetibles en lugar de aleatorias. - Registros de misión con registros de eventos a prueba de manipulación y KML, GeoJSON, reproducción y exportaciones posteriores a la acción. - Tres objetivos de presentación (web móvil, web de escritorio, aula) que comparten la misma matemática de simulación; un mecanismo de paridad de artefactos garantiza que los módulos de simulación, datos de escenarios, puntuación, eventos y hashes de reproducción no varíen según el objetivo. - Cuentas locales almacenadas en el navegador con cifrado derivado de contraseña; nada se sincroniza con un servidor. - Modo aula opcional: un host instructor con Windows ejecuta un relé local con una autoridad certificadora generada específica para la escuela y un certificado de hoja LAN, sirviendo HTTPS/WSS, rechazando tráfico inseguro no de bucle local por defecto, y sin instalar su CA en las máquinas de los estudiantes. Notas de ingeniería: el bucle de simulación es de paso de tiempo fijo y síncrono una vez que el terreno está preparado; el terreno declarado faltante bloquea el lanzamiento en lugar de sustituir una superficie plana. Las entradas de escenario se congelan en el momento de la autoría y el tiempo de ejecución nunca obtiene datos en vivo. Cada objetivo desplegado expone versión, objetivo y SHA de Git en /build-info.json, y un script deploy:status informa los SHA desplegados en relación con main. La puerta de lanzamiento documentada incluye comprobaciones de tipos, lint, pruebas con umbrales de cobertura, compilaciones por objetivo, aserciones de paquete/fixture/paridad/alcance de entrenamiento y npm audit; el README señala que la ruta de promoción diseñada no siempre se ha ejecutado y que la producción a veces se ha actualizado mediante un alias de una compilación de vista previa. Seguridad y limitaciones declaradas por el proyecto: no certificado para aviación real, seguridad pública, despacho, regulatorio u operaciones de emergencia; las superficies regulatorias, de Remote ID y de espacio aéreo/tráfico son capas de entrenamiento con guion; el modelado térmico no produce imágenes radiométricas reales; el almacenamiento de reproducción es limitado y no es un registrador de datos de vuelo; el cifrado local no protege un dispositivo desbloqueado, navegador comprometido, extensión maliciosa, captura de pantalla, keylogger o texto plano exportado; el uso en aula requiere una red privada aprobada, instalación gestionada de CA, política de retención, propietario administrador y lista supervisada; las pruebas del repositorio no implican pruebas de penetración independientes, certificación de accesibilidad ni revisión legal; los mosaicos de mapa normalmente provienen de un tercero y pueden exponer metadatos de solicitud ordinarios. El desarrollo local requiere Node.js 24.x y npm 11.12.1, con npm ci y npm run dev. La licencia es propietaria de código disponible, no de código abierto.