← Volver al programa

EL DEBATE

Cómo está hecho

Dos o cuatro tertulianos de inteligencia artificial debaten el tema que tú elijas, en un plató 3D, con presentador, público y voces sintetizadas. Y si te apetece, te sientas tú a la mesa y debates con ellos. Todo se genera en el momento: nada está grabado de antes, ni el guion ni las voces.

Y todo funciona con planes gratuitos. Esta página es el mapa de qué hace cada pieza, cuánto aguanta y qué pasa cuando se acaba.

El mapa

Por dónde pasa cada cosa desde que le das a «¡Al aire!».

Punto de partida
Tu navegador
Monta el plató en 3D, sincroniza las bocas con el audio y lleva el turno de palabra en pantalla.
La casa
Cloudflare Pages + Functions
La web y todo el servidor. Reparte los personajes, escribe el guion, decide quién habla y hace de intermediario con los demás — las claves nunca salen de aquí.
El texto
Ollama Cloud
Escribe lo que dice cada uno, en su personaje.
La voz
Google → Azure
Convierte cada frase en audio, con su emoción.
El plató
Cloudflare R2
Guarda los personajes y las animaciones en 3D.
El corte a reportaje
Pexels
Metraje de archivo real para el vídeo que a veces corta el debate a mitad de programa.

Las piezas

Cloudflare Pages Gratis

Sirve la web y ejecuta el servidor entero. Aquí vive el motor que reparte la palabra y decide quién habla en cada momento.

100.000 peticiones al día · ~70 por visita y programa → ~1.400 programas diarios

Ollama Cloud Gratis

El modelo gpt-oss:120b escribe cada intervención metido en su personaje: el cínico, la pragmática, el escolástico.

~3.075 peticiones por semana → ~65-100 programas semanales

Google Chirp 3 HD Gratis

Pone la voz. Once voces distintas en español, una por personaje, y la emoción se nota en la velocidad y el volumen de cada frase.

1.000.000 de caracteres al mes · ~6.000 por programa → ~165 programas mensuales

Azure Speech Respaldo

Entra solo si a Google se le acaba la cuota, y entra sola: nadie tiene que tocar nada. Las voces no son las mismas, así que el programa avisa del cambio.

500.000 caracteres al mes → ~83 programas más

Cloudflare R2 Gratis

Guarda los personajes en 3D y sus animaciones. Están aquí y no en la web porque pesan demasiado para servirlos de la forma normal.

829 MB de 10 GB · 8% ocupado

Three.js Abierto

Dibuja el plató, mueve a los personajes y hace que se miren entre ellos cuando se nombran. Se carga desde un CDN público.

Software libre · sin cuota

Pexels Gratis

Cuando el tema del debate da para ello, el presentador anuncia un corte a reportaje: aquí sale el vídeo real que se ve mientras suena la locución. Solo se pide una vez por programa, y solo si hay algo visual que buscar — un tema sin imagen física clara se queda sin corte, no rellena con algo que no viene a cuento.

20.000 peticiones al mes · 1 como mucho por programa → nunca es el cuello de botella

Qué se agota antes

No es lo que parece: cada servicio cuenta en una ventana de tiempo distinta.

  1. El texto ventana semanal
    El primero en caer si te pones a hacer debates una tarde entera. Se repone solo a los pocos días.
  2. La voz ventana mensual
    El techo más bajo si miras el mes completo. Cuando se acaba entra Azure sola, y si también se agota, el programa sigue sin voz y te lo dice en pantalla.
  3. La casa ventana diaria
    Inalcanzable en la práctica: habría que hacer más de mil programas en un día.

Un programa por dentro

~28intervenciones
~6.000caracteres de voz
50peticiones como mucho
Ese 50 lo explica casi todo. Un debate entero se genera de una sola vez, y ahí solo caben cincuenta llamadas al modelo. De ahí salen las decisiones raras del programa: por qué el número de rondas lo decide el servidor y no tú, por qué hay seis peticiones reservadas que solo puede gastar la despedida del presentador, y por qué si el modelo tiene un mal día el programa se acorta en vez de quedarse a medias.
Para quien programa Detalles técnicos · cómo se sostiene un plató que se genera solo ▾

Todo lo de arriba se ve. Esto no: es la fontanería que hace que veinte cosas que ocurren a la vez —voces, cuerpos, cámara, rótulos, efectos— no se pisen entre ellas cuando nada está grabado de antes y el guion se escribe mientras suena.

El problema de fondo: dos verdades sobre el mismo cuerpo

En un plató generado hay dos capas que dicen qué está haciendo un personaje: la contabilidad —banderas como «está hablando», «tiene un gesto puesto»— y el cuerpo, que es lo que el motor de animación escribe en los huesos ese fotograma. La contabilidad se actualiza en el camino de éxito; las escenas fallan por veinte sitios. Cuando se desincronizan, aparece el fallo estrella: un muñeco que habla sin moverse, o que se queda congelado con las manos arriba.

