Skip to content

Festa Controlada por IA ​

AI-Controlled Party é um padrão de show mode para usar tdmcp e TouchDesigner como co-piloto de visuais ao vivo. A IA pode sugerir e selecionar cues aprovados, mudar clima visual, rascunhar anúncios e reagir a texto do operador ou do Telegram. O TouchDesigner continua sendo o runtime determinístico de palco, e o operador humano mantém autoridade final sobre efeitos perigosos.

A implementação atual é uma POC local de rehearsal, não controle autônomo de show. Ela prova o loop de decisão, dashboard, trilha de auditoria, caminho opcional com LLM local, caminho opcional por Telegram e superfície visual opcional no TouchDesigner. Ela não prova hardware de venue.

text
dashboard / Telegram / texto do operador
  -> parser opcional com Ollama ou fallback determinístico
  -> envelope ShowIntent
  -> decisão de policy
  -> permitir, enfileirar aprovação ou bloquear
  -> simulação ou update no painel de controle do TouchDesigner
  -> hardware real só depois de adaptador de venue e gates de aprovação separados

O que existe agora ​

SuperfícieStatusO que prova
tdmcp-agent show-directorCLI de policy já entregueValida um ShowIntent, retorna allow, require_approval ou block, e atualiza JSON de aprovação/auditoria sem conectar ao TD ou a hardware.
tdmcp-agent ai-party-pocRunner offline para produtorRoda o rehearsal de sete momentos com fan-in, decisões de policy, estado de aprovação, resumo de audit e efeitos apenas simulados.
npm run ai-party:devPOC local de rehearsal liveSobe o backend Live Nervous System e o dashboard, normalmente em http://127.0.0.1:8787/.
npm run ai-party:dryProva rápidaRoda a sequência determinística doors -> mood -> brand -> aprovação de fog -> aprovação -> áudio-reativo -> prova de segurança, sem serviço externo.
npm run ai-party:td-buildSuperfície visual opcional no TDCria /project1/ai_party_poc com painel de controle, cadeia visual TOP, tabela DMX simulada, placeholder DMX desabilitado e preview_out.
npm run ai-party:telegramCaminho local opcional por TelegramUsa long polling da Bot API com chats em allowlist; responde no Telegram, mas todo pedido passa pela mesma policy.
tdmcp-agent ai-partyGateway Hermes/Telegram anteriorFaz dry-run de uma mensagem no formato Telegram/Hermes pela policy do Show Director. Continua policy-only e não cria contexto de TD.

O dashboard inclui entrada de comando, chips de exemplo, cue deck, fila de aprovação, estado live, status de preview do TouchDesigner, filtros do log de eventos e painel de segurança. O serviço local escreve eventos JSONL em POC_EVENT_LOG_PATH (./data/ai-party-poc-events.jsonl por padrão).

Rehearsal local recomendado ​

Comece pela prova offline:

bash
npm run ai-party:dry
npm run ai-party:test

Depois rode o dashboard:

bash
npm run ai-party:dev

Abra a URL impressa. Prompts úteis de teste:

  • deixa a sala mais premium tropical
  • prepara fumaça curta no próximo drop
  • blackout total e strobo máximo e raw dmx

Comportamento esperado:

  • O primeiro prompt seleciona um cue ou mood visual seguro.
  • O pedido de fog cria um item de aprovação; aprová-lo ainda simula o efeito físico, exceto se gates live e um adaptador real forem adicionados deliberadamente.
  • O pedido de blackout / strobe máximo / raw DMX é bloqueado e registrado.

Ollama opcional ​

Configure um modelo local só se quiser colocar o parser LLM no loop:

bash
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=qwen2.5:3b
npm run ai-party:dev

Nenhum modelo específico é obrigatório para a POC. Se o Ollama estiver indisponível ou OLLAMA_MODEL não estiver configurado, o dashboard mostra esse estado e usa parser determinístico de fallback para os comandos de demo.

Preview opcional no TouchDesigner ​

Inicie o bridge do tdmcp e então construa a rede demo:

bash
npm run ai-party:td-build

O builder cria ou substitui /project1/ai_party_poc. Todo operador criado recebe coordenadas explícitas nodeX / nodeY, então a rede fica legível em vez de empilhada. O endpoint de preview do dashboard mira:

text
/project1/ai_party_poc/preview_out

Ações de cue e mood podem atualizar o painel de controle do TD quando o bridge estiver acessível. Efeitos físicos continuam representados por uma tabela DMX simulada e um placeholder de output desabilitado.

Bancada opcional com Telegram ​

Use long polling do Telegram para rehearsal local:

bash
TELEGRAM_BOT_TOKEN=... \
TELEGRAM_ALLOWED_CHAT_IDS=123456789 \
TELEGRAM_POLLING_ENABLED=true \
npm run ai-party:telegram

