French Ship Madame De Pompadour
Simulação social e gerador de histórias que cria narrativas de ficção científica baseadas em Star Trek. Programação orientada a objetos em Python/Flask com algumas estruturas de dados, API Gemini e front-end em React/Vite/Tailwind.
Simulador de nave espacial usando IA e ações aleatórias inspirado em Star Trek.
FS Madame de Pompadour é um simulador narrativo baseado em texto que cria histórias dinâmicas e imprevisíveis ambientadas em um universo de ficção científica. Ao clicar em "Avançar", você avança a simulação um turno por vez, observando um elenco de personagens interagindo entre si com base em uma combinação de comportamentos predefinidos e IA generativa.
O objetivo é criar um "terrário digital" onde dinâmicas sociais complexas e eventos inesperados emergem de regras simples e do poder criativo da IA.
Bem-vindo ao FS Madame de Pompadour.
O Capitão Pepillo virou-se para o Tripulante Harold e ordenou: "Relate as medidas disciplinares tomadas contra Von."
O Capitão Pepillo virou-se para a estação de comunicações e exigiu: "Quero o Tenente Dubois imediatamente."
Tedrick inclinou-se para o Tripulante Waylon e sussurrou: "Você viu o que Von fez? Parece que o Capitão Pepillo está de mau humor hoje," enquanto ajustava sutilmente seu uniforme para parecer apresentável.
Konstantin olha rapidamente para o Tripulante Harold, então murmura baixinho para o Tripulante Mohammed: "Imagino o que Von fez para cair nas graças do Capitão desta vez," enquanto lustra discretamente uma seção do corrimão próximo.
O Tripulante Von endireita nervosamente seu uniforme, então, ao encontrar o olhar do Tripulante Ezechiel, murmura entre dentes: "Este vai ser um dia longo," na esperança de que Ezechiel responda.
O Tripulante Mohammed, notando a lustragem discreta de Konstantin, olha para o corrimão e diz: "Parece que precisa de uma boa esfregada, hein? Talvez devêssemos fazer esta seção juntos, Konstantin?"
O Tripulante Harold, percebendo a atmosfera tensa e as ordens do Capitão, ajustou casualmente seu próprio uniforme e murmurou para o Tripulante Sebastien: "Parece que Von está na berlinda, hein? Acha que devemos tomar um café para aliviar o clima antes que as tarefas fiquem mais desagradáveis?"
Vendo a tensão, o Tripulante Westley vira-se para o Tripulante Flin e pergunta: "Você ouviu o que aconteceu com Von? Parece que o Capitão está de mau humor, talvez devêssemos garantir que nossos postos estejam impecáveis."
O Capitão Pepillo pede a opinião profissional do Tripulante Harold.
O Capitão Pepillo vira-se para o Tripulante Von e exige: "Von, apresente-se imediatamente sobre seu posto atual e status dos sistemas."
O Tripulante Westley, notando a ordem severa do Capitão a Von, vira-se rapidamente para o Tripulante Flin e diz baixinho: "Flin, vamos verificar os armários de suprimentos, acho que o Capitão pode querer os estoques de emergência inventariados," na esperança de parecer ocupado e evitar qualquer atenção indesejada.
O Tripulante Mohammed, vendo a tensão em torno do Capitão Pepillo, aproximou-se calmamente do Tripulante Ezechiel e sussurrou: "Você acha que devemos preparar alguns materiais de limpeza, caso o Capitão precise de algo feito rapidamente?"
Nesta captura de demonstração da simulação FS Madame de Pompadour, observamos um ecossistema social complexo e dinâmico em movimento. O sistema demonstra sua capacidade de gerar narrativa emergente não através de eventos pré-roteirizados, mas permitindo que agentes independentes interajam, criando uma tapeçaria rica e verossímil da vida nos conveses inferiores.
A simulação é iniciada com um catalisador claro: uma figura de alta autoridade, o Capitão Pepillo, introduzindo tensão imediata e de alto risco através de ordens diretas. Esta "cascata de comando" torna-se o ponto gravitacional central para todo o ecossistema social. Observe como suas demandas não apenas acionam scripts de personagens individuais, mas iniciam um evento unificado e de alta pressão. Isso demonstra o novo foco do sistema na estrutura hierárquica, onde as ações de um único agente podem ditar o foco, o humor e o objetivo estratégico de todos os outros personagens no ambiente compartilhado.
À medida que as ordens do Capitão se espalham pela tripulação, vemos o surgimento de estratégias sociais reativas e sofisticadas. Os tripulantes não continuam apenas com tarefas ociosas; eles imediatamente começam a processar a nova realidade. Observe como personagens como Tedrick e Konstantin formam grupos de conversa temporários para fofocar e analisar a situação, tentando entender a nova dinâmica de poder. Mais impressionante ainda, o Tripulante Westley demonstra um nível mais alto de lógica emergente ao formular ativamente uma estratégia de sobrevivência—sugerindo que ele e um colega pareçam ocupados com tarefas oficiais para evitar a ira do Capitão. Este não é um comportamento pré-roteirizado, mas uma conclusão social lógica gerada pela IA em resposta a uma ameaça percebida, demonstrando uma capacidade robusta de avaliação de risco.
Esta breve janela revela um motor poderoso para narrativa emergente que mescla perfeitamente papéis profissionais com ansiedade pessoal. Vemos o Tripulante Harold forçado a mudar de uma conversa casual e sussurrada para dar uma opinião formal e profissional sobre a demanda do Capitão, ilustrando a capacidade do sistema de gerenciar contextos sociais conflitantes. Toda a simulação gira em torno do conflito central com Von, criando uma panela de pressão narrativa unificada em vez de uma coleção de dramas separados e silenciosos. O motor amadureceu além de gerar uma simples tapeçaria da vida, agora demonstrando o poder de simular uma complexa teia de cálculo social, alianças estratégicas e pensamento grupal emergente sob pressão.
O FS Madame de Pompadour é construído sobre uma arquitetura web moderna e desacoplada, separando o motor de simulação do backend da interface de usuário do frontend para modularidade e desempenho.
Backend: Python, Flask e Gemini
Todo o núcleo e lógica da simulação reside no backend Python.
- Python: A escolha natural por seu poderoso tratamento de dados e ecossistema robusto de IA/ML. A abordagem orientada a objetos permite classes modulares
CrewmaneActorManagerque são fáceis de estender. - Flask: Um framework web leve e flexível usado para criar a API com a qual o frontend se comunica. Sua única responsabilidade é receber uma solicitação para o próximo turno, acionar a lógica da simulação e retornar o resultado.
- Google Gemini: O "fantasma na máquina." O projeto integra-se com a API Gemini para alimentar seu sistema de ação inteligente. Quando um personagem decide agir "inteligentemente," o backend envia um prompt—contendo o contexto da nave, o papel do personagem e o histórico de ações recentes—para o modelo Gemini, que então retorna uma ação criativa e consciente do contexto.
Frontend: React, Vite e Tailwind CSS
A interface do usuário é uma aplicação de página única (SPA) rápida e moderna.
- React: Uma poderosa biblioteca JavaScript para construir interfaces de usuário dinâmicas e baseadas em componentes. Todo o registro de eventos é um componente React que atualiza eficientemente à medida que novas ações são recebidas do backend.
- Vite: Uma ferramenta de build frontend de próxima geração que fornece um servidor de desenvolvimento extremamente rápido e builds de produção otimizados.
- TypeScript: Usado para adicionar tipagem estática ao código JavaScript, melhorando a experiência do desenvolvedor e reduzindo bugs.
- Tailwind CSS: Um framework CSS utilitário que permite estilização rápida e consistente diretamente no HTML, como visto nos nomes de classe do componente.
Arquitetura Geral
O fluxo de um único turno é simples e eficaz:
- O usuário clica no botão "Avançar" na interface React.
- O frontend envia uma requisição
fetchpara o endpoint/actiondo backend rodando em Flask. - O servidor Flask chama o
ActorManagerPython, que executa um único turno da simulação, potencialmente chamando a API Gemini. - O backend retorna a string de ação resultante como um objeto JSON.
- O frontend React recebe o JSON, atualiza seu estado e renderiza o novo evento na tela, rolando automaticamente para a entrada mais recente.
