French Ship Madame De Pompadour
Sociale simulatie en verhalengenerator die sci-fi-verhalen creëert gebaseerd op Star Trek. OOP Python/Flask met enkele datastructuren, Gemini API, React/Vite/Tailwind frontend.
Ruimteschipsimulator met AI en willekeurige acties, geïnspireerd door Star Trek.
FS Madame de Pompadour is een op tekst gebaseerde verhalende simulator die dynamische en onvoorspelbare verhalen creëert die zich afspelen in een scifi-universum. Door op "Volgende" te klikken, ga je de simulatie beurt voor beurt verder en zie je hoe een groep personages met elkaar omgaat op basis van een combinatie van vooraf gedefinieerd gedrag en generatieve AI.

Het doel is om een ‘digitaal terrarium’ te creëren waarin complexe sociale dynamieken en onverwachte gebeurtenissen voortkomen uit eenvoudige regels en de creatieve kracht van AI.
Welkom bij FS Madame de Pompadour.
Kapitein Pepillo wendde zich tot bemanningslid Harold en snauwde: „Breng verslag uit over de disciplinaire maatregelen die tegen Von zijn genomen.”
Kapitein Pepillo wendde zich naar het communicatiestation en eiste: „Breng me onmiddellijk luitenant Dubois.”
Tedrick leunde naar bemanningslid Waylon toe en fluisterde: „Heb je gezien wat Von deed? Het lijkt erop dat kapitein Pepillo vandaag in een slechte bui is,” terwijl hij subtiel zijn uniform rechtstreek om er representatief uit te zien.
Konstantin werpt snel een blik op bemanningslid Harold en mompelt dan zachtjes tegen bemanningslid Mohammed: „Ik vraag me af wat Von deze keer heeft gedaan om de kapitein tegen zich in het harnas te jagen,” terwijl hij discreet een stukje van de nabijgelegen reling oppoetst.
Bemanningslid Von trekt nerveus zijn uniform recht en mompelt, terwijl hij oogcontact maakt met bemanningslid Ezechiel, zachtjes: „Dit wordt een lange dag,” in de hoop dat Ezechiel zal reageren.
Bemanningslid Mohammed, die Konstantins onopvallende poetswerk opmerkt, werpt een blik op de reling en zegt: „Ziet eruit alsof het een flinke schrobbeurt nodig heeft, hè? Misschien moeten we dit stuk samen doen, Konstantin?“
Bemanninglid Harold, die de gespannen sfeer en de bevelen van de kapitein opmerkt, trekt nonchalant zijn eigen uniform recht en mompelt tegen bemanninglid Sebastien: „Het lijkt erop dat Von in de schijnwerpers staat, hè? Zullen we een kopje koffie gaan halen om de sfeer wat te verlichten, voordat de taken nog onaangenamer worden?”
Bemerkend dat de spanning toeneemt, wendt bemanningslid Westley zich tot bemanningslid Flin en vraagt: „Heb je gehoord wat er met Von is gebeurd? De kapitein lijkt in een slechte bui te zijn, misschien moeten we ervoor zorgen dat onze posten brandschoon zijn.”
Kapitein Pepillo vraagt bemanningslid Harold om zijn professionele mening.
Kapitein Pepillo wendt zich tot bemanningslid Von en eist: „Von, breng mij onmiddellijk verslag uit over de huidige status van je post en de systemen.”
Bemanningslid Westley, die het strenge bevel van de kapitein aan Von opmerkt, wendt zich snel tot bemanningslid Flin en zegt zachtjes: „Flin, laten we de voorraadkasten controleren. Ik denk dat de kapitein misschien de noodrantsoenen geïnventariseerd wil hebben,” in de hoop druk bezig te lijken en ongewenste aandacht te vermijden.
Bemanningslid Mohammed, die de spanning rond kapitein Pepillo opmerkt, loopt stilletjes naar bemanningslid Ezechiel toe en fluistert: „Denk je dat we wat schoonmaakspullen klaar moeten zetten, voor het geval de kapitein snel iets gedaan wil hebben?“


