Communitygithub.com

Duo Sketch Reel (Nerd + Claude)

Crea un sketch cómico en formato 9:16 (30-45 s, en inglés) con dos personajes 3D – el Nerd (pelo puntiagudo, gafas, sudadera) y Claude, el pequeño robot naranja low-poly sobre su escritorio – renderizado en Blender a partir de un único archivo storyboard.json.

¿Qué es Duo Sketch Reel (Nerd + Claude)?

Este skill permite generar un sketch cómico animado en 3D de unos 30 a 45 segundos (formato 9:16) entre dos personajes: el Nerd, un desarrollador/persona de IA con un problema real, y Claude, un pequeño robot naranja low-poly que responde con estoicismo y suelta un consejo verificado. No requiere ningún tipo de generación de imágenes o video externa: todo el set, los personajes, las luces, cámaras, monitores, overlay, música y efectos de sonido se construyen proceduralmente en Blender a partir de un único archivo `storyboard.json`. El flujo de trabajo abarca: definición del tema e investigación verificada con fuentes primarias, escritura del guión y storyboard, un borrador gratuito con las voces del sistema `say` de macOS, generación de voces con ElevenLabs o grabaciones propias, render de pruebas (stills), render final con EEVEE a 3 workers, y control de calidad con un reporte de bloqueos. Está pensado para agentes de IA como Claude Code o Cursor, y se ejecuta mediante scripts bash y Python con dependencias como Blender, ffmpeg, whisper.cpp y varias librerías de audio e imagen.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NaxFur/reel-studio/tree/main/skills/duo-sketch-reel

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Duo Sketch Reel (Nerd + Claude)?

Un sketch 3D en el que el Nerd entra en pánico y Claude (el robot naranja) responde con total serenidad. Todo es Blender procedimental: el set, ambos personajes, la actuación, las luces, las cámaras, los monitores, la superposición, la banda sonora y los efectos de sonido se construyen a partir de un único archivo por episodio, storyboard.json. Un nuevo episodio son datos, no código. No hay generación de imágenes ni vídeo en ningún momento.

Un episodio es una carpeta: <cualquier_cosa>/<AAAA-MM-DD>_<slug>/ con storyboard.json y research.md. El pipeline escribe todo lo demás dentro de ella (assets/, project/, renders/, final.mp4, cover.png, qa/). Dos episodios terminados viven en examples/ del repositorio: copia uno para empezar.

Flujo de trabajo (en orden, no saltar)

  1. Tema (5 min). Un problema real de desarrollo/IA y UN consejo que un desarrollador pueda usar hoy. El chiste va sobre lo que el espectador hace con su IA, no sobre una herramienta. Reglas y banco de ideas: references/retention.md.
  2. Investigación → research.md: cada hecho que aparezca en pantalla / en la voz / en el pie de foto con URL + fecha comprobada, fuentes primarias (documentación oficial, README, código fuente). Una sección separada "Ficción" para las partes inventadas de la historia del sketch (tiempos, números, nombres). Elimina lo que no puedas verificar y dilo.
  3. Guión + storyboard → storyboard.json (copia un ejemplo y reescríbelo). Esquema y vocabulario: references/storyboard.md. Objetivo: 30-40 s, 10-14 líneas, primera palabra ≤ 0.5 s, un corte cada 1.5-3 s, el Nerd abre, Claude cierra, el último fotograma enlaza con el primero.
  4. Borrador gratuito (macOS): pipeline.sh <episodio> --say stills (voces del sistema, sin créditos). Mira renders/stills/sheet.jpg (un fotograma por final de compás). Corrige problemas de encuadre/colisiones de superposición, vuelve a ejecutar. ¿No tienes macOS? Omite --say: graba o genera las tomas primero (paso 5), luego ejecuta stills.
  5. Voces. Un archivo de audio por línea en assets/audio/dialogue_raw/<id de compás>.mp3 (L01.mp3, ...). Los episodios de referencia usan ElevenLabs eleven_v4 con dos voces de librería - Nerd = "Quinn - Soft Nerd Boy", Claude = "Sarcastic Nigel" - y etiquetas de audio en cada compás de su tts (p.ej. [deadpan] It was ugly.). Con el conector de ElevenLabs en Claude: estima primero una línea (≈ 1 crédito por carácter incluyendo etiquetas), luego una generación por línea, y descarga cada toma desde su content_url. Un episodio de 11 a 14 líneas cuesta ≈ 700-900 créditos. Tus propias grabaciones también funcionan: mismos nombres de archivo.
  6. Construcción real + stills: pipeline.sh <episodio> stills. project/whisper_check.txt lista guión vs oído por línea (ratio < 0.8 = escúchala). Las tomas son más largas que el borrador say: comprueba la hoja de nuevo.
  7. Final: pipeline.sh <episodio> final (16 muestras, 3 workers ≈ 3 s por fotograma en un Mac M-series: un sketch de 38 s ≈ 1 h; ejecútalo en segundo plano). Renderiza final.mp4, la variante B-hook final_b.mp4, cover.png, y ejecuta qa.py → qa/report.md (debe decir Bloqueos: ninguno).

Reglas estrictas

  • Personajes: no rediseñar al Nerd ni a Claude (engine/scene/nerd.py, mascot.py). Claude no tiene boca: "habla" con compresión corporal, rebotes, ojos y brazos.
  • Un sketch puede inventar su historia (eso es comedia), nunca una característica del producto, número, benchmark o cita.
  • Los remates (sellos, llaves, marcas) van 0.2-0.3 s antes de la palabra que ilustran, nunca en la última palabra.
  • Borrador gratuito antes que voces de pago; stills antes del render final.

Archivos

  • pipeline.sh <episodio> [--say] [build|stills|draft|final]
  • engine/scene/ Lado de Blender: build_scene.py (entrada), animate.py (actuación/luces/cámaras desde el storyboard), env.py set, nerd.py, mascot.py, lights.py, tl.py (anclajes, compartidos con scripts).
  • engine/scripts/: build_timeline.py (tomas → línea temporal + palabras whisper + lipsync), make_screens.py (plantillas de monitor), make_overlay.py (gancho, subtítulos, elementos, tarjeta de título, captions.srt), make_audio.py + synth.py (banda sonora/EFX), master_audio.py (-14 LUFS), stills.py, draft.sh, render_final.sh, encode.sh, make_cover.py, cover_title.py, qa.py, make_textures.py.
  • Herramientas y rutas (variables de entorno, macOS por defecto): BLENDER (binario Blender 5.x), DUO_PYTHON (un Python con numpy, scipy, soundfile, pillow; por defecto ~/.venvs/duo-reel/bin/python), WHISPER_MODEL (modelo whisper.cpp, por defecto ~/whisper-models/ggml-medium.en.bin), whisper-cli y ffmpeg en PATH, fuentes DUO_FONT_DISPLAY / DUO_FONT_MONO / DUO_FONT_SANS / DUO_FONT_EMOJI.
  • references/storyboard.md (esquema, cada preajuste), references/retention.md (gancho/estructura/temas), references/lessons.md (cosas que salieron mal una vez).

Skills relacionados