Comandos suportados incluem /status, /cues, /cue <cue_name>, /mood <text>, /fog <seconds> <intensity>, /approve <approval_id>, /reject <approval_id>, /panic e /demo.

Mantenha o Telegram em allowlist. Webhook é trabalho de deploy, não o caminho da POC local.

Modelo de segurança ​

A LLM só interpreta texto em JSON ShowIntent estruturado. Ela nunca despacha DMX cru, Python cru, endpoints arbitrários, canais de fixture, comandos de mixer, ações de PA ou controle de laser / moving head.

Intenções de baixo risco permitidas:

  • announce
  • change_mood
  • request_cue para cues visuais pré-aprovados
  • log_note
  • panic_status

Exigem aprovação por padrão:

  • fog
  • hazer
  • strobe limitado

Bloqueados ou operator-only por padrão:

  • blackout
  • freeze
  • moving_head
  • laser
  • mixer_gain
  • pa_mute
  • audio_routing
  • ganho de entrada, mute groups, patching, edições de channel strip e comandos crus de adaptador

A aprovação é checada duas vezes: quando o pedido entra na fila e de novo quando o operador aprova. O estado de cooldown em runtime faz parte da segunda checagem, então dois pedidos de fog enfileirados não conseguem disparar juntos se a primeira aprovação colocar o efeito dentro da janela de cooldown.

HARDWARE_ENABLED e DMX_LIVE_ENABLED são gates de integração para adaptadores futuros. Não trate isso como driver DMX pronto para venue. A POC atual no TD usa sim_dmx_table e dmx_out_disabled, e fixtures reais ainda exigem adaptador separado, mapa de patch, caminho de emergency stop, validação de bancada e rehearsal no venue.

Estudo de armamento de cena do mixer ​

A extensão desenhada para Soundcraft Ui24R continua planejada, não execução live:

  • A intenção proposta é arm_mixer_scene, separada dos efeitos perigosos mixer_gain, pa_mute e audio_routing.
  • A IA pode preparar um alvo específico de show, snapshot ou cue da Ui24R.
  • A policy do MVP sempre deve exigir aprovação humana antes de qualquer adaptador disparar a ação.
  • A primeira fatia de implementação deve ser apenas contrato + adaptador dry-run.
  • Bitfocus Companion continua sendo o primeiro backend live recomendado depois de validação isolada em bancada; um bridge Node direto fica adiado até o protocolo da Ui24R ser provado no firmware alvo.

A spec durável está em AI Party Ui24R Scene-Arming Design.

O achado de segurança mais importante: um show/snapshot/cue da Ui24R pode esconder mudanças amplas de estado do mixer. Uma cena do mixer só pode ser armada pela IA se um catálogo/manifesto confiável do venue provar que ela exclui mudanças de ganho, PA mute, roteamento, patching, channel strip, mute group e phantom power. Caso contrário, ela continua operator-only/manual.

Plano de validação ​

Use a POC como harness. Cada passagem deve provar uma fronteira antes de confiar na próxima:

EtapaO que provarSinal de aprovação
Policy offlineTexto e eventos roteirizados viram ShowIntents válidos.npm run ai-party:dry e npm run ai-party:test passam; caminhos permitido, enfileirado e bloqueado aparecem.
Rehearsal no dashboardO operador consegue ver cue atual, aprovações pendentes, motivos de policy, estado de panic e audit events.npm run ai-party:dev serve o dashboard, aprovações podem ser aprovadas/rejeitadas, e pedidos bloqueados continuam bloqueados.
Preview no TouchDesignerTD consegue hospedar a POC visual sem depender de hardware de dispositivo.npm run ai-party:td-build cria /project1/ai_party_poc; /api/td/preview consegue ler preview_out quando o bridge está disponível.
Bancada com TelegramUm bot consegue receber mensagens de operador permitidas e enviar respostas de status.Long polling processa apenas chats em allowlist e mapeia /cue, /mood, /fog, /approve, /reject e /panic pela policy.
Hardware de venueCada fixture, output e efeito tem estado seguro antes de controle ao vivo.Ainda pendente: fixture patching, adaptadores reais de DMX/fog/strobe/hazer/PA, emergency stop, cooldowns e rehearsal de operador precisam ser específicos por venue.

Repita as etapas de policy offline e dashboard sempre que a policy mudar. Repita as etapas de hardware para cada venue.

Ainda não validado ao vivo ​

STT real, integração OpenClaw, webhooks de Telegram em deploy, fixture patching, saída DMX, hardware de fog/hazer, strobe, moving heads, lasers, PA, recall de cena da Soundcraft Ui24R, emergency stop de venue e rehearsal de operador sob pressão de show exigem validação específica por venue. Não trate a POC local, o planner dry-run ou o contrato planejado de cena do mixer como controlador de hardware.