世界を動かす技術を、日本語で。

Fable 5.1 ワールドモデリング

2026年9月3日原文(github.com)

概要

Worlds は、現実の場所をコードで再現した ブラウザネイティブな3D体験。 すべて オープンデータ を用い、 Three.js のみで構築、npmで簡単に実行可能。 自律エージェント群 による調査・モデリング・検証を経て、品質を確保。 各建物や看板まで 詳細に生成、バイナリ資産やゲームエンジンを未使用。 MITライセンス で公開、商用利用や改変も自由。

Worlds: コードで作る現実世界の再構築

  • Worlds は、現実の都市や観光地を コード主導 で再構築した3Dワールド集
  • Three.js のみで動作し、npmコマンドで即時体験可能な オープンソース プロジェクト
  • ゲームエンジンや独自3Dタイル は一切不使用、全てのデータとロジックがリポジトリ内に完結
  • 各ワールドは Claude Fable 5.1エージェント群 による調査・設計・検証を経て自動生成
  • 建物・店舗・看板・樹木・信号 など、細部までオープンデータと公開画像から自動生成

Union Square, San Francisco

  • Union Square とその周辺(Powell, Geary, Post, Stockton)を 実際の地形・街路網 で再現
  • 129の店舗、動作する信号機、ケーブルカー、昼/夕方/夜の時間帯切替対応
  • Apple Union Square(300 Post St)Nintendo SAN FRANCISCO(331 Powell St) の店内も探索可能
  • 実行方法
    • cd union-square-sf && npm install && npm run dev
  • 建物: 453 OSMフットプリント、75手作成ファサード、129店舗名
  • 群衆: 220人の歩行者 (1,398ノードのナビグラフ)、109台の車両(ケーブルカー含む)
  • インテリア:Apple/Nintendo店舗、23のインタラクティブオブジェクト
  • 検証: 34カメラ位置で実写写真と比較、147比較シート、9名の独立レビュアーレポート

Higashiyama, Kyoto

  • 京都・東山南部の徒歩ルート (祇園→花見小路→八坂神社→ねねの道→八坂の塔→二年坂→三年坂→清水坂→清水寺)2.3kmを連続再現
  • アニメ背景風 の3D→2Dレンダリング
    • セル調マテリアル、色相シフト影、スクリーンスペースインク、スプリットトーン
  • バイナリ資産ゼロ、全オブジェクトを Canvas2Dで起動時描画
  • 実行方法
    • cd kyoto-higashiyama && npm install && npm run dev
    • もしくは npm run viewer && open viewer/higashiyama.html(HTML単体ファイルで閲覧可能)
  • 建物:266棟、471店舗、19のランドマーク(15地区)
  • ディテール: 1,938本の樹木(11種)、3,076小道具(60種)、142インタラクション
  • サーベイ:全高低差を GSI 1m LiDAR で独自計測、道路幅を8mごとに OSMフットプリントへレイキャスト
  • 検証:52視点執筆、全ルート歩行テスト、各通りの通行性チェック、ページエラーゼロ
  • 実測値に基づく修正
    • 八坂の塔:38.79m(従来46m説を覆す)、清水舞台:115.5m ASL(従来240m説を覆す)、舞台寸法・柱数も実測値反映

制作パイプライン

  • リサーチ :エージェントがOpenStreetMap、USGS標高、交通・道路仕様、店舗調査を並列取得
  • オフライン資産生成 :Blender(bpy)スクリプトでGLBキット(ファサード、街具、車両、植栽、什器、人体パーツ)を自動生成
  • ランタイム :Three.jsアプリが地形・街路・ファサード・小道具・群衆・交通をJSON仕様から組み立て
  • カメラマッチQA :Playwrightで実アプリを自動操作、実写写真と比較、レビュアー(建築家・地理学者・テクニカルアーティスト・インタラクション担当)がレポート提出→次サイクルへ

