Communitygithub.com

DyneStein/motionkit

Motion graphics premium, líquidas e sem cortes, no estilo dos melhores filmes de produto (Apple, OpenAI, Anthropic, Bentomotion), construídas com HyperFrames e sincronizadas com a música fornecida pelo usuário.

O que é motionkit?

MotionKit é um conjunto de habilidades premium para criação de motion graphics com estilo líquido, fluido e sem cortes, inspirado em grandes marcas como Apple, OpenAI e Anthropic. Ele é construído sobre o framework HyperFrames e garante uma estética profissional com transições contínuas (máximo de ⅓ de cortes secos, e apenas em batidas fortes), câmera sempre em movimento (≥65% dos frames), e uso de elementos como morphs, neon rim-light, vidro e metaballs. O kit já vem com regras de easings, paletas de câmera, tipos de transição e um barra de polimento que assegura glows justos, sombras de contato e profundidade de campo. Suporta principalmente HyperFrames e é ativado quando o usuário solicita motion graphics com os termos 'smooth', 'liquid', 'fluid', 'premium', 'sem cortes', ou menciona estilos específicos como Ember Flow, Morph Continuum, Neon Rim, entre outros. O fluxo de trabalho envolve análise da música fornecida, planejamento em tabela com capítulos e movimentos de câmera, construção a partir de samples, verificação com ferramentas de snapshot e medição de movimento de câmera, e renderização final.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/DyneStein/motionkit/tree/main/skill

Perguntar na sua IA favorita

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

Documentação

O que motionkit faz?

Raiz do kit: a pasta onde esta skill está localizada, um nível acima (chame-a de $KIT; se a skill foi vinculada simbolicamente, resolva o link — ex.: ~/.claude/skills/motionkit → <clone>/skill, então $KIT = <clone>). É destilada de 60 vídeos de referência curados pelo usuário; siga-a em vez de padrões genéricos de motion.

Inegociáveis (preferências permanentes do usuário)

  1. Sem cortes repentinos. Cada mudança de cena é carregada por algo em ambos os lados da costura ($KIT/grammar/01-continuity.md). No máximo ⅓ das costuras podem ser cortes secos, e apenas em uma batida forte.
  2. Líquido, fluido, arredondado. Ease-outs de cauda longa, squash/stretch no contato, mudanças de material antes da forma, desfoque como cola (02-motion-easing.md).
  3. Nunca gerar ou sintetizar música. Use a faixa do usuário. Se nenhuma for fornecida, peça uma. O kit não inclui música.
  4. Câmera decidida pelo conteúdo (rodadas 3–4): planeje uma rota variada (nunca a mesma direção duas vezes seguidas: trucks L/R, pedestals up/down, diagonais, pushes, pulls, holds) e alterne batidas de câmera com batidas de elemento onde elementos polidos interagem sob uma câmera parada; sincronize eventos com a música (sync_check.py lift ≥ ×1.35; beatSync() para faixas ambientes, grade de batidas para faixas rítmicas). Filmes conduzidos por texto → câmera travelling de acompanhamento que DESLIZA (spline e:"glide" através de alvos de palavras, easings de sino entre regiões — nunca hops por palavra); filmes conduzidos por elementos → câmera quase travada com apenas movimentos motivados e semeados (camSeed, seed) — nunca viajar por viajar, nunca um padrão repetido. Regra anterior, ainda verdadeira para filmes de texto: (rodada 2: "é só a perspectiva, a câmera não está se movendo"): follow-cam na palavra ativa/protagonista através de um mundo maior que o quadro, carrier travel entre estações para histórias de objeto único, camada de referência de paralaxe sempre presente ($KIT/grammar/08-camera.md § v3, $KIT/research/camera-notes.md, primitives §19–20). Além disso: (o usuário chamou sua ausência de "FALHA MAIOR MAIOR MAIOR"): construa cada filme como um mundo 3D visto através de camera-rig.js; câmera se movendo ≥ 65% dos quadros (referências: mediana 77%, medida com research/camera_motion.py); legendas acompanham o mundo, dwells continuam viajando, ritmo dwell-and-sweep, ≥ 3 camadas de profundidade com paralaxe, DOF, deriva handheld, motion blur em sweeps ($KIT/grammar/08-camera.md).
  5. Barra de polimento ($KIT/grammar/09-polish-bar.md): apenas glows justos (sem halos, nunca escalar um elemento brilhante, sem grandes filtros de desfoque SVG — gradientes + granulação); morphs de contêiner são geometria SVG para que os cantos permaneçam arredondados em cada quadro (sem revelações por clip-path); a interface com texto chega da profundidade/desfoque suave — sem scale-pops, sem layouts de adesivos inclinados; todo objeto plano recebe sombra + rim + sombra de contato.
  6. Elementos e fontes profissionais: construa peças de UI/3D a partir de $KIT/elements/ (veja elements/showcase/ e research/element-notes.md); tipografia de $KIT/fonts/FONTS.md — nunca padrões genéricos.
  7. Acabamento profissional: um destaque por linha, ênfase itálico-serif ou salto de peso, cada quadro tem ≤ 3 elementos focais, uma constante persistente (tela, título, horizonte ou neblina) ao longo do filme.
  8. Reels primeiro a menos que instruído ao contrário: 1080×1920, texto na faixa de 168–1330 px, ≤ 5 palavras por linha, nada abaixo de 28 px, quadro 0 é o gancho (nunca preto, nunca um logotipo).
  9. Seja eficiente em tokens: um arquivo de cena por capítulo (ou um para um morph contínuo inteiro), snapshot apenas mudanças de estado.

