French Ship Madame De Pompadour
Symulacja społeczna i generator historii tworzący narracje science fiction oparte na Star Treku. OOP Python/Flask z pewnymi strukturami danych, API Gemini, frontend React/Vite/Tailwind.
Symulator statku kosmicznego wykorzystujący sztuczną inteligencję i losowe działania inspirowane serialem Star Trek.
FS Madame de Pompadour to tekstowy symulator narracyjny, który tworzy dynamiczne i nieprzewidywalne historie osadzone w uniwersum science fiction. Klikając „Dalej”, przesuwasz symulację o kolejną turę, obserwując, jak grupa postaci wchodzi w interakcje na podstawie połączenia z góry określonych zachowań i generatywnej sztucznej inteligencji.

Celem jest stworzenie „cyfrowego terrarium”, w którym złożona dynamika społeczna i nieoczekiwane wydarzenia wyłaniają się z prostych zasad oraz twórczej mocy sztucznej inteligencji.
Witamy na pokładzie FS Madame de Pompadour.
Kapitan Pepillo zwrócił się do członka załogi Harolda i rzucił ostro: „Złóż raport na temat środków dyscyplinarnych podjętych wobec Vona”.
Kapitan Pepillo zwrócił się w stronę stanowiska łączności i zażądał: „Natychmiast połącz mnie z porucznikiem Dubois”.
Tedrick pochylił się w stronę marynarza Waylona i szepnął: „Widziałeś, co zrobił Von? Wygląda na to, że kapitan Pepillo ma dziś zły humor”, jednocześnie dyskretnie poprawiając mundur, by wyglądać reprezentacyjnie.
Konstantin rzuca szybkie spojrzenie na członka załogi Harolda, po czym cicho mruczy do członka załogi Mohammeda: „Ciekawe, co tym razem zrobił Von, żeby narazić się kapitanowi”, dyskretnie polerując fragment pobliskiej poręczy.
Członek załogi Von nerwowo poprawia mundur, po czym, nawiązując kontakt wzrokowy z członkiem załogi Ezechielem, mruczy pod nosem: „To będzie długi dzień”, mając nadzieję, że Ezechiel mu odpowie.
Członek załogi Mohammed, zauważając dyskretne polerowanie Konstantina, spogląda na poręcz i mówi: „Wygląda na to, że trzeba to porządnie wyszorować, co? Może powinniśmy zająć się tym fragmentem razem, Konstantinie?”.
Członek załogi Harold, dostrzegając napiętą atmosferę i rozkazy kapitana, niedbale poprawił swój mundur i mruknął do członka załogi Sebastiena: „Wygląda na to, że Von ma kłopoty, co? Może powinniśmy pójść na kawę, żeby rozluźnić atmosferę, zanim obowiązki staną się jeszcze bardziej nieprzyjemne?”
Widząc napięcie, marynarz Westley zwraca się do marynarza Flin i pyta: „Słyszałeś, co się stało z Vonem? Wygląda na to, że kapitan jest w złym humorze, może powinniśmy upewnić się, że nasze stanowiska są nieskazitelnie czyste”.
Kapitan Pepillo prosi o profesjonalną opinię członka załogi Harolda.
Kapitan Pepillo zwraca się do członka załogi Vona i żąda: „Von, natychmiast zgłoś mi stan twojego stanowiska i systemów”.
Członek załogi Westley, zauważając surowe polecenie kapitana skierowane do Vona, szybko zwraca się do członka załogi Flin i cicho mówi: „Flin, sprawdźmy szafki z zapasami, myślę, że kapitan może chcieć sporządzić spis racji awaryjnych”, mając nadzieję, że dzięki temu będzie wyglądał na zajętego i uniknie niechcianej uwagi.
Członek załogi Mohammed, widząc napięcie wokół kapitana Pepillo, cicho podszedł do członka załogi Ezechiela i szepnął: „Myślisz, że powinniśmy przygotować środki czystości, na wypadek gdyby kapitan potrzebował czegoś zrobić szybko?”.


