French Ship Madame De Pompadour
Star Trekに基づくSFナラティブを生成する社会シミュレーション&ストーリージェネレーター。OOP Python/Flask、一部のデータ構造、Gemini API、React/Vite/Tailwindフロントエンド。
AIとランダムアクションを使用した、スタートレックに着想を得た宇宙船シミュレーター
FS Madame de Pompadourは、SF宇宙を舞台に、ダイナミックで予測不可能なストーリーを生み出すテキストベースのナラティブシミュレーターです。「次へ」をクリックすると、シミュレーションが1ターンずつ進行し、事前に定義された行動と生成AIの組み合わせに基づいて、登場人物たちが互いに交流する様子を見ることができます。
目標は、シンプルなルールとAIの創造力から、複雑な社会力学と予期せぬ出来事が生まれる「デジタルテラリウム」を作り出すことです。
FS Madame de Pompadourへようこそ。
ペピーヨ艦長はハロルド船員の方を向き、「フォンに対する懲戒処分の報告をしろ」と怒鳴った。
ペピーヨ艦長は通信ステーションに向き直り、「すぐにデュボア中尉を呼び出せ」と要求した。
テドリックはウェイロン船員に身を寄せ、「フォンが何をやったか見たか? 今日のペピーヨ艦長は機嫌が悪いみたいだ」とささやきながら、体裁を整えるために微妙に制服を直した。
コンスタンティンはハロルド船員をちらりと見てから、モハメッド船員に静かにつぶやいた、「今度はフォンが何をして艦長の不興を買ったんだろうな」と、近くの手すりの一部をこっそり磨きながら。
フォン船員は緊張しながら制服を整え、それからエゼキエル船員の目を捕らえて、「長い一日になりそうだ」と小声でつぶやき、エゼキエルが反応することを期待した。
モハメッド船員は、コンスタンティンがこっそり磨いているのに気づき、手すりを見て言った、「しっかり磨く必要がありそうだな? コンスタンティン、この辺りは一緒にやらないか?」
ハロルド船員は、緊張した雰囲気と艦長の命令に気づき、自分の制服をさりげなく整え、セバスチャン船員につぶやいた、「フォンは窮地に立たされてるみたいだな? 任務がもっと不快になる前に、コーヒーを飲んで気分を和らげようぜ?」
緊張を見て、ウェストリー船員はフリン船員の方を向いて尋ねた、「フォンに何があったか聞いたか? 艦長は機嫌が悪いみたいだ。自分のステーションを完璧にしておいたほうがいいかもしれない。」
ペピーヨ艦長はハロルド船員に専門的な意見を求める。
ペピーヨ艦長はフォン船員の方を向き、「フォン、現在のステーションとシステムの状況をすぐに報告しろ」と要求した。
ウェストリー船員は、フォンに対する艦長の厳しい命令に気づき、すぐにフリン船員の方を向いて静かに言った、「フリン、補給ロッカーを確認しよう。艦長が非常食の在庫確認を望むかもしれない」と、忙しそうに見せかけて不要な注目を避けようとした。
モハメッド船員は、ペピーヨ艦長の周りの緊張を見て、静かにエゼキエル船員に近づきささやいた、「艦長が何かすぐに必要とした場合に備えて、掃除用具を準備しておいたほうがいいと思うか?」
FS Madame de Pompadourシミュレーションのこのデモンストレーションスナップショットでは、複雑でダイナミックな社会的生態系が動いている様子を観察できます。このシステムは、事前にスクリプト化されたイベントではなく、独立したエージェント同士の相互作用を可能にすることで、創発的なナラティブを生成する能力を示しており、下級船員たちの生活の豊かで信頼できるタペストリーを創り出しています。
シミュレーションは明確な触媒で始まります。高位の権威者であるペピーヨ艦長が、直接的な命令によって即座に高リスクの緊張感をもたらします。この「命令のカスケード」が、社会生態系全体の中心的な重力点となります。彼の要求が個々のキャラクターのスクリプトをトリガーするだけでなく、代わりに統一された高圧的なイベントを開始することに注目してください。これは、単一のエージェントの行動が、共有環境内の他のすべてのキャラクターの焦点、ムード、戦略的目的を決定できる、階層構造に対するシステムの新たな焦点を示しています。
艦長の命令が乗組員に波紋のように広がるにつれて、洗練された反応的な社会的戦略の出現が見られます。乗組員たちはただアイドル状態のタスクを続けるのではなく、すぐに新しい現実を処理し始めます。テドリックやコンスタンティンのようなキャラクターが、一時的な会話ポッドを形成して噂話をし、状況を分析し、新しい力関係を理解しようとしている様子を見てください。さらに印象的なのは、ウェストリー船員が、自分と仲間が公式の任務で忙しく見えるようにして艦長の怒りを避けることを提案し、積極的に生存戦略を策定するという、より高度な創発的論理を示していることです。これは事前にスクリプト化された行動ではなく、知覚された脅威に応答してAIによって生成された論理的な社会的結論であり、堅牢なリスク評価能力を示しています。
この短い窓は、職業的役割と個人的な不安をシームレスに融合させる、創発的なストーリーテリングのための強力なエンジンを明らかにしています。ハロルド船員が、カジュアルでひそひそ声の会話から、艦長の要求に対して正式で専門的な意見を述べるよう強制される様子は、システムが相反する社会的文脈を管理する能力を示しています。シミュレーション全体はフォンとの中心的な対立を軸に展開し、個別の静かなドラマの集まりではなく、統一されたナラティブの圧力鍋を生み出しています。このエンジンは、単純な生活のタペストリーを生成する段階を超えて成熟し、プレッシャー下での社会的計算、戦略的同盟、創発的な集団思考の複雑なウェブをシミュレートする力を示しています。
FS Madame de Pompadourは、モジュール性とパフォーマンスのために、バックエンドのシミュレーションエンジンとフロントエンドのユーザーインターフェースを分離した、モダンで疎結合なウェブアーキテクチャ上に構築されています。
バックエンド: Python、Flask、Gemini
シミュレーションのコアとロジック全体は、Pythonバックエンドにあります。
- Python: 強力なデータ処理と堅牢なAI/MLエコシステムのための自然な選択です。オブジェクト指向アプローチにより、拡張が容易なモジュール式の
CrewmanクラスとActorManagerクラスが可能になります。 - Flask: フロントエンドが通信するAPIを作成するために使用される、軽量で柔軟なウェブフレームワークです。その唯一の責任は、次のターンのリクエストを受信し、シミュレーションロジックをトリガーし、結果を返すことです。
- Google Gemini: 「機械の中の幽霊」です。このプロジェクトは、インテリジェントなアクションシステムを強化するためにGemini APIと統合されています。キャラクターが「インテリジェントに」行動することを決定すると、バックエンドは、宇宙船のコンテキスト、キャラクターの役割、最近のアクション履歴を含むプロンプトをGeminiモデルに送信し、モデルは創造的でコンテキストを認識したアクションを返します。
フロントエンド: React、Vite、Tailwind CSS
ユーザーインターフェースは、高速でモダンなシングルページアプリケーション(SPA)です。
- React: 動的でコンポーネントベースのユーザーインターフェースを構築するための強力なJavaScriptライブラリです。イベントログ全体はReactコンポーネントであり、バックエンドから新しいアクションを受信すると効率的に更新されます。
- Vite: 次世代のフロントエンドビルドツールであり、非常に高速な開発サーバーと最適化されたプロダクションビルドを提供します。
- TypeScript: JavaScriptコードに静的型付けを追加するために使用され、開発者体験を向上させ、バグを削減します。
- Tailwind CSS: ユーティリティファーストのCSSフレームワークであり、コンポーネントのクラス名に見られるように、HTML内で直接迅速かつ一貫したスタイリングを可能にします。
全体のアーキテクチャ
単一ターンの流れはシンプルで効果的です。
- ユーザーがReactベースのUIで**「次へ」**ボタンをクリックします。
- フロントエンドは、Flaskで実行されているバックエンドの
/actionエンドポイントにfetchリクエストを送信します。 - FlaskサーバーはPythonの
ActorManagerを呼び出し、シミュレーションの1ターンを実行し、必要に応じてGemini APIを呼び出します。 - バックエンドは、結果のアクション文字列をJSONオブジェクトとして返します。
- ReactフロントエンドはJSONを受信し、状態を更新し、新しいイベントを画面にレンダリングし、自動的に最新のエントリまでスクロールします。