La regla que ordena todo lo demás: manda el cuerpo, no la contabilidad. Ante la duda no se pregunta a una bandera, se mira qué hay puesto.

El mapa sinóptico

Quién puede tocar un esqueleto, y por dónde tiene que pasar para hacerlo.

cola de audio escenas de pelea salidas y vueltas final de cada gesto bucle del fotograma EL ÁRBITRO relevar() · anotar() la única puerta EL ESQUELETO lo que se ve nunca se suelta una animación sin haber encendido antes la siguiente EL VIGILANTE firma de postura rescata congelados EL RELOJ once carriles mide y cuadra observan · no deciden

El árbitro

Antes mandaban cinco sitios a la vez sobre el mismo esqueleto y ninguno sabía qué habían hecho los otros. Ahora solo una función enciende y apaga, y su regla es una: enciende la nueva y después suelta la anterior. Al revés dejaba un fotograma sin nada puesto — y un esqueleto sin nada que lo escriba salta a su pose en T.

El vigilante

Una red que nunca debería sonar. Cada segundo compara la postura de cada cuerpo con la del segundo anterior: si los huesos no se han movido, lo que hay puesto no está animando, diga lo que diga la contabilidad. Si salta, es que hay un camino que no pasa por el árbitro.

El reloj

Once carriles —voz, tumulto, escena, movimiento, ambiente, cámara, rótulo, reportaje, vídeo, sintonía, acción— midiendo contra un solo origen. De cada cosa queda cuándo entró, cuánto se esperaba y cuánto duró. Y no solo registra: cuadra, y devuelve lo que no encaja.

El carril que faltaba

Durante mucho tiempo el reloj medía todo lo que suena y nada de lo que se mueve, así que las dos cosas que hay que sincronizar no se podían comparar: un personaje hablando sin gesticular era invisible para el instrumento aunque saltara a la vista en pantalla. Se instrumentó el árbitro, que es el paso obligatorio, y ahí dejó de escaparse un solo movimiento.

Los topes de tamaño

Ningún archivo puede crecer: si se pasa de su tope, falla el despliegue. Así se llegó a seis mil líneas la primera vez, añadiendo «una cosita» en el archivo que ya estaba abierto. Cuando un tope estorba, la pregunta no es subirlo — es qué responsabilidad se ha colado ahí.

Dependencias por parámetro

Ningún módulo coge nada del ámbito: todo entra por argumento. No es purismo — es lo que permite ejecutar el código de producción fuera del navegador, con un plató de mentira debajo, y recorrer cientos de combinaciones de pelea sin abrir una pestaña.

El espacio de estados, y por qué no se prueba jugando

Un programa combina estilo × modo × rama de pelea × desenlace × quién se marcha, más sesenta y una bifurcaciones por azar sueltas: del orden de veinticuatro mil programas distintos. Jugar uno enseña uno. Así que no se prueban casos: se prueban invariantes —lo que debe cumplirse salga lo que salga— sobre todas las combinaciones y con el código real.

Y la lección que más ha costado: un banco de pruebas sin calibrar no opina. Antes de acusar a nadie, corre las mismas escenas con un montaje sano y otro roto y exige ver la diferencia. Si no la ve, se declara averiado y se calla — porque un verde falso convence, y no hay nada más caro que un número que miente.

Las ramificaciones del guion

El modelo no escribe «un debate»: escribe una intervención concreta en una situación concreta. Cada casilla de aquí es una plantilla distinta, con su propia instrucción — y el servidor decide en cada turno cuál toca.

El presentador 7
  • presenta a los invitados
  • plantea el tema
  • pivota a otro tema
  • pone orden
  • corta en seco
  • zanja la discusión
  • despide el programa
Debatir 3
  • argumenta su postura
  • responde a quien le ha nombrado
  • insiste en la alusión
Pelearse por el turno 6
  • pide la palabra
  • protesta porque no se la dan
  • defiende el turno que ya tiene
  • cede el turno
  • pisa al que está hablando
  • protesta al árbitro
Cuando se calienta 4
  • protesta por atropello
  • se encara
  • tumulto: varios a la vez
  • se levanta y se va
Y en paralelo
  • 4 carriles de interrupción: se pisan · se defiende · cede · árbitro
  • 17 tipos de evento que el servidor emite al plató
  • 18 familias de frase fija para lo que no puede improvisarse

22 plantillas de guion, y ninguna se elige a mano: el servidor las encadena según lo que acaba de pasar en la mesa. Por eso dos programas del mismo tema no se parecen — no cambian las palabras, cambia la situación que se le pide al modelo que resuelva.

Cuántos programas distintos hay

Ninguno de estos números está estimado: salen de contar el catálogo y las ramas del código.

