Communitygithub.com

JoaoIurovschi/faisca

FAÍSCA, motion de alta energía hecho en código (HTML + GSAP + HyperFrames), sin crédito de generación. Tipografía cinética pesada, un color neón sobre negro con rejilla de puntos, cometa con estela, explosión de chispas, corte con láser, leyenda con marcatextos, letras en 3D, cámara atravesando la letra y desenfoque de movimiento real en MP4. Úsalo cuando te pidan 'faísca', 'FAÍSCA', 'motion faísca', 'vídeo faísca', 'no estilo faísca', 'motion neón', 'motion con láser y chispas', 'kinetic typography de alta energía', 'Reel de motion con brillo neón', 'recria este Reel con este movimiento' o 'motion con pista propia'.

¿Qué es faisca?

FAÍSCA es una habilidad para agentes de IA (como Claude Code, Cursor o Codex) que permite crear piezas de motion de alta energía directamente desde código, utilizando HTML, GSAP y el framework HyperFrames. Está diseñada para generar videos con tipografía cinética, efectos visuales intensos (cometas, chispas, láser, letras 3D, desenfoque de movimiento real) y una estética neón sobre negro, ideal para Reels, TikTok o piezas promocionales. La habilidad automatiza todo el flujo de trabajo: desde la creación del proyecto con HyperFrames, la configuración de identidad visual (color y fuentes), la escritura del guion y la línea de tiempo con efectos del catálogo, hasta la renderización final del MP4 con desenfoque de movimiento real (similar a After Effects) mediante un script que promedia múltiples subfotogramas. Soporta formatos 16:9 y 9:16, pistas de audio originales, y verifica la calidad del render asegurándose de que el desenfoque esté presente. Su uso está destinado a desarrolladores y diseñadores que trabajan con agentes de IA para generar motion graphics de forma rápida y local, sin depender de software pesado ni servicios en la nube.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add JoaoIurovschi/faisca

Preguntar en tu IA favorita

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

Documentación

FAÍSCA

Palabra de activación: faísca. La persona escribe "faísca" y describe el video (tema, frases, formato); esta habilidad crea el proyecto, monta la línea de tiempo y renderiza el MP4.

SKILL_DIR = carpeta de este archivo. La composición es HyperFrames (HTML + GSAP), con la línea de tiempo estirada SLOW veces y renderizada a 60 fps; el render-faisca.sh promedia cada SLOW subfotogramas, y el resultado es desenfoque de movimiento real, con aspecto de After Effects.

  • Catálogo de los efectos listos, tiempos y dónde se ubican en el código: referencias/efeitos.md.
  • Estudiar un video de referencia (desglosar, medir fuente y color, comparar): referencias/recriar-referencia.md.
  • Pista original compuesta por código y motion que reacciona al audio: referencias/trilha-propria.md, moldes en trilha/.
  • Contrato de HyperFrames: si la habilidad hyperframes está instalada, leer antes de tocar la estructura; npx hyperframes docs gsap y npx hyperframes docs data-attributes también ayudan.

Antes de todo

  1. De quién es la pieza. Usa el color y las fuentes de la marca de quien va a publicar. Sin marca definida, se queda el verde lima del modelo.
  2. Qué decir. Frases cortas de impacto (2 a 4 palabras por pantalla) y un subtítulo corrido. Contenido solo de lo que la persona pidió; nada inventado.
  3. Formato y duración. 16:9 por defecto; Reels y TikTok en 9:16 (ver final de referencias/efeitos.md). Sin narración, el estilo rinde de 4 a 15 s; con narración, se puede ir más allá, siempre que cada pantalla cambie cada 0,4 a 0,8 s.
  4. Carpeta. Una carpeta por video, fuera de carpetas sincronizadas (iCloud, Dropbox) si es posible.
  5. Sin crédito. Todo se ejecuta localmente.

Etapa 1 · Crear el proyecto

SKILL_DIR/scripts/novo-faisca.sh <carpeta-del-proyecto>

Ejecuta hyperframes init, copia el modelo (composición de 4 s funcional, fuentes locales) y verifica que el lint salga con 0 errores. Sin OK:, detenerse y corregir.

