Simulador TDC (submarinos Tipo VII)
Simulador web del computador de tiro de torpedos (TDC) de los submarinos Tipo VII.
01 Problema y contexto
El computador de datos de tiro de los submarinos Tipo VII resolvía con engranajes un problema de intercepción: dónde estará el blanco cuando llegue el torpedo. Reconstruirlo es fácil si se le dan datos ideales; la dificultad está en respetar el procedimiento real, donde la velocidad del blanco se cronometraba a ojo por el periscopio y la distancia se estimaba con un estadímetro.
El computador de datos de tiro de los submarinos Tipo VII resolvía con engranajes un problema de intercepción: dónde estará el blanco cuando llegue el torpedo. Este proyecto reconstruye ese cálculo como aplicación web, con el motor trigonométrico separado por completo de la interfaz. La dificultad no está en el álgebra sino en respetar el procedimiento: la velocidad del blanco se obtiene cronometrando cuánto tarda su eslora en cruzar el periscopio y la distancia se estima con el estadímetro, de modo que el modelo recibe las mismas entradas imperfectas que tenía la tripulación.
02 Solución
El motor trigonométrico queda separado por completo de la interfaz: resuelve el triángulo de tiro por intersección de trayectorias y se expone como API, con un endpoint por cada cálculo del procedimiento para poder probar cada instrumento por separado. Encima, dos vistas sobre el mismo motor: los diales de latón que replican el flujo real de a bordo, y un diagrama en planta con los vectores cruzándose en el punto de impacto.
- Reconstrucción del procedimiento de a bordo: cómo se obtenía el ángulo de desviación y qué instrumentos alimentaban el cálculo.
- Motor de cálculo en Python resolviendo el triángulo de tiro por intersección de trayectorias, con las entradas validadas por Pydantic.
- API en FastAPI con un endpoint por cada cálculo del procedimiento, de modo que cada instrumento se pueda probar por separado.
- Frontend en Next.js con dos vistas sobre el mismo motor: diales de latón que replican el flujo real y un diagrama en planta con los vectores cruzándose en el punto de impacto.
- Despliegue del cliente en Vercel con el backend expuesto como servicio Python independiente.
03 Resultados
Cifras verificables en el repositorio y su documentación:
04 Cómo está construido
Simulador educativo del computador de pre-retención de torpedos TVhRe C/37 y S3 usado en los submarinos Tipo VII de la Kriegsmarine. Un backend FastAPI implementa el motor trigonométrico que resuelve el triángulo de tiro (ángulo de desviación o Vorhaltwinkel) mediante una ecuación cuadrática de intercepción, además de calcular velocidad por cronómetro de eslora y distancia por estadímetro. El frontend Next.js ofrece dos vistas conmutables: un modo realista con diales de latón y un modo técnico con diagrama 2D de vectores.
05 Decisiones éticas
- Es un sistema de armas de los años cuarenta y se trató como pieza de historia de la computación, no como producto. El alcance se limitó a propósito a la geometría del triángulo de tiro y a los instrumentos de medición: no hay táctica, no hay objetivos y nada de esto tiene utilidad operativa hoy.
- El modelo matemático completo queda a la vista en el repositorio, con sus supuestos escritos, para que cualquiera pueda comprobar qué se simula y qué se omite.
06 Aspectos destacados
- Motor trigonométrico que resuelve la intercepción torpedo-blanco como ecuación cuadrática, con manejo de casos degenerados y sin solución.
- API REST con FastAPI y validación Pydantic con rangos acotados por campo.
- Cálculo de velocidad del blanco por cronómetro de eslora y de distancia por estadímetro de mástil, replicando los instrumentos del periscopio.
- Interfaz dual en Next.js: modo realista con diales estilo instrumentación de época y modo técnico con diagrama top-down de vectores.
- README con documentación completa del modelo matemático, endpoints y guías de despliegue.
07 Limitaciones
No hay dataset ni validación contra tablas de tiro históricas: el motor se comprueba contra su propia geometría, no contra registros de la época. El modelo asume que el blanco cruza perpendicular a la línea de marcación, que es el caso clásico del manual pero no el general, así que un rumbo arbitrario queda fuera de alcance. Ambos torpedos corren a una velocidad nominal de 30 nudos, lo que aplana la diferencia real entre el G7a de vapor y el G7e eléctrico. Tampoco se modelan alcance máximo, ángulo del giroscopio, profundidad ni dispersión.