In deze demonstratiemomentopname uit de FS Madame de Pompadour-simulatie zien we een complex en dynamisch sociaal ecosysteem in beweging. Het systeem toont zijn vermogen om een spontaan ontstaan verhaal te genereren, niet door vooraf vastgelegde gebeurtenissen, maar door onafhankelijke actoren met elkaar te laten interageren, waardoor een rijk en geloofwaardig leven op de lagere dekken ontstaat.
De simulatie komt op gang met een duidelijke katalysator: een hooggeplaatste autoriteitsfiguur, kapitein Pepillo, die door middel van directe bevelen onmiddellijk een spanning met hoge inzet creëert. Deze „bevelcascade“ wordt het centrale zwaartepunt voor het gehele sociale ecosysteem. Merk op hoe zijn eisen niet alleen individuele personagescripts activeren, maar in plaats daarvan een gezamenlijke gebeurtenis onder hoge druk in gang zetten. Dit toont de nieuwe focus van het systeem op hiërarchische structuur, waarbij de acties van één enkele actor de focus, sfeer en strategische doelstelling voor alle andere personages in de gedeelde omgeving kunnen bepalen.
Terwijl de bevelen van de kapitein door de bemanning heen golven, zien we de opkomst van verfijnde, reactieve sociale strategieën. De bemanningsleden gaan niet zomaar door met hun routinetaken; ze beginnen onmiddellijk de nieuwe realiteit te verwerken. Kijk hoe personages als Tedrick en Konstantin tijdelijke gespreksgroepjes vormen om te roddelen en de situatie te analyseren, in een poging de nieuwe machtsverhoudingen te doorgronden. Nog indrukwekkender is dat bemanningslid Westley blijk geeft van een hoger niveau van spontane logica door actief een overlevingsstrategie te bedenken: hij stelt voor dat hij en een bemanningsgenoot zich druk maken met officiële taken om de toorn van de kapitein te ontlopen. Dit is geen vooraf geprogrammeerd gedrag, maar een logische sociale conclusie die door de AI wordt gegenereerd als reactie op een waargenomen dreiging, waarmee een robuust vermogen tot risicobeoordeling wordt aangetoond.
Dit korte moment onthult een krachtige motor voor spontane verhaallijnen die professionele rollen naadloos vermengt met persoonlijke bezorgdheid. We zien hoe bemanningslid Harold gedwongen wordt om over te schakelen van een informeel, gedempt gesprek naar het geven van een formeel, professioneel oordeel op verzoek van de kapitein, wat het vermogen van het systeem illustreert om met tegenstrijdige sociale contexten om te gaan. De gehele simulatie draait om het centrale conflict met Von, waardoor een samenhangende, narratieve ‘snelkookpan’ ontstaat in plaats van een verzameling afzonderlijke, stille drama’s. De engine is verder ontwikkeld dan het genereren van een eenvoudig levenstapijt en toont nu het vermogen om een complex web van sociale afwegingen, strategische allianties en spontaan groepsdenken onder druk te simuleren.
FS Madame de Pompadour is gebouwd op een moderne, ontkoppelde webarchitectuur, waarbij de backend-simulatie-engine is gescheiden van de frontend-gebruikersinterface voor modulariteit en prestaties.
Backend: Python, Flask en Gemini
De volledige simulatiekern en -logica bevinden zich in de Python-backend.
- Python: De logische keuze vanwege de krachtige gegevensverwerking en het robuuste AI/ML-ecosysteem. De objectgeoriënteerde aanpak maakt modulaire
Crewman- enActorManager-klassen mogelijk die eenvoudig uit te breiden zijn. - Flask: Een lichtgewicht en flexibel webframework dat wordt gebruikt om de API te maken waarmee de frontend communiceert. De enige taak ervan is het ontvangen van een verzoek voor de volgende beurt, het activeren van de simulatielogica en het retourneren van het resultaat.
- Google Gemini: De „geest in de machine“. Het project is geïntegreerd met de Gemini-API om het intelligente actiesysteem aan te sturen. Wanneer een personage besluit om ‘intelligent’ te handelen, stuurt de backend een prompt – met daarin de context van het schip, de rol van het personage en de recente actiegeschiedenis – naar het Gemini-model, dat vervolgens een creatieve, contextbewuste actie retourneert.
Frontend: React, Vite en Tailwind CSS
De gebruikersinterface is een snelle, moderne single-page-applicatie (SPA).
- React: Een krachtige JavaScript-bibliotheek voor het bouwen van dynamische en op componenten gebaseerde gebruikersinterfaces. Het volledige gebeurtenislogboek is een React-component die efficiënt wordt bijgewerkt zodra nieuwe acties worden ontvangen van de backend.
- Vite: Een frontend-buildtool van de volgende generatie die een extreem snelle ontwikkelingsserver en geoptimaliseerde productiebouwversies biedt.
- TypeScript: Wordt gebruikt om statische typering aan de JavaScript-code toe te voegen, waardoor de ontwikkelaarservaring wordt verbeterd en het aantal bugs wordt verminderd.
- Tailwind CSS: Een ‘utility-first’ CSS-framework dat snelle en consistente opmaak mogelijk maakt, rechtstreeks binnen de HTML, zoals te zien is in de klassennamen van de componenten.
Algemene architectuur
De workflow van een enkele beurt is eenvoudig en effectief:
- De gebruiker klikt op de "Volgende"-knop in de op React gebaseerde gebruikersinterface.
- De frontend verstuurt een
fetch-verzoek naar het/action-eindpunt van de backend, dat op Flask draait. - De Flask-server roept de Python
ActorManageraan, die één beurt van de simulatie uitvoert en daarbij mogelijk de Gemini-API aanroept. - De backend retourneert de resulterende actiestring als een JSON-object.
- De React-frontend ontvangt de JSON, werkt de status bij en geeft de nieuwe gebeurtenis weer op het scherm, waarbij automatisch naar de nieuwste invoer wordt gescrolld.