Etapa 2 · Identidad

  • Color de acento: las cuatro variables --acento, --acento-rgb, --acento-claro, --acento-oscuro en el :root. Todo (brillo, chispas, láser, píldora, placa, 3D) deriva de ellas.
  • Fuentes en assets/fonts/ con @font-face en el propio archivo (el lint exige archivo local). Cambiar la del título solo por una pesada y condensada; medir antes (ver recriar-referencia).
  • HUD (#hudBrand): nombre de la marca de la pieza. Nunca la marca de otra empresa.

Etapa 3 · Guion y línea de tiempo

  1. Escribir el desglose: lista de eventos con instante (segundos reales), texto y efecto del catálogo. Una idea cada 0,4 a 0,8 s.
  2. Ajustar DUR y, junto, el data-duration del #root y del #stage para DUR × SLOW (render-faisca.sh rechaza si no coinciden).
  3. Cambiar textos e instantes en el bloque // ---------- línea de tiempo. Para escena nueva, copiar el patrón de un efecto del catálogo. Efecto que sigue posición en cada instante va en draw(t).
  4. SLOW = 8 sirve para casi todo. Zoom o cruce muy rápido muestra "anillos" con 8 muestras: subir a 16 (duplica el tiempo de render).
  5. Con narración: tomar el tiempo de cada palabra (Whisper o similar) y ajustar los efectos a esos instantes, en lugar de estimar.

Etapa 4 · Revisión por fotogramas

SKILL_DIR/scripts/quadros.sh <proyecto> 0.3,0.9,1.3,1.6,2.3,2.7,3.2,3.6,3.9

Instantes en segundos reales (el script multiplica por SLOW). Revisar la hoja: texto cortado, palabra fuera de lugar, efecto que no aparece. Los fotogramas son muestra única, sin desenfoque.

Etapa 5 · Render y verificación

SKILL_DIR/scripts/render-faisca.sh <proyecto> <proyecto>/renders/<nombre>.mp4 [--audio pista.wav]
SKILL_DIR/scripts/render-faisca.sh <proyecto> /tmp/sabotaje.mp4 --sabotar   # tiene que FALLAR

El render verifica tres cosas: data-duration = DUR × SLOW, número de fotogramas a 60 fps y presencia del desenfoque (el video final debe diferir de la muestra única en los tramos con movimiento). El --sabotar genera sin desenfoque y debe terminar en ERROR: sin desenfoque: es la prueba de que la verificación sabe fallar. 4 s tardan aproximadamente de 1 a 4 min, según la máquina.

npx hyperframes check también se ejecuta, pero la auditoría de diseño acusa por dibujo: palabras del subtítulo que aún van a aparecer (transparentes, text_not_painted) y capas 3D superpuestas (content_overlap). Exigido: lint con 0 errores; estos hallazgos de diseño son esperados.

Etapa 6 · Entrega

  • Entregar el MP4 y decir dónde está.
  • Contar qué quedó diferente de lo pedido, sin ocultar.
  • Estudio de video de otra persona: la comparativa lado a lado es solo para estudio; no publicar.

Trampas ya resueltas

SíntomaCausa y solución
Efecto procedural desaparece o se traba en fotogramas sueltosdraw(t) guardaba estado o medía el DOM. Debe ser función pura de t; medir en build()
Barra tiembla y deja de subirdraw escribía style.transform en el mismo elemento que anima GSAP. Temblor va en un hijo (#rbInner)
Elemento oculto nunca aparece en el renderfromTo con opacity: 1 solo en el "de". Poner opacity: 1 también en el destino
Píldora del subtítulo invisiblez-index: -1 sin contexto de apilamiento. isolation: isolate en la palabra
Fotograma de prueba en el instante equivocado--at del snapshot es tiempo de la línea de tiempo estirada. Usar quadros.sh, que multiplica por SLOW
Anillos en el zoom final8 muestras no bastan para escala exponencial. SLOW = 16 (y data-duration junto)
Color de referencia filmado parece otrocámara filmando una pantalla distorsiona el color. Usar el color de origen, no la muestra
Fotogramas de prueba todos iguales (solo el fondo)la herramienta fotografió antes de que build() terminara. quadros.sh ya espera 20 s
Render lento o congeladopartes temporales en carpeta sincronizada. Los scripts usan MOTION_TMP o la carpeta temporal del sistema
Render pide decenas de GB de discocaptura paralela grabando cada fotograma. render-faisca.sh ya activa HF_CAPTURE_PARALLEL_STREAM=true
className o textContent no cambian con GSAPGSAP 3 no aplica estas propiedades con set. Cambiar en draw(t), como función de t
Elemento centrado con translateX(-50%) se sale de lugarla escala de GSAP reescribe el transform. Centrar con xPercent: -50

Skills relacionados