ライセンスとデータ

  • コード・生成資産 :MITライセンス
  • 形状データ :OpenStreetMap(ODbL)、USGS 3DEP(パブリックドメイン)由来
  • 参照写真 :リポジトリには未収録、各エリアのrefs/*/SOURCES.mdで出典管理
  • ブランド名・ロゴ :実在店舗の現地表記として使用、権利は各社に帰属

今後の展開

  • 新たなワールドの追加予定
  • パイプライン全公開、誰でも 再現・改変・調査 が可能

Hackerたちの意見

「ワールドモデル」って聞いたとき、こんなの期待してなかったよ!

わかる、「ワールドモデル」には今や定義が多すぎるよね。俺の意見では、基準はただ一つ:世界をシミュレートできるかどうか。

これ、2〜3分のYouTubeデモがあったらめっちゃ良さそうだな。フェイク編集:ここに1分の長い動画があるよ:https://github.com/PhiloLabs/fable51-worlds/blob/main/union-... NPCの人や車のロジックがどうなってるのか、レールに乗ってるのかとか、気になるな。デモとしては結構いいNPCの密度だね。

NPCの人や車のロジックがどうなってるのか、レールに乗ってるのかとか、気になるな。デモとしては結構いいNPCの密度だね。これだよ:- https://github.com/PhiloLabs/fable51-worlds/blob/main/union-... - https://github.com/PhiloLabs/fable51-worlds/blob/main/union-...

もっと情報を提供してほしいな。時間、コスト、信頼性(どれくらい失敗作があったの?監視が必要だったかとか)とかね。でも、確かにすごく印象的なデモだね。

これは一発の結果だけど、すごく長いプロンプトがあるんだ:https://github.com/PhiloLabs/fable51-worlds/blob/main/union-... サブエージェントの使い方や自己QAループの明確なガイダンスが含まれてる。約2時間(サブエージェントの使用が多い)、合計約800万トークン、APIで約33ドル。

RTSゲームを作ってるときに、このタイプのモデリングを試してみたよ:https://playwarpact.com いくつかのポイント:1. Opus 5もこれに対して同じくらい良いし、安いよ。2. 最適化された3Dモデルは生成しない。シンプルなジオメトリに対してポリゴン数が多すぎる。3. ゲーム用のアセットには、モデルを使って3Dモデルのローポリシルエットを作り、Meshyみたいなツールで窓やドアなどの詳細を含むテクスチャをベイクするのがいいアプローチだよ。興味があればチュートリアルも投稿できるよ。このモデルは、自律的にこれを行うためにもう少しリアルライフが必要だね。

「興味があればチュートリアルも投稿できるよ。」あるよ。

なんでゲームを見るのにログインを強制するの?情報がゼロなのにパスワードかGoogle情報を求めてくるなんて、敵対的で気持ち悪い。

興味ある!「バック・トゥ・ザ・フューチャー」のデロリアンの3Dアニメーションで細かいディテールを出すのに苦労したんだ。これを以前投稿したら、もっと情報が欲しいって言われたから、どうやって作ったか詳しく説明するね。アポカリプトのシーン再現に焦点を当てた部分もあるよ。もっと見栄えを良くしたいな。

Opus 5はこれに関しては同じくらい良いし、安いよ。精度によるけど、「ローポリ」を少し超えたところでOpusは限界があるんだ。葉っぱのLシステムや物理的なモブアニメーション、リアルな家電がある家を作るとなると、Opusは世界モデルの収束閾値を超えられない。どれだけ時間をかけても、うまくいかずに「できた」と言っても、実際には全然現実的じゃない。Fableは時間がかかるけど、抽象をズームイン・アウトするのが得意だよ。 > 最適化された3Dモデルを生成しないんだ。シンプルなジオメトリに対してポリゴン数が多すぎる。デフォルトではLLMはクイックプロトタイプを作って、THREE.jsのシーンにいくつかのプリミティブを置くだけ。たぶん正しいけど、ほとんどのユーザーはそれを知らないし、気にもしない。でも、プロンプトを与えればFableはマニホールドやスカルプトをメッシャーでつなげたり、パーツをインスタンス化したりして、効率的なアートパイプラインを作ってくれるよ。最適化もできる。ただし10分では無理だけど。 > ゲーム用のアセットに使えるより良いアプローチは、モデルを使ってローポリのシルエットを作ることだね。Meshyにジオメトリを作らせて、それをPCA + BBで世界にフィットさせることもできる。拡散モデルはLLMよりも物理的に妥当なジオメトリを作るのが10倍得意だし、全体的に見ても速い。うまくいくテクニックの一つはソケットを使うこと。LLMに高レベルの構造を生成させて、ソケット用のブロックアウトを作らせてから、高ポリのオブジェクトをはめ込むという方法が、世界デザインのプロのアプローチに近いよ。

ああ、「プレイ・ウォー・パクト」ってことね。最初は「プレイ、ワープ、アクト」って読んじゃったよ。

Hacker Newsで議論の続きを見る