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.
Ruimteschip-simulator met AI en willekeurige acties, geïnspireerd door Star Trek.
FS Madame de Pompadour is een tekstgebaseerde narratieve simulator die dynamische en onvoorspelbare verhalen creëert in een sciencefiction-universum. Door op "Volgende" te klikken, verplaats je de simulatie één beurt tegelijk en zie je hoe een reeks personages met elkaar interageren 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 ontstaan uit eenvoudige regels en de creatieve kracht van AI.
Welkom bij FS Madame de Pompadour.
Kapitein Pepillo draaide zich naar Bemanningslid Harold en snauwde: "Rapporteer over de disciplinaire maatregelen tegen Von."
Kapitein Pepillo draaide zich naar de communicatiepost en eiste: "Haal onmiddellijk Luitenant Dubois erbij."
Tedrick leunde naar Bemanningslid Waylon en fluisterde: "Heb je gezien wat Von deed? Het lijkt erop dat Kapitein Pepillo vandaag in een bui is," terwijl hij subtiel zijn uniform aanpaste om er representatief uit te zien.
Konstantin kijkt snel naar Bemanningslid Harold, mompelt dan zachtjes tegen Bemanningslid Mohammed: "Ik vraag me af wat Von heeft gedaan om weer op de zwarte lijst van de Kapitein te staan," terwijl hij discreet een deel van de nabijgelegen reling poetst.
Bemanningslid Von trekt nerveus zijn uniform recht, vangt dan de blik van Bemanningslid Ezechiel en mompelt binnensmonds: "Dit wordt een lange dag," in de hoop dat Ezechiel zal reageren.
Bemanningslid Mohammed, die Konstantins discrete poetswerk opmerkt, kijkt naar de reling en zegt: "Ziet ernaar uit dat die een goede schrobbeurt nodig heeft, hè? Zullen we dit gedeelte samen doen, Konstantin?"
Bemanningslid Harold, die de gespannen sfeer en de orders van de Kapitein opmerkt, trekt nonchalant zijn eigen uniform recht en mompelt tegen Bemanningslid Sebastien: "Het ziet ernaar uit dat Von op de hete stoel zit, hè? Zullen we een koffie gaan halen om de stemming te verlichten voordat de taken onaangenamer worden?"
Bemanningslid Westley, die de spanning ziet, draait zich naar Bemanningslid Flin en vraagt: "Heb je gehoord wat er met Von gebeurd is? Het lijkt erop dat de Kapitein in een bui is, misschien moeten we ervoor zorgen dat onze posten brandschoon zijn."
Kapitein Pepillo vraagt om hun professionele mening, Bemanningslid Harold.
Kapitein Pepillo draait zich naar Bemanningslid Von en eist: "Von, rapporteer onmiddellijk aan mij over je huidige post en systeemstatus."
Bemanningslid Westley, die het strenge bevel van de Kapitein aan Von opmerkt, draait zich snel naar Bemanningslid Flin en zegt zachtjes: "Flin, laten we de voorraadkasten controleren, ik denk dat de Kapitein de noodrantsoenen geïnventariseerd wil hebben," in de hoop bezig te lijken en ongewenste aandacht te vermijden.
Bemanningslid Mohammed, die de spanning rond Kapitein Pepillo ziet, nadert stilletjes Bemanningslid Ezechiel en fluistert: "Denk je dat we wat schoonmaakspullen klaar moeten zetten, voor het geval de Kapitein snel iets gedaan wil hebben?"
In deze demonstratieopname van de FS Madame de Pompadour-simulatie observeren we een complex en dynamisch sociaal ecosysteem in beweging. Het systeem toont zijn vermogen om opkomende verhalen te genereren, niet door vooraf geschreven gebeurtenissen, maar door onafhankelijke agenten te laten interageren, waardoor een rijke en geloofwaardige tapestry van het leven op de lagere dekken ontstaat.
De simulatie ontbrandt met een duidelijke katalysator: een hooggeplaatste autoriteitsfiguur, Kapitein Pepillo, die onmiddellijke, hoogstaande spanning introduceert via directe orders. Deze "commando-cascade" wordt het centrale zwaartepunt voor het hele sociale ecosysteem. Merk op hoe zijn eisen niet alleen individuele personagescripts activeren, maar in plaats daarvan een uniforme, hoogdrukgebeurtenis initiëren. Dit toont de nieuwe focus van het systeem op hiërarchische structuur, waar de acties van een enkele agent de focus, stemming en strategische doelstelling voor elk ander personage in de gedeelde omgeving kunnen bepalen.
Terwijl de orders van de Kapitein door de bemanning golven, zien we het ontstaan van verfijnde, reactieve sociale strategieën. De bemanningsleden gaan niet door met hun dagelijkse taken; ze beginnen onmiddellijk de nieuwe realiteit te verwerken. Kijk hoe personages zoals Tedrick en Konstantin tijdelijke gespreksgroepen vormen om te roddelen en de situatie te analyseren, in een poging de nieuwe machtsdynamiek te begrijpen. Nog indrukwekkender is dat Bemanningslid Westley een hoger niveau van opkomende logica demonstreert door actief een overlevingsstrategie te formuleren—door voor te stellen dat hij en een collega bezig lijken met officiële taken om de woede van de Kapitein te vermijden. Dit is geen vooraf geschreven gedrag, maar een logische sociale conclusie gegenereerd door de AI als reactie op een waargenomen dreiging, wat een robuust vermogen tot risicobeoordeling aantoont.
Dit korte venster onthult een krachtige motor voor opkomende verhalen die professionele rollen naadloos combineert met persoonlijke angst. We zien Bemanningslid Harold gedwongen worden om te schakelen van een informeel, gedempt gesprek naar het geven van een formele, professionele mening over de eis van de Kapitein, wat het vermogen van het systeem illustreert om tegenstrijdige sociale contexten te beheren. De hele simulatie draait om het centrale conflict met Von, waardoor een verenigde narratieve drukcooker ontstaat in plaats van een verzameling aparte, stille drama's. De motor is verder ontwikkeld dan het genereren van een eenvoudige tapestry van het leven en toont nu het vermogen om een complex web van sociale berekening, strategische allianties en opkomend groepsdenken onder druk te simuleren.
FS Madame de Pompadour is gebouwd op een moderne, ontkoppelde webarchitectuur, waarbij de backend-simulatie-engine wordt gescheiden van de frontend-gebruikersinterface voor modulariteit en prestaties.
Backend: Python, Flask en Gemini
De volledige simulatiekern en -logica bevindt zich in de Python-backend.
- Python: De natuurlijke keuze vanwege de krachtige gegevensverwerking en 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 creëren waarmee de frontend communiceert. De enige verantwoordelijkheid 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 integreert met de Gemini API om het intelligente actiesysteem aan te sturen. Wanneer een personage besluit "intelligent" te handelen, stuurt de backend een prompt—met 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 componentgebaseerde gebruikersinterfaces. De volledige gebeurtenissenlog is een React-component die efficiënt wordt bijgewerkt wanneer nieuwe acties van de backend worden ontvangen.
- Vite: Een next-generation frontend-buildtool die een extreem snelle ontwikkelserver en geoptimaliseerde productiebuilds biedt.
- TypeScript: Wordt gebruikt om statische typering aan de JavaScript-code toe te voegen, wat de ontwikkelaarservaring verbetert en bugs vermindert.
- Tailwind CSS: Een utility-first CSS-framework dat snelle en consistente styling direct binnen de HTML mogelijk maakt, zoals te zien is in de klassennamen van de componenten.
Algehele Architectuur
De stroom van een enkele beurt is eenvoudig en effectief:
- De gebruiker klikt op de "Volgende"-knop in de op React gebaseerde UI.
- De frontend stuurt 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, waarbij mogelijk de Gemini API wordt aangeroepen. - 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 op het scherm weer, waarbij automatisch naar de nieuwste invoer wordt gescrold.
