{
  "id": "clube-proposito",
  "titulo": "Cada quadro de propósito",
  "categoria": "elementos",
  "resumo": "manifesto de 15 s, 16:9, em oito compassos da música, um por cena: ponto, tipo, forma, campo, partícula, linha, ritmo e assinatura. Um ponto abre o vídeo e o atravessa inteiro, até virar a faísca do Claude no fim; no caminho, a frase \"CADA QUADRO / DE PROPÓSITO.\" entra em tipografia pesada, formas se transformam dentro de uma caixa de transformação, uma flor vira meio-tom e depois grade, partículas 3D viram esfera, toro e cubo, um tubo listrado desenha um laço e anéis de texto giram até um ponto. Primárias Bauhaus (laranja, cobalto, sol) sobre marfim e tinta, com a faísca oficial do Claude. É uma **recriação** do \"Abstract motion design reel\", de @ajith_io, publicado no prompt-motion.com (prompt-motion.com/ajith-io-b5626e) e gerado com o prompt genérico de showreel. A nossa versão troca os cortes secos por cenas que nascem de um ponto, põe motion blur de verdade, música real com drop no compasso 5, uma nota tonal por forma e 101 efeitos.",
  "indicado": "manifesto de estúdio ou de marca, abertura de showreel e vinheta de apresentação.",
  "estilo": [
    "morph de formas",
    "tipografia pesada",
    "partículas 3D",
    "primárias Bauhaus",
    "HUD de compasso",
    "corte na batida",
    "motion blur."
  ],
  "ficha": {
    "formato": "1920×1080, 60 qps, 16:9, cor BT.709",
    "duracao": "15,0 s (900 quadros); 8 compassos de 1,8775 s",
    "motor": "html",
    "voz": "ver o guia de estilo",
    "musica": "ver o guia de estilo",
    "fontes": "ver o guia de estilo"
  },
  "ferramentas": [
    "Claude Code"
  ],
  "ficha_tecnica": {
    "Duração": "15,0 s (900 quadros); 8 compassos de 1,8775 s",
    "Formato": "1920×1080, 60 qps, 16:9, cor BT.709",
    "Narração": "nenhuma; o texto está na tela",
    "Ferramenta": "HyperFrames, com tudo num canvas 2D, função pura do tempo; motion blur por subquadros dentro do canvas",
    "Uso": "manifesto, showreel, vinheta",
    "Trilha": "\"Spaceman\" (Hardwell), a partir de 22,55 s da faixa; 127,8 BPM; drop em 7,51 s"
  },
  "etapas": [
    {
      "titulo": "O roteiro",
      "texto": "**Resumo:** vídeo sem narração em 8 compassos de 1,8775 s, uma cena por compasso e um evento por batida. O texto da tela está em português e sai do `main.js`; os tempos são do vídeo.\n\n## Como o roteiro foi feito\n\n- **Ponto de partida:** o original de @ajith_io, que já trocava as 8 cenas exatamente nos tempos fortes de uma faixa de 128 BPM. A recriação manteve as cenas e a ordem.\n\n- **O que mudou:** 6 das 7 trocas do original eram cortes secos com troca de cor; agora cada cena nasce da anterior a partir de um ponto. O drop passou para o compasso 5, a assinatura usa a faísca oficial do Claude e todo texto foi para o português.\n\n- **Compassos:** 0 · 1,88 · 3,76 · 5,63 · 7,51 · 9,39 · 11,27 · 13,14 s.\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | Cena (HUD)\n | Texto na tela\n | O que acontece\n\n | 1\n | 0–1,88\n | 01 — PONTO\n | —\n | um ponto laranja no escuro; a cada batida ele vira 2, 4 e 8 pontos num anel, com uma nota por batida; os pontos se juntam e o ponto cresce até encher a tela de laranja\n\n | 2\n | 1,88–3,76\n | 02 — TIPO\n | **CADA** / **QUADRO** / **DE PROPÓSITO.**\n | uma linha por batida: \"CADA\" no impacto, \"QUADRO\" em chicote com eco em contorno e colchetes de foco que travam, \"DE PROPÓSITO.\" letra a letra; o ponto final pousa e a câmera mergulha nele\n\n | 3\n | 3,76–5,63\n | 03 — FORMA\n | \"ROT 000.0°\"; \"FORMA CÍRCULO\", \"QUADRADO\", \"TRIÂNGULO\", \"FLOR\", \"MEIO-TOM\"\n | no escuro, dentro da caixa de transformação, a forma vai de círculo a quadrado, triângulo e flor, uma por batida e uma nota por forma; a flor se enche de pontos e vira meio-tom\n\n | 4\n | 5,63–7,51\n | 04 — CAMPO\n | —\n | sobre o marfim, os pontos voam para a grade de dentro para fora; ondas passam na batida; a grade deita em 3D; tudo implode num ponto e a música para por 0,15 s\n\n | 5\n | 7,51–9,39\n | 05 — PARTÍCULA\n | —\n | **drop:** o cobalto cresce do ponto e as partículas explodem em esfera; a esfera vira toro e depois cubo de arame, que trava no tempo; o cubo encolhe num ponto\n\n | 6\n | 9,39–11,27\n | 06 — LINHA\n | —\n | sobre o sol, um tubo listrado sai do ponto, desenha um laço e estala no nó; o contorno do tubo infla e engole a tela\n\n | 7\n | 11,27–13,14\n | 07 — RITMO\n | \"MOTION DESIGN • ANIMAÇÃO • DIREÇÃO DE ARTE •\"; \"TIPOGRAFIA • 3D • ILUSTRAÇÃO •\"\n | linhas de texto deslizam no escuro, curvam em anéis concêntricos, giram e encolhem até um ponto central\n\n | 8\n | 13,14–15,0\n | 08 — ASSINATURA\n | faísca + **Claude**; \"MOTION DESIGNER\"; \"900 QUADROS · 60 QPS · 128 BPM · FEITO 100% EM CÓDIGO\"\n | o marfim cresce do ponto; o ponto salta e pousa como a faísca do Claude, que abre com três notas; \"MOTION DESIGNER\" entra e a ficha é digitada\n\n## Momentos para a trilha\n\n- 0–1,88 s: a faixa abafada (\"dentro da tela\"), abrindo até o laranja.\n\n- 1,88 s: a faixa abre por inteiro com o impacto do \"CADA\".\n\n- 7,345–7,51 s: respiro (música zerada).\n\n- **7,51 s: drop** da faixa, na explosão da esfera, com Ping Boom em Sol#.\n\n- 13,14 s: assinatura, com o golpe do Ping Boom; a faixa volta a abafar."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** primárias Bauhaus (laranja, cobalto e sol) sobre marfim e tinta, Inter pesada no tipo, serifa só no \"Claude\" e um HUD mono de compasso. Tudo é desenhado num canvas como função pura do tempo, com motion blur por subquadros. A regra que manda em tudo: uma cena por compasso, troca no tempo forte e toda mudança de fundo nascendo de um ponto. Números tirados do `main.js` e do `build_audio.py`.\n\n## Fontes\n\n | \n\n | Uso\n | Fonte\n | Onde baixar\n\n | Frase \"CADA QUADRO / DE PROPÓSITO.\"\n | Inter 900\n | Google Fonts\n\n | Anéis de texto (\"MOTION DESIGN • ANIMAÇÃO • …\") e \"MOTION DESIGNER\"\n | Inter 800 e 700\n | Google Fonts\n\n | \"Claude\" da assinatura\n | Source Serif 4 600\n | Google Fonts\n\n | HUD, leitura da caixa de transformação, ficha final\n | Geist Mono 400, 15 px, espaçamento 2,5 px\n | Google Fonts / Vercel\n\n## Cores\n\n | \n\n | Token\n | Hex\n | Papel\n\n | Tinta\n | `#141413`\n | fundo dos compassos 1, 3 e 7\n\n | Marfim\n | `#F0EEE6`\n | fundo do compasso 4 e da assinatura\n\n | Laranja\n | `#D97757`\n | o ponto, o fundo da frase, a faísca do Claude\n\n | Cobalto\n | `#3A4BD8`\n | fundo do drop (partículas)\n\n | Sol\n | `#EDB43C`\n | fundo do tubo listrado\n\n | Kraft\n | `#D4A27F`\n | apoio\n\nO original usava as mesmas primárias Bauhaus (vermelho `#EB4033`, azul `#323CF6`, amarelo `#F3C941`) sobre `#111013` e creme `#EAE4DD`; a recriação trouxe o laranja e o marfim do Claude para dentro dessa família.\n\n## Peças\n\n | \n\n | Peça\n | Como é\n\n | Ponto\n | abre sozinho no escuro, vira 2, 4 e 8 pontos num anel, junta num ponto só e cresce até a tela\n\n | Frase\n | \"CADA\" / \"QUADRO\" (em chicote, com eco em contorno marfim atrás) / \"DE PROPÓSITO.\" letra a letra; colchetes de foco que travam e pulam\n\n | Caixa de transformação\n | quadrado com 8 alças e mira no centro, leitura \"ROT 090.0°\" e \"FORMA QUADRADO\"; segue a forma com 60 ms de atraso; a forma deixa 3 contornos atrasados (40, 80 e 120 ms, opacidade 0,21 → 0,07)\n\n | Formas\n | círculo → quadrado (superelipse n = 4) → triângulo arredondado → flor, cada uma como r(θ) em 360 amostras, cantos arredondados por média circular de ±16°\n\n | Meio-tom e grade\n | os pontos de uma filotaxia (ângulo áureo 137,5°) preenchem a flor e cada um vai ao ponto da grade de mesma ordem de distância ao centro; a grade deita em 3D\n\n | Partículas 3D\n | esfera → toro → cubo de arame, derivados da mesma direção de cada ponto\n\n | Tubo listrado\n | listras laranja, marfim e cobalto com contorno escuro, desenhado em pedaços de 70 amostras para o trecho novo passar por cima no nó; pontas redondas em anéis concêntricos\n\n | Anéis de texto\n | \"MOTION DESIGN • ANIMAÇÃO • DIREÇÃO DE ARTE •\" (raio 468) e \"TIPOGRAFIA • 3D • ILUSTRAÇÃO •\" (raio 372), girando em sentidos opostos; frases alternando cheias e em contorno de 1,6 px\n\n | Assinatura\n | faísca oficial do Claude + \"Claude\" em serifa + \"MOTION DESIGNER\" + \"900 QUADROS · 60 QPS · 128 BPM · FEITO 100% EM CÓDIGO\"\n\n | HUD\n | cantoneiras; \"CLAUDE · SHOWREEL DE MOTION\"; \"COMPASSO n/8\" e \"128 BPM\"; quadradinhos que andam na batida; rótulo da cena (\"03 — FORMA\"); contador de quadros e timecode; a cor inverte com o fundo\n\n | Acabamento\n | grão e vinheta leves, fora do motion blur\n\n## Transições\n\n | \n\n | Troca\n | Como acontece\n\n | ponto → frase\n | o ponto cresce em círculo e enche a tela de laranja\n\n | frase → forma\n | mergulho no ponto final de \"PROPÓSITO.\": o escuro volta\n\n | forma → campo\n | a flor vira meio-tom e o meio-tom vira a grade, de dentro para fora\n\n | campo → partículas\n | a grade implode num ponto (respiro de 0,15 s) e explode em esfera no drop, sobre o cobalto\n\n | partículas → linha\n | o cubo encolhe num ponto e o tubo sai dele, sobre o sol\n\n | linha → ritmo\n | o contorno escuro do tubo infla de 82 para ~3.900 px em 0,38 s (curva u^2,2) e engole a tela\n\n | ritmo → assinatura\n | as linhas de texto curvam em anéis (curvatura κ = b/R, de 0 a 1), giram e encolhem num ponto; o ponto salta e vira a faísca\n\nCada fundo novo cresce em círculo a partir do ponto da ação, com borda clara de 18%. Só duas trocas são cortes secos, e as duas caem no bumbo (7,53 e 9,40 s).\n\n## Curvas e molas\n\n- **Mola padrão:** ζ 0,55 e ω 14, com ~112% de pico e assentamento em ~0,55 s.\n\n- Curvas cúbicas e de quarta (`eO3`, `eIO3`, `eO4`), `expoIn` nos mergulhos.\n\n- **Motion blur:** cada quadro é a média de 6 subquadros num obturador de 180°; de 10 a 28 nos trechos rápidos (chicote do \"QUADRO\", mergulho, drop, explosão, trocas em círculo).\n\n## Câmera\n\n- Deriva por senos: cerca de ±9 px na horizontal, ±7,5 px na vertical e ±0,3° de rotação.\n\n- Pulso de escala em cada batida, de 0,45% (1,1% do drop até a assinatura), com ataque de 15 ms e queda de 130 ms.\n\n## Trilha\n\n | \n\n | Item\n | Valor\n\n | Música\n | \"Spaceman\" (Hardwell)\n\n | Trecho\n | 22,55 a 37,55 s da faixa; o drop da faixa (30,06 s) cai em 7,51 s do vídeo\n\n | Andamento e tom\n | 127,8 BPM medido com o `beat_this` (batida 0,4694 s, compasso 1,8775 s); Sol# maior\n\n | Abertura\n | o compasso 1 abafado (passa-baixa de 650 Hz, \"dentro da tela\"), abrindo até o laranja\n\n | Respiro\n | a música zera de 7,345 s até o drop\n\n | Assinatura\n | a faixa volta a abafar a partir do compasso 8\n\n## Sound design e mix\n\n | \n\n | Ação na tela\n | Som\n\n | pontos aparecem no anel\n | pop + nota de malho de vidro, alternando no estéreo\n\n | pontos se juntam\n | riser curto\n\n | \"CADA\" e o laranja\n | impacto + whoosh grave\n\n | \"QUADRO\" em chicote; colchetes travam\n | whoosh curto; clique\n\n | \"DE PROPÓSITO.\"\n | 9 teclas subindo de tom; pop + nota no ponto final\n\n | mergulho no ponto\n | whoosh longo crescendo até o corte\n\n | cada forma nova\n | uma nota do arpejo de Sol# maior + whoosh curto; quatro notas agudas quando vira meio-tom\n\n | grade e campo 3D\n | whoosh longo; notas graves nas ondas; whoosh grave quando deita\n\n | implosão e drop\n | whoosh invertido + Ping Boom em Sol# com a subida em reverso; no drop, impacto + whoosh grave\n\n | toro e cubo\n | whoosh + nota; clique + nota quando trava\n\n | tubo e nó\n | pop, whooshes; pop + nota + clique no nó; whoosh grave + impacto quando infla\n\n | anéis de texto\n | whooshes em cascata; clique + nota no ponto central; riser até a assinatura\n\n | assinatura\n | golpe do Ping Boom + impacto; whoosh no salto, pop no pouso, três notas quando a faísca abre; 18 teclas na ficha\n\n- 101 sons ao todo, cada efeito em `at = evento − pico`. As notas são sintetizadas (malho de vidro: parciais 1 · 2 · 3 · 4,16, decaimentos 0,7 · 0,28 · 0,14 · 0,07 s, 22% de reverb de sala) porque o kit tonal não tem nota curta.\n\n- **Música a 0,78**, abaixada sob os impactos grandes. Respiro antes do drop a −28 dB, contra −17 dB antes e −13 dB depois.\n\n- **Final:** limitador `alimiter=limit=0.7` antes do `loudnorm` em duas passagens (−14 LUFS, TP −2): −14,1 LUFS e pico −1,8 dBTP no MP4. Sem o limitador, o AAC subia o pico para −0,5.\n\n## O que é \"humano\" neste vídeo\n\n- A caixa de transformação chega 60 ms depois da forma, como ação secundária, e o giro ganha peso.\n\n- O tubo cruza por cima de si mesmo no nó, como uma linha de verdade.\n\n- O ponto que abre o vídeo é o mesmo que fecha, e nenhuma cor muda sem origem.\n\n- A câmera respira na batida o tempo todo e bate mais forte depois do drop."
    },
    {
      "titulo": "A montagem no HyperFrames",
      "texto": "- **Instale o Node.js, o ffmpeg e o Python 3.** O HyperFrames roda pelo `npx`: `npx hyperframes@0.8.144`. As fontes e a faísca já estão em `projeto/hf/assets/`.\n\n- **Edite no `main.js`, não no `index.html`.** Depois de mudar, rode `python build.py` dentro de `projeto/hf/` para gerar o `index.html` de novo.\n\n- **Pré-visualize:** dentro de `projeto/hf/`, rode `npx hyperframes@0.8.144 preview`.\n\n- **Render:** de `projeto/`, rode `npx hyperframes@0.8.144 render hf --workers 3 -q delivery` e salve o vídeo mudo em `projeto/render/` como `<nome>-mudo.mp4`. O motion blur já sai do canvas, então o render é a 60 qps; no PC do autor, os 900 quadros levaram ~85 s com 3 workers.\n\n- **Áudio:** copie a pasta `audio/` para dentro de `projeto/` (os scripts esperam `hf/`, `audio/` e `render/` lado a lado). No `build_audio.py`, aponte `SFX2` e `TON` para `audio/sfx/` e rode `python build_audio.py` (precisa de numpy e soundfile). Depois passe o limitador `alimiter=limit=0.7` no `mix-bruto.wav` e rode `bash loudnorm.sh <entrada> mix-final.wav`.\n\n- **Final:** `bash render/montar.sh <nome>` junta o vídeo com o mix e monta a comparação; para a comparação, ajuste o caminho do original para `referencias/original/`."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **Uma cena por compasso, trocando no tempo forte.** A 127,8 BPM, 15 s são exatamente 8 compassos; dentro de cada um, as 4 batidas viram 4 eventos (4 formas, 4 palavras).\n\n- **Um ponto atravessa tudo:** abre o vídeo, vira o fundo, é o ponto final da frase, é para onde a grade implode e de onde a esfera explode, é de onde sai o tubo e, no fim, salta e vira a faísca do Claude.\n\n- **Troca de cor sempre de um ponto da ação:** o fundo novo cresce em círculo a partir do objeto, nunca num corte sem origem. Os dois cortes secos que sobraram caem no bumbo de propósito.\n\n- **Caixa de transformação em volta da forma**, com 8 alças, mira e a leitura \"ROT 090.0° / FORMA QUADRADO\"; ela segue a forma com 60 ms de atraso, o que dá peso ao giro.\n\n- **Morph por função radial** (círculo, superelipse, triângulo arredondado e flor em 360 amostras), e a flor vira meio-tom e grade de dentro para fora.\n\n- **Morph 3D limpo:** toro e cubo derivados da mesma direção de cada ponto da esfera, para os pontos andarem pouco e o morph não virar poeira.\n\n- **Texto reto que curva em anel** e gira até um ponto, com frases alternando cheias e em contorno.\n\n- **Respiro de 0,15 s antes do drop** e o drop no compasso 5, junto da explosão da esfera.\n\n- **Uma nota tonal por forma**, num arpejo de Sol# maior no tom da música, mais 101 sons ao todo.\n\n- **Escala para o celular:** o tipo chega a 1.720 px de largura, os pontos e o tubo são grandes e os anéis ocupam a altura do quadro.\n\nDetalhes de cores, curvas e som: estilo.md. Cenas por tempo: roteiro.md. Para fazer um vídeo no mesmo estilo: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | o morph 3D usava distribuições independentes de pontos e virava poeira; corrigido derivando toro e cubo da mesma direção da esfera\n\n | v2\n | vídeo completo, mas tímido em escala quando comparado lado a lado com o original\n\n | **v3**\n | tipo até 1.720 px de largura, pontos do compasso 1 40% maiores, tubo 37% mais grosso e anéis de texto ocupando a altura do quadro; é a versão entregue"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/hf/",
      "conteudo": "`main.js` (todas as cenas), `template.html.txt` e `build.py` (geram o `index.html` com o script embutido, exigência do lint do HyperFrames), o `index.html` já gerado, `BRIEF.md`, `hyperframes.json`, `package.json` e `assets/` com as fontes (Inter 500/700/800/900, Source Serif 4, Geist Mono) e a faísca do Claude em SVG"
    },
    {
      "pasta": "projeto/render/",
      "conteudo": "`montar.sh`: junta o vídeo mudo com o mix final e monta a comparação"
    },
    {
      "pasta": "audio/",
      "conteudo": "`build_audio.py` (trilha, efeitos e as notas tonais sintetizadas em Sol# maior), `loudnorm.sh`, `cues.json` (cada som com tempo e volume), as batidas medidas (`spaceman-beats.json`), a música, o mix final e a pasta `sfx/`"
    },
    {
      "pasta": "referencias/",
      "conteudo": "o vídeo original e o prompt dele, folhas de contato do original, a comparação original × nossa, os recortes de momentos e o estudo quadro a quadro com a análise do áudio"
    },
    {
      "pasta": "render/",
      "conteudo": "`render.mp4`"
    },
    {
      "pasta": "T",
      "conteudo": "o início de cada compasso (`n × 1,8775 s`); cada cena (`s1` … `s8`) vive no seu compasso"
    },
    {
      "pasta": "WIPES",
      "conteudo": "as trocas de fundo, sempre em círculo a partir de um ponto da ação"
    },
    {
      "pasta": "subCount",
      "conteudo": "quantos subquadros cada quadro soma: 6 por padrão, de 10 a 28 nos movimentos rápidos"
    },
    {
      "pasta": "camera(t)",
      "conteudo": "deriva por senos, rotação lenta e pulso de escala em cada batida, mais forte do drop até a assinatura"
    },
    {
      "pasta": "mola()",
      "conteudo": "a mola padrão: ~112% de pico, assenta em ~0,55 s (ζ 0,55, ω 14)"
    }
  ],
  "prompt": "Quero fazer um manifesto curto, sem narração, no mesmo estilo do projeto \"Cada quadro de propósito\", que está em 07-videos/projetos/proposito/, com a minha marca.\n\nMarca: {{MARCA}} (site: {{SITE}}; símbolo em SVG)\nA frase do manifesto (2 ou 3 linhas curtas): {{FRASE}} (na referência, \"CADA QUADRO / DE PROPÓSITO.\")\nO que a marca faz, para os anéis de texto (4 a 6 itens): {{ITENS}} (na referência, \"MOTION DESIGN • ANIMAÇÃO • DIREÇÃO DE ARTE • TIPOGRAFIA • 3D • ILUSTRAÇÃO\")\nLinha da ficha final: {{FICHA}} (na referência, \"900 QUADROS · 60 QPS · 128 BPM · FEITO 100% EM CÓDIGO\")\nDuração aproximada: {{DURACAO}} (a referência tem 15 s, 8 compassos)\nFormato: {{FORMATO}} (a referência é 1920×1080; para reels, 1080×1920)\nMúsica: {{MUSICA}} (se vazio, sugira 3 faixas reais perto de 128 BPM com um drop claro no meio)\n(Se algum desses estiver vazio ou com as chaves, me pergunte antes de começar.)\n\n1. Estude o projeto antes de propor qualquer coisa. Leia, nesta ordem: 07-videos/projetos/proposito/LEIA-ME.md, estilo.md e roteiro.md. Depois abra projeto/hf/main.js (as cenas s1 a s8, os compassos T, as trocas de fundo WIPES, o motion blur por subquadros, a câmera e o HUD) e o audio/build_audio.py (trilha, efeitos e as notas sintetizadas). Me explique em poucas linhas o que vai reaproveitar e o que vai trocar.\n\n2. Siga o passo a passo de 07-videos/_LEIA.md e os números de 07-videos/regras-vigentes.md. Crie o meu projeto em 07-videos/projetos/AAAA-MM-DD-tema/ a partir de 07-videos/projetos/_modelo/README.md e marque cada etapa no checklist. Não edite os arquivos do projeto proposito: copie o que for reaproveitar.\n\n3. Use as skills instaladas: animacao-saas (uma cena por compasso, forma que vira a próxima, mola), motion-app-ae (rota em HTML determinístico), video-referencias (marca real, troca de cor que nasce da ação, uma nota por forma), conteudo-video (regras de vídeo) e better-portuguese (todo texto da tela). Se as skills do HyperFrames estiverem instaladas, leia também as de composição e animação antes de escrever o HTML.\n\n4. A identidade vem da minha marca, de verdade: abra o site, tire o símbolo em SVG, as cores do CSS e as fontes, e anote cada valor com a fonte num BRAND.md do projeto. Monte uma paleta de cinco papéis como a da referência (um escuro, um claro e três acentos saturados que se revezam nos fundos), um tipo bem pesado para a frase e a fonte da marca só na assinatura.\n\n5. Antes de qualquer código, meça a música com o beat_this e calcule o tom. Me mostre o mapa: o início de cada compasso (n × duração do compasso), a cena de cada compasso (ponto → tipo → forma → campo → partícula → linha → ritmo → assinatura, ou uma adaptação ao meu assunto), os 4 eventos de cada compasso (um por batida), de onde nasce cada troca de cor e onde cai o drop. O mesmo ponto precisa abrir o vídeo, atravessar todas as cenas e virar o meu símbolo no fim.\n\n6. Construa reaproveitando o esqueleto do main.js (edite o main.js e rode o build.py para gerar o index.html): tudo num canvas como função pura do tempo, acaso por hash com semente, motion blur com 6 subquadros num obturador de 180° e mais subquadros nos trechos rápidos, trocas de fundo em círculo a partir do ponto da ação, caixa de transformação com atraso de 60 ms, morph por função radial, morph 3D derivado da mesma direção, texto que curva em anel, câmera com deriva e pulso na batida. Corte seco só no bumbo. Troque cenas, textos, cores, fontes, símbolo e música.\n\n7. Me mostre 4 quadros de teste (abertura, frase, drop e assinatura) e a folha de contato a 4 qps antes do render final, lado a lado com a referência. Em cada movimento, pergunte: está humano ou robotizado? Confira a escala no tamanho do celular: na referência, o tipo chega a 1.720 px de largura.\n\n8. Som em paralelo, num subagente: um efeito para cada entrada e saída, em evento − pico do arquivo, uma nota tonal por forma no tom da música (arpejo subindo; se o kit não tiver nota curta, sintetize o malho de vidro como no build_audio.py), 2 ou 3 camadas no drop e na assinatura, a faixa abafada no primeiro compasso e respiro curto antes do drop. Limitador antes do loudnorm em duas passagens a −14 LUFS.\n\n9. Render a 60 qps (o motion blur já sai do canvas), junte com o mix e rode um detector de salto e de quadro vazio; todo salto que sobrar tem de ser um corte de propósito no bumbo. Entregue o vídeo, a ficha do projeto atualizada e uma anotação em anotacoes/.",
  "campos": [
    "DURACAO",
    "FICHA",
    "FORMATO",
    "FRASE",
    "ITENS",
    "MARCA",
    "MUSICA",
    "SITE"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=proposito",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}