Video explicativo de artículo (estilo panel de control)
Úsalo cuando el usuario solicite un video explicativo, animación o "video como el de la FAS" para un artículo, una sección (modelo del sistema, teorema, figura de resultado) o un concepto para enseñanza.
Aspecto del resultado
Un fotograma 16:9 (1920×1080, 30 fps, fondo blanco, colorido):
- Arriba: una pequeña línea de crédito en gris, un título en negrita y un resumen en púrpura de una línea con la configuración.
- Izquierda (aprox. 40% de ancho): una escena física animada (ondas, antenas, nodos, usuarios, circuitos). Se mueve en cada fotograma, con marcadores que muestran las decisiones o resultados.
- Derecha: una cuadrícula de 2x2 de paneles en vivo. Las curvas estáticas se dibujan una vez; una línea punteada vertical y puntos se mueven a lo largo de ellas. Un panel puede redibujarse completamente en cada fotograma (por ejemplo, un gráfico de barras de una realización).
- Abajo: un recuadro amarillo redondeado con texto explicativo. Cambia de 4 a 6 veces a medida que el parámetro barrido cruza umbrales, y luego muestra un resumen con los números clave durante una pausa final.
- Un recuadro opcional dentro de la escena (por ejemplo, una flecha en el plano complejo) para la cantidad clave.
Procedimiento
- Lee la sección del artículo. Elige UN parámetro barrido que cuente la historia (horizonte, SNR, velocidad, inclinación, número de bloques, etc.). Escribe el mensaje de una oración que el video debe mostrar.
- Reimplementa el modelo en numpy/scipy, usando las ecuaciones y valores de parámetros del artículo. Verifica los números clave (formas cerradas vs. integración numérica, valores de tablas, límites) antes de dibujar algo. Informa al usuario si algo no coincide.
- Precalcula las partes costosas: curvas Monte Carlo en una cuadrícula fina (aproximadamente 21 puntos, alrededor de 20k muestras), y guárdalas en caché.
- Para los paneles de realización, usa UNA muestra aleatoria fija que varíe suavemente con el parámetro (por ejemplo, una suma finita de ondas planas con trayectorias fijas, y ruido dibujado una vez). Escanea semillas y elige una que cuente la historia claramente; menciónalo en las notas de narración.
- Línea de tiempo: pausa inicial (aproximadamente 2 s), un barrido suavizado (0.5 - 0.5 cos(pi x)), y una pausa final (aproximadamente 3 s). Por defecto 17 s; para voz en off hazlo de aproximadamente 60 s (por ejemplo 8 / 42 / 10 s).
- Escribe el script con argparse:
--out,--preview(escribe 3 fotogramas PNG),--dpi. Coloca los parámetros al inicio (CREDIT, valores del modelo, SEED, tiempos). Renderiza con matplotlib FFMpegWriter (libx264, yuv420p, bitrate 6000), usando un bucle grab_frame. - SIEMPRE renderiza primero las vistas previas y revísalas. Corrige superposiciones, luego renderiza el video completo. Después, extrae 4 fotogramas con ffmpeg y revísalos.
- Entrega el .mp4, el .py y un .md de narración (tiempo | leyenda | qué decir en inglés simple | guía de panel | configuración | ediciones fáciles). Numera las versiones v1, v2, ...
Lecciones de diseño (evita estos errores)
- Para los ejes de la escena usa
set_aspect('equal', adjustable='datalim')y centra el xlim en el contenido, o la escena se encoge y se recorta. - Coloca etiquetas largas de la escena donde nada se mueva; verifica que los ejes de recuadros no cubran las etiquetas.
- Leyendas: colócalas en regiones vacías (a menudo
lower rightpara curvas de tipo outage). Usancol=2para paneles de barras y deja espacio en ylim para los marcadores. - Mantén el gridspec top en aproximadamente 0.86, para que el subtítulo no golpee los títulos de los paneles, y el bottom en aproximadamente 0.155, para que una leyenda de dos líneas no golpee las etiquetas x.
- Las fórmulas de texto van dentro de los ejes en un área vacía, no sobre una curva.
- Los redibujos completos (cla) son solo para la escena y un panel de realización; los otros usan set_data. Aproximadamente 4 minutos para 510 fotogramas a 1080p es normal.
Constantes de estilo
Azul #1c7ed6, naranja #e8590c, verde #2f9e44, rojo #e03131, verde azulado #0c8599, púrpura #7048e8, gris #868e96, tinta #212529, dorado #f59f00. Títulos en negrita a 11.5 pt, fuente base 10 pt, spines superior/derecha desactivados.
Idioma
Las leyendas y la narración usan inglés simple (nivel B2 o inferior), con oraciones cortas y pasos de leyenda numerados ("1 ·", "2 ·", ...).