Fluxo de trabalho

  1. Brief (curto). Assunto/marca, mensagem, formato, duração, o arquivo de música. Pergunte apenas o que está faltando; uma rodada.
  2. Escolha um estilo de $KIT/styles/STYLES.md (tabela no final mapeia briefs → estilos). Leia o cartão completamente; abra 1–2 de suas notas de referência em $KIT/research/video-notes/ para detalhes.
  3. Analise a música: npx hyperframes audio <track> --only kind,bpm,beats,downbeats,sections,onsets --json. Rítmica → grade de batidas (beat(n), bar(k), primitives §1). Ambiente → capítulos nos limites das seções, eventos heróis nas onsets mais fortes (--threshold 0.3).
  4. Planeje em uma tabela: capítulos × (janela de tempo, carrier para o próximo, estado do objeto, legenda, movimento de câmera). Nomeie o carrier e o movimento de câmera para cada costura; se não conseguir, redesenhe a costura. Disponha os capítulos como lugares em um mundo 3D.
  5. Construa com HyperFrames (carregue /hyperframes primeiro para o contrato). Comece a partir do sample mais próximo (v2 = com câmera): $KIT/samples/a-ember-lumen (S1), b-morph-nook (S2), c-neon-aura (S3), d-saas-tally (S4) — cp -R para o novo projeto, depois reescreva. Use blocos de $KIT/primitives/PRIMITIVES.md. Coloque paleta + fontes na raiz data-composition-variables.
  6. Verifique: npx hyperframes check --json 2>/dev/null (stderr é ruidoso) → corrija erros, avalie avisos → npx hyperframes snapshot --at <cada mudança de estado + meio-sweep> -o .snap/x → leia a folha de contato → corrija (amplie cantos e glows: snapshot --zoom). Passe por 07-engineering-pitfalls.md e pela lista de verificação 09-polish-bar.md. Após a renderização, meça o movimento da câmera: python3 $KIT/research/camera_motion.py <dir-com-mp4> out.json — alvo moving_frac ≥ 0.65 (quartil inferior das referências; mediana 0.77).
  7. Renderize: npx hyperframes render -o <out>.mp4. Abra a prévia do Studio antes de uma renderização final quando o usuário estiver revisando.

Referências rápidas

  • Carriers (escolha 3–5 por filme): element-becomes-world · zoom-through · shape morph · guide object · one card many states · iris · colour flood · blur whip · continuous world camera · anchored word · shape rhyme · carry-across · particle dissolve · medium wipe.
  • Paleta de easing: chegada expo.out/power4.out 0.5–0.9 s · saída power3.in (40–50% da entrada) · câmera/morph power2.inOut · mola premium back.out(1.4) · linear apenas para órbita/rotação/progresso.
  • Tipo: blur-in por palavra (sem translate) · cinza→tinta leitura acompanhada · palavra tipo slot-machine · pílula de destaque keyword · destaque itálico-serif · ícone inline na frase.
  • Formas de história: problema(escuro)→revelação→funcionalidades→CTA · caos→ordem · um protagonista muitos estados · prompt→resultado · manifesto com palavra ancorada · micro-loop.

Expandindo o kit

Quando o usuário adicionar novos vídeos de referência: faça folhas de contato (com timestamp, amostragem de 0.33–1 s) + tiras de 10 fps nas transições, escreva uma nota por vídeo em research/video-notes/, adicione linhas a research/INDEX.md, e incorpore novos padrões nos arquivos de gramática/estilo. Quando uma construção ensinar um novo bug ou primitivo, adicione-o a 07-engineering-pitfalls.md / PRIMITIVES.md.

Habilidades Relacionadas