French Ship Madame De Pompadour
Simulazione sociale e generatore di storie che crea narrazioni fantascientifiche basate su Star Trek. OOP Python/Flask con alcune strutture dati, API Gemini, frontend React/Vite/Tailwind.
Simulatore di astronave che utilizza l'intelligenza artificiale e azioni casuali ispirate a Star Trek.
FS Madame de Pompadour è un simulatore narrativo testuale che crea storie dinamiche e imprevedibili ambientate in un universo fantascientifico. Cliccando su "Avanti", si fa avanzare la simulazione di un turno alla volta, osservando come un gruppo di personaggi interagisca tra loro sulla base di una combinazione di comportamenti predefiniti e IA generativa.

L’obiettivo è creare un “terrario digitale” in cui dinamiche sociali complesse ed eventi inaspettati emergano da regole semplici e dal potere creativo dell’IA.
Benvenuti sulla FS Madame de Pompadour.
Il capitano Pepillo si rivolse al membro dell’equipaggio Harold e gli intimò: «Fammi un resoconto delle misure disciplinari adottate nei confronti di Von».
Il capitano Pepillo si rivolse alla postazione di comunicazione e ordinò: «Passami immediatamente il tenente Dubois».
Tedrick si chinò verso il marinaio Waylon e sussurrò: «Hai visto cosa ha fatto Von? Sembra che oggi il capitano Pepillo sia di cattivo umore», mentre si sistemava con discrezione l’uniforme per apparire presentabile.
Konstantin lancia una rapida occhiata al marinaio Harold, poi mormora sottovoce al marinaio Mohammed: «Mi chiedo cosa abbia fatto Von per finire di nuovo nelle grazie del Capitano questa volta», mentre lucida discretamente una parte della ringhiera vicina.
Il marinaio Von si sistema nervosamente l’uniforme, poi, incrociando lo sguardo del marinaio Ezechiel, mormora sottovoce: «Sarà una giornata lunga», sperando che Ezechiel risponda.
Il marinaio Mohammed, notando la discreta lucidatura di Konstantin, lancia uno sguardo alla ringhiera e dice: «Sembra che abbia bisogno di una bella pulita, eh? Forse dovremmo occuparci di questa parte insieme, Konstantin?»
Il marinaio Harold, notando l’atmosfera tesa e gli ordini del Capitano, si sistemò con nonchalance l’uniforme e mormorò al marinaio Sebastien: «Sembra che Von sia nei guai, eh? Pensi che dovremmo andare a prendere un caffè per alleggerire l’atmosfera prima che i compiti diventino ancora più spiacevoli?»
Notando la tensione, il membro dell’equipaggio Westley si rivolge al membro dell’equipaggio Flin e chiede: «Hai sentito cosa è successo a Von? Sembra che il Capitano sia di cattivo umore, forse dovremmo assicurarci che le nostre postazioni siano immacolate.»
Il Capitano Pepillo chiede il parere professionale del membro dell’equipaggio Harold.
Il Capitano Pepillo si rivolge al membro dell’equipaggio Von e gli ordina: «Von, riferiscimi immediatamente sulla situazione attuale della tua postazione e dello stato dei sistemi».
Il membro dell’equipaggio Westley, notando il severo ordine del Capitano rivolto a Von, si rivolge rapidamente al membro dell’equipaggio Flin e gli dice a bassa voce: «Flin, controlliamo gli armadietti delle provviste, credo che il Capitano voglia fare l’inventario delle razioni di emergenza», sperando di sembrare indaffarato ed evitare qualsiasi attenzione indesiderata.
Il membro dell’equipaggio Mohammed, vedendo la tensione che aleggiava attorno al capitano Pepillo, si avvicinò silenziosamente al membro dell’equipaggio Ezechiel e gli sussurrò: «Pensi che dovremmo preparare dei prodotti per la pulizia, nel caso in cui il capitano abbia bisogno che qualcosa venga fatto in fretta?»


