Communitygithub.com

mkaremm80/paper-explainer-video

Crie um vídeo explicativo animado de painel 16:9 (mp4 + script Python + narração) para uma seção ou resultado de um artigo de pesquisa, com varredura de parâmetros e gráficos ao vivo.

O que é paper-explainer-video?

Esta habilidade gera vídeos explicativos animados no estilo 'painel de controle' (dashboard) para artigos de pesquisa. O vídeo tem resolução 16:9 (1920x1080, 30 fps) com fundo branco, uma cena animada à esquerda (ondas, antenas, nós, usuários, circuitos) e um grid 2x2 de gráficos ao vivo à direita, que variam conforme um parâmetro escolhido varre um intervalo. Também inclui caixas de legenda amarelas que mudam ao cruzar limiares, e uma narração em .md. É útil para educadores e pesquisadores que querem explicar conceitos complexos de forma visual, como sistemas de comunicação, teoremas ou figuras de resultados. A habilidade suporta plataformas como Claude Code, Cursor e Codex, implementando o modelo em numpy/scipy, pré-calculando curvas Monte Carlo, e renderizando com matplotlib FFMpegWriter. O processo inclui verificação de números do artigo, renderização de prévias, extração de quadros com ffmpeg e entrega de .mp4, .py e narração .md.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Vídeo explicativo de artigo (estilo painel)

Use isto quando o usuário pedir um vídeo explicativo, animação ou "vídeo como o FAS" para um artigo, uma seção (modelo do sistema, um teorema, uma figura de resultado) ou um conceito para ensino.

Como é a saída

Um quadro 16:9 (1920x1080, 30 fps, fundo branco, colorido):

  • Topo: uma pequena linha de crédito cinza, um título em negrito e um resumo roxo de uma linha sobre a configuração.
  • Esquerda (cerca de 40% de largura): uma cena física animada (ondas, antenas, nós, usuários, circuitos). Move-se a cada quadro, com marcadores que mostram as decisões ou resultados.
  • Direita: um grid 2x2 de painéis ao vivo. Curvas estáticas são desenhadas uma vez; uma linha pontilhada vertical e pontos movem-se ao longo delas. Um painel pode ser totalmente redesenhado a cada quadro (por exemplo, um gráfico de barras de uma realização).
  • Fundo: uma caixa de legenda amarela arredondada. Ela muda de 4 a 6 vezes enquanto o parâmetro varrido cruza limiares, depois mostra um resumo com os números-chave durante uma pausa final.
  • Uma inserção opcional na cena (por exemplo, uma seta no plano complexo) para a quantidade-chave.

Procedimento

  1. Leia a seção do artigo. Escolha UM parâmetro varrido que conte a história (horizonte, SNR, velocidade, inclinação, número de blocos, etc.). Escreva a mensagem de uma frase que o vídeo deve mostrar.
  2. Reimplemente o modelo em numpy/scipy, usando as próprias equações e valores de parâmetros do artigo. Verifique os números-chave (formas fechadas vs. integração numérica, valores da tabela, limites) antes de desenhar qualquer coisa. Informe o usuário se algo não coincidir.
  3. Pré-calcule as partes caras: curvas Monte Carlo em uma grade fina (cerca de 21 pontos, cerca de 20k sorteios), e armazene em cache.
  4. Para painéis de realização, use UM sorteio aleatório fixo que varie suavemente com o parâmetro (por exemplo, uma soma finita de ondas planas com caminhos fixos e ruído sorteado uma vez). Varie as sementes e escolha uma que conte a história claramente; diga isso nas notas de narração.
  5. Linha do tempo: pausa inicial (cerca de 2 s), uma varredura suave (0.5 - 0.5 cos(pi x)) e uma pausa final (cerca de 3 s). Padrão 17 s; para narração, faça cerca de 60 s (por exemplo, 8 / 42 / 10 s).
  6. Escreva o script com argparse: --out, --preview (escreve 3 quadros PNG), --dpi. Coloque os parâmetros no topo (CREDIT, valores do modelo, SEED, temporizações). Renderize com matplotlib FFMpegWriter (libx264, yuv420p, bitrate 6000), usando um loop grab_frame.
  7. SEMPRE renderize as prévias primeiro e olhe para elas. Corrija sobreposições, depois renderize o vídeo completo. Depois, extraia 4 quadros com ffmpeg e verifique-os.
  8. Entregue o .mp4, o .py e uma narração .md (tempo | legenda | o que dizer em inglês simples | guia dos painéis | configurações | edições fáceis). Numere as versões v1, v2, ...

Lições de layout (evite esses bugs)

  • Para os eixos da cena, use set_aspect('equal', adjustable='datalim') e centre o xlim no conteúdo, senão a cena encolhe e é cortada.
  • Coloque rótulos longos da cena onde nada se move; verifique que os eixos da inserção não cobrem os rótulos.
  • Legendas: coloque-as em regiões vazias (geralmente lower right para curvas do tipo outage). Use ncol=2 para painéis de barras e deixe espaço no ylim para marcadores.
  • Mantenha o topo do gridspec em cerca de 0.86, para que o subtítulo não bata nos títulos dos painéis, e o fundo em cerca de 0.155, para que uma legenda de duas linhas não bata nos rótulos do eixo x.
  • Texto de fórmula vai dentro dos eixos em uma área vazia, não sobre uma curva.
  • Redesenho completo (cla) é apenas para a cena e um painel de realização; os outros usam set_data. Cerca de 4 minutos para 510 quadros em 1080p é normal.

Constantes de estilo

Azul #1c7ed6, laranja #e8590c, verde #2f9e44, vermelho #e03131, verde-azulado #0c8599, roxo #7048e8, cinza #868e96, tinta #212529, dourado #f59f00. Títulos em negrito a 11.5 pt, fonte base 10 pt, bordas superior/direita removidas.

Idioma

Legendas e narração usam inglês simples (B2 ou inferior), com frases curtas e etapas de legenda numeradas ("1 ·", "2 ·", ...).

Individual skills in this repo

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

Habilidades Relacionadas