Communitygithub.com

Angles

Crie um vídeo de produto calmo e fotográfico (movimento lento de câmera, close e angulado, aparência de tela real, foco suave) a partir de uma gravação de tela ou captura de tela, renderizado localmente com o estúdio Angles. Use para vídeos de demonstração, fotos de produto, clipes de lançamento e 'vídeos mockup'.

O que é Angles?

O Angles é uma ferramenta de skill que permite criar vídeos de produto com aparência profissional e cinematográfica a partir de capturas de tela ou gravações de tela, tudo processado localmente no computador do usuário. Sua principal vantagem é a capacidade de gerar vídeos com movimentos de câmera calmos, ângulos variados e foco suave, ideais para demos, lançamentos e apresentações de produtos. A ferramenta suporta uma ampla gama de estilos de câmera (close, raking, float, entre outros) e níveis de movimento (de still a bold), além de opções de pós-processamento como ajuste de cor, fundo, sombra e sobreposições de teclas. O fluxo de trabalho recomendado envolve primeiro verificar as variantes de estilo com um comando `check` e, em seguida, gerar o vídeo final com o comando `make`, evitando a renderização desnecessária de múltiplos vídeos. A skill é compatível com macOS, Linux e Windows (via WSL/Cygwin) e requer Chrome, ffmpeg, Node.js 18+ e Python 3 com as bibliotecas numpy e pillow.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HansEngebretsen/angles/tree/main

Perguntar na sua IA favorita

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

Documentação

O que Angles faz?

Escreva uma pequena especificação JSON, execute um comando e leia uma linha JSON de volta. Não abra ou edite o estúdio; a especificação alcança tudo o que pode ser feito e rejeita tudo o que não pode.

node <esta pasta>/angles.mjs check spec.json   # ~5s, sem vídeo: uma folha, uma linha de 4 quadros por variante
node <esta pasta>/angles.mjs make spec.json    # o mp4 (1920 de largura, cerca de 4s de trabalho por segundo de vídeo) + uma folha
  1. Verifique antes de criar. Coloque as opções que você está considerando em variants. Um check mostra todas elas como linhas rotuladas em uma única imagem pequena. Observe a folha, escolha uma linha e então execute make uma vez com os campos dessa linha mesclados na especificação (e com variants removido). Não renderize vídeos para comparar aparências.
  2. Observe uma folha, nunca o mp4. Leia o caminho da sheet que ele imprime. Isso é suficiente para julgar enquadramento, ângulo e foco.
  3. Em caso de ok: false, corrija apenas o que os warnings nomeiam. Eles listam as escolhas válidas. node angles.mjs schema imprime todas as escolhas se você precisar. Não adivinhe.
{ "source": "~/Desktop/demo.mov", "out": "~/Desktop/angles", "trim": { "in": 2, "out": 8 },
  "look": "bright", "background": "mist", "shadow": "soft",
  "variants": [{ "style": "close", "level": "gentle" }, { "style": "raking" }, { "style": "float" }] }
CampoValores
sourceuma gravação (.mov .mp4 .webm) ou captura de tela (.png .jpg). Gravações são divididas em quadros uma vez e reutilizadas (--fresh refaz).
styleclose, raking (de perto em ângulo real); float, angle, flyby, focus, push, reveal, rise, tiltshift
levelstill, whisper (padrão), gentle, lively, bold. Cada um é um orçamento de velocidade, e o movimento se reduz para caber nele. speed ≤ budget é interpretado como calmo.
trim, loop, aspect{ "in": s, "out": s }; true faz crossfade do final para o início; 16:9 (padrão), 1:1, 9:16, qualquer W:H
beatsvários estilos em um clipe: [{ "at": 0, "style": "float" }, { "at": 4, "style": "close" }]
look, lookAmountbright, crisp grain, glossy, sunlit, pixel macro, cool studio, film print, none; 0–1
background, shadowmist linen sky sage blush dusk ou #hex; none soft close float
focus{ "at": s, "u": 0–1, "v": 0–1, "size": 30 }. Omita u/v para focar onde a gravação muda.
overlays[{ "at": 1, "dur": 1.5, "keys": ["⌘", "K"] }] ou { "text": "…" }: selos acima da câmera
ease, dir, travelsteady soft settle constant; left right; 0–2 (padrão .8)

Bom gosto: o sutil vence (whisper ou gentle), uma ideia por clipe (um estilo, ou dois ou três beats), e um corte de 3–8s terminando na ação.

Requer Chrome, ffmpeg, node 18+ e python3 com numpy e pillow; execute npm i uma vez aqui. Ele se serve na porta 8790 (defina ANGLES_PORT para alterá-la).

Habilidades Relacionadas