Communitygithub.com

mkaremm80/paper-explainer-video

Crea un video explicativo animado en formato 16:9 (mp4 + script Python + narración) para una sección o resultado de un artículo de investigación, con barrido de parámetros y gráficos en vivo.

¿Qué es paper-explainer-video?

Esta habilidad está diseñada para generar videos explicativos animados estilo panel de control a partir de secciones de artículos de investigación, resultados de teoremas o figuras. El resultado es un video en 16:9 (1920×1080, 30 fps) con un diseño estructurado: una escena animada a la izquierda (ondas, antenas, nodos, etc.) y una cuadrícula de paneles en vivo a la derecha que muestran curvas estáticas, barras dinámicas y marcadores. Un parámetro de barrido (como SNR, velocidad o número de bloques) se mueve a lo largo del video, y la leyenda en la parte inferior cambia para explicar los umbrales. La herramienta reimplementa el modelo matemático del artículo en NumPy/SciPy, verifica valores clave, y genera el video con matplotlib y FFMpeg. Soporta vista previa (3 fotogramas PNG), extracción de fotogramas con ffmpeg y entrega de archivos: .mp4, .py y un .md de narración con marcas de tiempo. Ideal para docencia, presentaciones o divulgación científica, compatible con la mayoría de entornos Python donde se ejecute el script generado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mkaremm80/-my-claude-skills/tree/HEAD/skills/paper-explainer-video

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

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

  1. 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.
  2. 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.
  3. Precalcula las partes costosas: curvas Monte Carlo en una cuadrícula fina (aproximadamente 21 puntos, alrededor de 20k muestras), y guárdalas en caché.
  4. 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.
  5. 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).
  6. 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.
  7. 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.
  8. 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 right para curvas de tipo outage). Usa ncol=2 para 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 ·", ...).

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills relacionados