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 que utiliza IA e ações aleatórias inspiradas 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 “Próximo”, você avança a simulação um turno de cada vez, observando como um elenco de personagens interage 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 surjam a partir de regras simples e do poder criativo da IA.
Bem-vindo à FS Madame de Pompadour.
O capitão Pepillo virou-se para o tripulante Harold e gritou: “Relate as medidas disciplinares tomadas contra Von.”
O capitão Pepillo voltou-se para a estação de comunicações e exigiu: “Ligue-me para o tenente Dubois imediatamente.”
Tedrick inclinou-se na direção do tripulante Waylon e sussurrou: “Você viu o que o Von fez? Parece que o capitão Pepillo está de mau humor hoje”, enquanto ajustava sutilmente seu uniforme para parecer apresentável.
Konstantin lança um rápido olhar para o tripulante Harold e, em seguida, murmura baixinho para o tripulante Mohammed: “Será que Von fez alguma coisa para cair na desgraça do capitão dessa vez?”, enquanto esfrega discretamente uma parte do corrimão próximo.
O tripulante Von ajeita nervosamente o uniforme e, em seguida, ao cruzar o olhar com o do tripulante Ezechiel, murmura baixinho: “Hoje vai ser um dia longo”, na esperança de que Ezechiel responda.
O tripulante Mohammed, percebendo que Konstantin está polindo discretamente, olha para o corrimão e diz: “Parece que precisa de uma boa esfregada, né? Talvez devêssemos limpar essa parte juntos, Konstantin?”
O tripulante Harold, percebendo a atmosfera tensa e as ordens do capitão, ajeitou casualmente o próprio uniforme e murmurou para o tripulante Sebastien: “Parece que o Von está na berlinda, né? Acha que devíamos tomar um café para aliviar o clima antes que as tarefas fiquem mais desagradáveis?”
Percebendo a tensão, o tripulante Westley se vira para o tripulante Flin e pergunta: “Você ouviu o que aconteceu com o 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 se vira para o tripulante Von e exige: “Von, informe-me imediatamente sobre a situação atual do seu posto e dos sistemas.”
O tripulante Westley, percebendo a ordem severa do capitão a Von, rapidamente se vira para o tripulante Flin e diz baixinho: “Flin, vamos dar uma olhada nos armários de suprimentos. Acho que o capitão pode querer que as rações de emergência sejam inventariadas”, na esperança de parecer ocupado e evitar qualquer atenção indesejada.
O tripulante Mohammed, percebendo a tensão em torno do capitão Pepillo, aproximou-se discretamente do tripulante Ezechiel e sussurrou: “Você acha que devemos preparar alguns materiais de limpeza, caso o capitão precise que algo seja feito rapidamente?”


Nesta captura de tela da simulação FS Madame de Pompadour, observamos um ecossistema social complexo e dinâmico em movimento. O sistema demonstra sua capacidade de gerar narrativas emergentes não por meio de eventos pré-programados, mas permitindo que agentes independentes interajam, criando um quadro rico e verossímil da vida nos conveses inferiores.
A simulação se inicia com um catalisador claro: uma figura de autoridade de alto escalão, o capitão Pepillo, que introduz uma tensão imediata e de alto risco por meio de ordens diretas. Essa “cascata de comandos” torna-se o ponto central de gravitação de todo o ecossistema social. Observe como suas exigências não apenas acionam os roteiros individuais dos personagens, mas, em vez disso, dão início a 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 clima e o objetivo estratégico para 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 sofisticadas e reativas. Os tripulantes não se limitam a continuar com tarefas rotineiras; eles imediatamente começam a processar a nova realidade. Observe como personagens como Tedrick e Konstantin formam grupos conversacionais 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 elevado de lógica emergente ao formular ativamente uma estratégia de sobrevivência — sugerindo que ele e um colega de tripulação pareçam ocupados com tarefas oficiais para evitar a ira do capitão. Esse não é um comportamento pré-programado, 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.
Essa breve janela revela um poderoso mecanismo para a narrativa emergente que combina perfeitamente papéis profissionais com ansiedade pessoal. Vemos o tripulante Harold forçado a passar de uma conversa casual e sussurrada para dar uma opinião formal e profissional sobre a exigência do capitão, ilustrando a capacidade do sistema de lidar com contextos sociais conflitantes. Toda a simulação gira em torno do conflito central com Von, criando uma narrativa coesa e tensa, em vez de uma coleção de dramas separados e discretos. O mecanismo amadureceu além da simples geração de um retrato da vida, demonstrando agora o poder de simular uma complexa teia de cálculos sociais, alianças estratégicas e pensamento coletivo emergente sob pressão.
O FS Madame de Pompadour é construído sobre uma arquitetura web moderna e desacoplada, separando o mecanismo de simulação de back-end da interface de usuário de front-end para garantir modularidade e desempenho.
Back-end: Python, Flask e Gemini
Todo o núcleo e a lógica da simulação residem no backend em Python.
- Python: A escolha natural por seu poderoso tratamento de dados e seu robusto ecossistema 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 front-end se comunica. Sua única responsabilidade é receber uma solicitação para o próximo turno, acionar a lógica de simulação e retornar o resultado.
- Google Gemini: O “fantasma na máquina”. O projeto se integra à API do 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, a função do personagem e o histórico recente de ações — ao modelo Gemini, que então retorna uma ação criativa e sensível ao contexto.
Front-end: React, Vite e Tailwind CSS
A interface do usuário é um aplicativo de página única (SPA) rápido e moderno.
- React: Uma poderosa biblioteca JavaScript para a construção de interfaces de usuário dinâmicas e baseadas em componentes. Todo o registro de eventos é um componente React que se atualiza de forma eficiente à medida que novas ações são recebidas do backend.
- Vite: Uma ferramenta de compilação de front-end de última geração que oferece um servidor de desenvolvimento extremamente rápido e compilações de produção otimizadas.
- 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 que prioriza a utilidade e permite a aplicação rápida e consistente de estilos diretamente no HTML, como pode ser visto nos nomes das classes dos componentes.
Arquitetura Geral
O fluxo de uma única rodada é simples e eficaz:
- O usuário clica no botão “Próximo” na interface do usuário baseada em React.
- O front-end envia uma solicitação
fetchpara o endpoint/actiondo back-end, executado no Flask. - O servidor Flask chama o
ActorManagerem Python, que executa uma única rodada da simulação, podendo chamar a API do Gemini. - O back-end retorna a string de ação resultante como um objeto JSON.
- O front-end React recebe o JSON, atualiza seu estado e renderiza o novo evento na tela, rolando automaticamente até a entrada mais recente.