In questa istantanea dimostrativa tratta dalla simulazione FS Madame de Pompadour, osserviamo un ecosistema sociale complesso e dinamico in movimento. Il sistema mette in mostra la sua capacità di generare una narrazione emergente non attraverso eventi prestabiliti, ma consentendo ad agenti indipendenti di interagire, creando un ricco e credibile intreccio di vita sui ponti inferiori.
La simulazione prende il via con un chiaro catalizzatore: una figura autoritaria di alto rango, il Capitano Pepillo, che introduce una tensione immediata e ad alto rischio attraverso ordini diretti. Questa “cascata di comandi” diventa il punto di gravità centrale dell’intero ecosistema sociale. Notate come le sue richieste non si limitino ad attivare le trame dei singoli personaggi, ma diano invece il via a un evento unificato e ad alta pressione. Ciò mette in evidenza la nuova attenzione del sistema alla struttura gerarchica, in cui le azioni di un singolo agente possono determinare l’attenzione, l’umore e l’obiettivo strategico di ogni altro personaggio nell’ambiente condiviso.
Man mano che gli ordini del Capitano si propagano tra l’equipaggio, assistiamo all’emergere di strategie sociali sofisticate e reattive. I membri dell’equipaggio non si limitano a proseguire con attività futili; iniziano immediatamente a elaborare la nuova realtà. Osservate come personaggi come Tedrick e Konstantin formino gruppi di conversazione temporanei per spettegolare e analizzare la situazione, cercando di dare un senso alla nuova dinamica di potere. Ancora più impressionante è il modo in cui il membro dell’equipaggio Westley dimostra un livello superiore di logica emergente formulando attivamente una strategia di sopravvivenza: suggerisce che lui e un compagno di equipaggio sembrino impegnati in compiti ufficiali per evitare l’ira del Capitano. Non si tratta di un comportamento prestabilito, ma di una conclusione sociale logica generata dall’IA in risposta a una minaccia percepita, a dimostrazione di una solida capacità di valutazione del rischio.
Questa breve finestra rivela un potente motore per la narrazione emergente che fonde senza soluzione di continuità i ruoli professionali con l’ansia personale. Vediamo il membro dell’equipaggio Harold costretto a passare da una conversazione informale e sommessa all’espressione di un’opinione formale e professionale su richiesta del Capitano, a dimostrazione della capacità del sistema di gestire contesti sociali contrastanti. L’intera simulazione ruota attorno al conflitto centrale con Von, creando una pentola a pressione narrativa unificata piuttosto che una raccolta di drammi separati e silenziosi. Il motore è maturato oltre la semplice generazione di un intreccio di vita, dimostrando ora il potere di simulare una complessa rete di calcoli sociali, alleanze strategiche e pensiero di gruppo emergente sotto pressione.
FS Madame de Pompadour è costruita su una moderna architettura web disaccoppiata, che separa il motore di simulazione backend dall’interfaccia utente frontend per garantire modularità e prestazioni.
Backend: Python, Flask e Gemini
L’intero nucleo e la logica della simulazione risiedono nel backend Python.
- Python: La scelta naturale per la sua potente gestione dei dati e il solido ecosistema di IA/ML. L’approccio orientato agli oggetti consente di creare classi modulari
CrewmaneActorManagerfacili da estendere. - Flask: Un framework web leggero e flessibile utilizzato per creare l’API con cui comunica il frontend. La sua unica responsabilità è ricevere una richiesta per il turno successivo, attivare la logica di simulazione e restituire il risultato.
- Google Gemini: Il “fantasma nella macchina”. Il progetto si integra con l’API Gemini per alimentare il proprio sistema di azioni intelligenti. Quando un personaggio decide di agire «in modo intelligente», il backend invia un prompt — contenente il contesto della nave, il ruolo del personaggio e la cronologia delle azioni recenti — al modello Gemini, che a sua volta restituisce un’azione creativa e sensibile al contesto.
Frontend: React, Vite e Tailwind CSS
L’interfaccia utente è un’applicazione a pagina singola (SPA) veloce e moderna.
- React: Una potente libreria JavaScript per la creazione di interfacce utente dinamiche e basate su componenti. L’intero registro degli eventi è un componente React che si aggiorna in modo efficiente man mano che vengono ricevute nuove azioni dal backend.
- Vite: uno strumento di build frontend di nuova generazione che fornisce un server di sviluppo estremamente veloce e build di produzione ottimizzate.
- TypeScript: utilizzato per aggiungere la tipizzazione statica al codice JavaScript, migliorando l’esperienza degli sviluppatori e riducendo i bug.
- Tailwind CSS: Un framework CSS incentrato sulle utilità che consente uno styling rapido e coerente direttamente all’interno dell’HTML, come si vede dai nomi delle classi dei componenti.
Architettura generale
Il flusso di un singolo turno è semplice ed efficace:
- L’utente fa clic sul pulsante "Avanti" nell’interfaccia utente basata su React.
- Il frontend invia una richiesta
fetchall’endpoint/actiondel backend in esecuzione su Flask. - Il server Flask chiama l’
ActorManagerin Python, che esegue un singolo turno della simulazione, eventualmente richiamando l’API Gemini. - Il backend restituisce la stringa dell’azione risultante come oggetto JSON.
- Il frontend React riceve il JSON, aggiorna il proprio stato e visualizza il nuovo evento sullo schermo, scorrendo automaticamente fino alla voce più recente.
