PGSimCity: READMEの実装範囲と導入時に見るべき条件
このプロジェクトは「An explorable 3D city that shows how Postgres actually works. PGSimCity An explorable 3D city that shows how PostgreSQL actually works.** PGSimCity turns a PostgreSQL cluster into a city you can inspect, walk through, and break.」を基盤として、実践的に使えるオープンソース実装を提供し、再利用可能なツールチェーンと統合手段を備えています。
ひと目でわかる
- これは何?
- NikolayS/PGSimCityについて、READMEとリポジトリ情報から機能、構成、制約、導入確認点を整理する。
- 誰に向いている?
- PGSimCityは、READMEに記載された機能と前提が自分の用途に重なる場合に、検証用環境から評価を始められるプロジェクトです。npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 3 日前です。
- 何の言語で書かれている?
- 主に TypeScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
PGSimCityを読むための焦点
PGSimCityは、PostgreSQLクラスタを建物、地区、コントロールにマッピングした探索可能な3Dシティです。READMEは、データベースを運用したことがないエンジニアを対象に、PostgreSQLが実際にどう動くかを示すものと説明しています。これは独立した非営利の教育ビジュアライゼーションであり、Electronic ArtsやPostgreSQLプロジェクトとは無関係で、SimCityのコード、アセット、ゲームコンテンツは一切含みません。ライブシティはhttps://nikolays.github.io/PGSimCity/でインストール不要で利用できます。このシティはモデルでありエミュレータではありません。内部でPostgreSQLのソースコードは実行されておらず、数値は人間が観察できるようにスケーリングされています。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第1章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
シミュレーションの信頼性
READMEはプロジェクトを0.xで初期段階としています。PostgreSQL 18メジャーラインを対象とし、PostgreSQL 18.4をレビュー済みの参照リリースとし、メカニズムの主張はREL_18_STABLEに従います。開示されている簡略化の一つとして、TypeScriptバッファサンプルは固定32フレームリングを使用しており、これはPostgreSQL 18のリングサイズ規則ではないとREADMEは明記しています。4回のレビューが実施され、3回はPostgreSQLの動作をドキュメントとソースと照合し、別の監査では建物、隣接関係、アニメーションを主張として扱いました。決定論的スイートは特定の近似を固定し、赤いテストはCIを失敗させます。既知の制限: タッチコントロールはChromeのモバイルエミュレーションでのみ検証されています。プロジェクトは修正テンプレートとプルリクエストを受け付けています。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第2章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
シティの読み方: 地区と色
シティは複数の地区で構成されます。クライアントスカイは着信接続、postmaster、16プロセスのバックエンド列、shared_buffersとwal_buffersを含むバッファプール、データディレクトリとしての発掘現場、ヒープファイルとBツリーのストレージ、WAL地区、メンテナンスヤード、スタンバイ、継続性地区、そしてバックエンドの上のクエリラボです。色は常に意味を持ちます。WALは琥珀色、ダーティページは赤、クリーンページは青、vacuumは紫、チェックポイントはピンク、バックグラウンドライタはティール、レプリケーションはオレンジ、ストレージは緑、インデックスはアクア、ロックは赤です。各インスペクタは、重要な箇所で材料の簡略化を明示します。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第3章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
ガイドツアー、シナリオ、コントロール
Tキーを押すと14章のガイドツアーが始まり、計画、キャッシュ、WAL、チェックポイント、vacuum、レプリケーションを通る接続を追跡します。Enterキーでステートメントトレースが開き、Non-HOT UPDATEの例があります。シナリオには、Cache thrash(shared_buffersを16 MiBに設定)、The work_mem cliff、Long-running transaction、Checkpoint storm、synchronous_commitオフ、Slow replayがあります。カメラとキーコントロールは多岐にわたり、フライモード、ウォークモード、コマンドパレットがあります。アクセシビリティ: PostgreSQLレッスンにはキーボードとテキスト優先のルートがありますが、3Dシーンと一人称ウォークには非視覚的な代替手段はなく、ACCESSIBILITY.mdに記載されています。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第4章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
アーキテクチャと技術スタック
ソースはsrc/core、sim、world、engine、ui、observability、そして別のmachineディレクトリに分かれています。3つのルールが構造を支えます。world/layout.tsは地理情報の単一情報源です。シミュレーションはthree.jsをインポートせず、worldもシミュレーションを変更しません。両者はSimStateで出会います。レンダリングはテーマによって意味の伝え方が異なります。スタックはthree.js r185、TypeScript、Viteで、フレームワークはなく、three.jsが唯一のバンドルされた実行時依存です。クエリフローとMachineは、読者がオプトインした後にPGliteを遅延ロードできます。window.PGSIMCITYはsim、registry、bus、rig、gfx、flowsを公開し、外部からシティを操作できます。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第5章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
ローカル実行とプライバシー
ローカル実行にはNode.js ^20.19.0または>=22.12.0とWebGL2対応ブラウザが必要です。READMEのコマンド: npm install、npm run dev(http://localhost:5173)、npm test、npm run typecheck、npm run build、npm run preview(http://localhost:4173)。アプリケーションサーバーはなく、ビルドは静的バンドルです。Plausibleアナリティクスが唯一の外部サービスで、集約されCookieなしで、ページビュー、ユニークビジター、ツアー開始やステートメントトレースなどのインタラクションを記録します。個人データやフィンガープリントは送信しません。plausible.ioをブロックすると測定が停止するだけで、アプリケーションには影響しません。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第6章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
ライセンスとロードマップ
プロジェクトはApache-2.0でライセンスされ、著作権は2026 Nikolay Samokhvalov、NOTICEファイルがあります。ライセンステキストは、複製、派生作品の作成、公開表示、上演、サブライセンス、配布を許可する永続的、世界的、非独占的、無料、不可取消の著作権ライセンスを付与します。保証、サポート、セキュリティ態勢については何も述べていません。READMEはROADMAP.mdを指し、現在取り組んでいること、既知の誤り、意図的に行わないことを示し、修正テンプレートとプルリクエストリンクを提供します。商標: PostgreSQLはPostgreSQL Community Association of Canadaの商標、SimCityはElectronic Artsの商標です。
npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 第7章では、この章に書かれた設定名、ファイル名、コマンド、数値のいずれを確認したかを記録し、READMEの説明と実際の出力を混同しない。
編集部の結論
PGSimCityは、READMEに記載された機能と前提が自分の用途に重なる場合に、検証用環境から評価を始められるプロジェクトです。npm install、npm test、npm run typecheck、npm run buildを実行し、WebGL2ブラウザでTキーの14章ツアー、EnterキーのNon-HOT UPDATE、Cache thrashの表示を確認する。固定32フレームリングはPostgreSQL 18の数値根拠ではないため、READMEの制限記述と画面のモデル値を分けて記録する。 本番採用に向くかは、ここで確認した入力、出力、権限、ライセンスの条件が運用要件を満たすかで判断します。
コミュニティノート