Na tym zrzucie ekranu z symulacji FS Madame de Pompadour obserwujemy złożony i dynamiczny ekosystem społeczny w ruchu. System ten pokazuje swoją zdolność do generowania spontanicznej narracji nie poprzez z góry zaprogramowane wydarzenia, ale poprzez umożliwienie niezależnym podmiotom interakcji, tworząc bogatą i wiarygodną mozaikę życia na niższych pokładach.
Symulacja rozpoczyna się od wyraźnego katalizatora: wysokiej rangi autorytetu, kapitana Pepillo, który poprzez bezpośrednie rozkazy wprowadza natychmiastowe napięcie o wysoką stawkę. Ta „kaskada rozkazów” staje się centralnym punktem grawitacyjnym dla całego ekosystemu społecznego. Zwróć uwagę, jak jego żądania nie tylko uruchamiają indywidualne scenariusze postaci, ale inicjują zjednoczone wydarzenie o wysokiej presji. Pokazuje to nowy nacisk systemu na strukturę hierarchiczną, w której działania pojedynczego podmiotu mogą dyktować kierunek, nastrój i cel strategiczny dla każdej innej postaci w wspólnym środowisku.
Gdy rozkazy kapitana rozchodzą się wśród załogi, obserwujemy pojawienie się wyrafinowanych, reaktywnych strategii społecznych. Członkowie załogi nie ograniczają się do wykonywania rutynowych zadań; natychmiast zaczynają przetwarzać nową rzeczywistość. Zobacz, jak postacie takie jak Tedrick i Konstantin tworzą tymczasowe grupki rozmówcze, by plotkować i analizować sytuację, próbując zrozumieć nową dynamikę władzy. Jeszcze bardziej imponujące jest to, że marynarz Westley wykazuje wyższy poziom logiki emergentnej, aktywnie formułując strategię przetrwania – sugerując, że on i jeden z członków załogi udają, że są zajęci oficjalnymi zadaniami, aby uniknąć gniewu kapitana. Nie jest to zachowanie zaprogramowane z góry, lecz logiczny wniosek społeczny wygenerowany przez sztuczną inteligencję w odpowiedzi na dostrzeżone zagrożenie, co świadczy o solidnej zdolności do oceny ryzyka.
Ten krótki fragment ujawnia potężny silnik generujący spontaniczne narracje, który płynnie łączy role zawodowe z osobistym niepokojem. Widzimy, jak członek załogi Harold jest zmuszony przejść od swobodnej, cichej rozmowy do przedstawienia formalnej, profesjonalnej opinii na żądanie kapitana, co ilustruje zdolność systemu do radzenia sobie ze sprzecznymi kontekstami społecznymi. Cała symulacja obraca się wokół centralnego konfliktu z Vonem, tworząc spójną, pełną napięcia narrację, a nie zbiór oddzielnych, cichych dramatów. Silnik ewoluował poza generowanie prostej mozaiki życia, wykazując teraz zdolność do symulowania złożonej sieci kalkulacji społecznych, sojuszy strategicznych oraz wyłaniającego się myślenia grupowego w obliczu presji.
FS Madame de Pompadour opiera się na nowoczesnej, rozdzielonej architekturze internetowej, oddzielającej silnik symulacyjny (backend) od interfejsu użytkownika (frontend) w celu zapewnienia modułowości i wydajności.
Backend: Python, Flask i Gemini
Cały rdzeń symulacji i logika znajdują się w backendzie napisanym w języku Python.
- Python: Naturalny wybór ze względu na potężne możliwości przetwarzania danych oraz solidny ekosystem AI/ML. Podejście obiektowe pozwala na tworzenie modułowych klas
CrewmaniActorManager, które łatwo można rozszerzać. - Flask: Lekki i elastyczny framework internetowy używany do tworzenia interfejsu API, z którym komunikuje się frontend. Jego jedynym zadaniem jest odbieranie żądania dotyczącego następnej tury, uruchamianie logiki symulacji i zwracanie wyniku.
- Google Gemini: „Duch w maszynie”. Projekt integruje się z interfejsem API Gemini, aby zasilać swój inteligentny system działań. Kiedy postać decyduje się działać „inteligentnie”, backend wysyła do modelu Gemini zapytanie zawierające kontekst statku, rolę postaci oraz historię ostatnich działań, a model zwraca kreatywne działanie uwzględniające kontekst.
Interfejs użytkownika: React, Vite i Tailwind CSS
Interfejs użytkownika to szybka, nowoczesna aplikacja jednostronicowa (SPA).
- React: Potężna biblioteka JavaScript służąca do tworzenia dynamicznych interfejsów użytkownika opartych na komponentach. Cały dziennik zdarzeń jest komponentem React, który skutecznie aktualizuje się w miarę otrzymywania nowych akcji z zaplecza.
- Vite: narzędzie do kompilacji frontendu nowej generacji, zapewniające niezwykle szybki serwer deweloperski oraz zoptymalizowane kompilacje produkcyjne.
- TypeScript: służy do dodawania statycznego typowania do kodu JavaScript, poprawiając komfort pracy programistów i ograniczając liczbę błędów.
- Tailwind CSS: Framework CSS oparty na podejściu „utility-first”, który pozwala na szybkie i spójne stylizowanie bezpośrednio w kodzie HTML, co widać w nazwach klas komponentów.
Ogólna architektura
Przebieg pojedynczej rundy jest prosty i skuteczny:
- Użytkownik klika przycisk „Dalej” w interfejsie użytkownika opartym na React.
- Frontend wysyła żądanie
fetchdo punktu końcowego/actionbackendu działającego na Flasku. - Serwer Flask wywołuje obiekt
ActorManagerw języku Python, który uruchamia jedną turę symulacji, potencjalnie wywołując API Gemini. - Backend zwraca wynikowy ciąg akcji jako obiekt JSON.
- Frontend oparty na React odbiera obiekt JSON, aktualizuje swój stan i wyświetla nowe zdarzenie na ekranie, automatycznie przewijając do najnowszego wpisu.