No se pueden dibujar miles de ramas, pero sí la espina: un programa siempre recorre los mismos puntos de decisión y en el mismo orden. Lo que cambia es por dónde sale en cada uno. Los miles aparecen solos al bajar multiplicando.

  1. Le das a «¡Al aire!» 4 estilos × 4 modos de mesa Académico, tertulia, destroyer o poligonero. Dos o cuatro tertulianos, con o sin ti sentado.
  2. Se reparte la mesa 45 o 210 repartos Hay diez personajes en el vestuario. Elegir dos da 45 mesas distintas; elegir cuatro, 210. Y cada uno lleva su voz, su cara y su forma de discutir.
  3. Se monta el plató 42 clips · 130 recursos Cuerpos y animaciones se descargan y se reenganchan hueso a hueso: los personajes vienen en metros y las animaciones en centímetros, 87 veces de diferencia. Cada clip está medido en Blender, no estimado.
  4. Cabecera, sintonía y presentación 1 reloj · 11 carriles Desde el primer fotograma todo cuelga del mismo origen de tiempo: voz, cuerpo, cámara, rótulo, efecto, vídeo y sintonía. Sin eso no se pueden restar dos marcas y nada se puede cuadrar.
  5. Cada turno de palabra 22 plantillas × ~28 turnos Aquí está el grueso. En cada turno el servidor mira lo que acaba de pasar y elige qué situación pedirle al modelo: argumentar, responder a una alusión, pedir la palabra, pisar al que habla, ceder…
  6. Con qué cara lo dice 7 emociones El modelo etiqueta cada frase, y esa etiqueta gobierna dos cosas a la vez: cómo se sintetiza la voz —velocidad y volumen— y qué gesto hace el cuerpo. No tienen por qué coincidir: una expulsión se grita, pero el cuerpo señala la puerta.
  7. Y con qué acento 221 frases de estilo Coletillas, refranes y muletillas propias de cada estilo, para que un poligonero no hable como un académico. No las escribe el modelo: se le dan, y se reparten sin repetir.
  8. ¿Se interrumpen? 4 carriles Se pisan · uno se defiende · alguien cede · entra el árbitro. Y el solape se calcula con la duración real del audio, no a ojo.
  9. ¿Corta el reportaje? sí / no A mitad de programa puede entrar un vídeo de archivo con locución, elegido por el tema del debate.
  10. ¿Se lía? 5 ramas Conato · forcejeo · empujones · a puñetazos · patada baja. En académico no se llega a las manos nunca: es diseño, no un número que arreglar.
  11. Se cruzan de todo 18 insultos · 36 frases fijas Lo que se grita en una pelea no lo escribe el modelo: no da tiempo a pedirle una frase mientras dos cuerpos se están empujando. Va escrito y medido, y suena pegado al golpe — el empujón cae a 0,50 s del clip, comprobado con Blender.
  12. ¿Cómo acaba? 5 desenlaces Se sientan · expulsión · K.O. en el suelo · se levanta · la víctima se marcha.
  13. ¿Alguien abandona? se va / vuelve Se levanta, cruza el plató y sale. A veces vuelve a sentarse más tarde.
  14. Despedida 51.000 programas distintos Multiplicando solo lo de arriba. Y eso antes de tirar una sola moneda.

Y lo que hay debajo, en cifras

Todo contado del código, no estimado.

12.456líneas de código
46módulos, ninguno > 600 líneas
319decisiones documentadas
43regresiones automáticas
42clips medidos en Blender
130recursos de audio inventariados
11carriles en el reloj
10personajes con voz propia
50peticiones al modelo, como mucho
0euros al mes

Y una sola cifra explica el resto: ninguno de estos números está estimado. Las duraciones salen de medir los archivos, las decisiones de leer el código, los descuadres de un reloj que corre dentro del programa. Cuando algo no se puede medir, se dice — en vez de rellenarlo con una cifra que suene bien.

82puntos de azar Sorteos sueltos repartidos por el cliente y el servidor, encima de todo lo anterior: qué gesto toca, cuánto se sostiene, quién reacciona, si el público se ríe o abuchea, por dónde cruza el que se marcha. Son los que hacen que dos programas con el mismo reparto y el mismo tema tampoco se parezcan.

Las 25 formas de acabar a golpes

Cinco ramas por cinco desenlaces. Esta parte sí cabe dibujada — y es la que se recorre entera, con el código real, en cada despliegue.

se lía conato forcejeo empujones a puñetazos patada baja se sientan le expulsan K.O. en el suelo se levanta la víctima se va 25 finales
Y una sola orden decide si se puede desplegar. Sintaxis como módulo ES, fronteras entre módulos, nombres sin resolver, carga real de cada archivo, topes de tamaño, usos antes de declarar, y unas cuarenta regresiones — incluidas las que comprueban que las alarmas no saltan cuando no deben. Si algo de eso falla, no sale.