mcpField
T
threejs-procedural-buildings-and-cities

threejs-procedural-buildings-and-cities

github.com/linegelクリエイティブ・メディア11133 回インストール5 週間前に更新
リポジトリ

threejs-procedural-buildings-and-cities について

threejs-procedural-buildings-and-citiesは、Three.jsでプロシージャルな建築や都市のジオメトリを計画、検証、コンパイルするスキルです。決定的な計画と明確な面・配置の所有関係を重視し、変更性や規模に応じた構成を選びます。

主な機能

  1. 01決定的な建築計画の生成
  2. 02表面とファサード配置の検証
  3. 03マテリアルスロット単位のジオメトリ出力
  4. 04インスタンス化、バッチ処理、空間ページングの指針
  5. 05建築LODとコンパイルの検査

活用シーン

  1. 01敷地形状からのプロシージャル建築生成
  2. 02共有境界や遮蔽境界に沿ったファサード配置
  3. 03反復モジュールのジオメトリ化
  4. 04都市区画や地区規模のレイアウト検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/linegel/threejs-complete-set-of-skill --skill threejs-procedural-buildings-and-cities

インストール後、Claude Code で/threejs-procedural-buildings-and-citiesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
agents/
openai.yaml
references/
grammar-and-mesh-compiler.md
scripts/
deterministic-placement-key.mjs

詳細

プロシージャルな建物と都市

建築をコンパイラーとして捉えます。実行時パッケージを決定し、シリアライズ可能なプランを作成して検証した後、ジオメトリを生成します。プランは、ボリューム構成、露出面、配置、マテリアルスロット、安定した識別情報を管理します。

プロセス

  1. 可変性と反復性に基づいて実行時パッケージを選択します。

    ワークロードパッケージ
    静的な建物またはチャンクマテリアルスロットごとに統合されたインデックス付き BufferGeometry
    編集可能な多様なモジュール互換性のあるマテリアルスロットごとに BatchedMesh
    同一トポロジーの繰り返し空間的にページ分割された InstancedMesh
    地区規模のストリーミング投影誤差に基づく LOD を備えた、境界が定められたチャンク

    WebGPU 機能を判定する前に WebGPURenderer を初期化します。建築プランニングは CPU 上で決定論的なままにできます。ストレージやコンピュートを追加するのは、都市規模での可視性または更新がボトルネックであると測定された場合に限ります。

    **完了条件:**すべての建築要素にパッケージが 1 つ割り当てられ、各パッケージに可変性、可視性、識別情報についての明確な理由があること。

  2. **有効な建物プランを作成します。**単位と設定を正規化し、ボリューム操作の手順を適用します。敷地形状の構成要素 -> 結合/中庭の減算 -> 押し出し/積層 -> インセット/分割 -> 任意の接続部。事前検証済みの代替案のみを選択します。各演算結果に安定した ID を付与し、次の演算に進む前に検証します。これらの演算を実装する際は、grammar-and-mesh-compiler.md を参照してください。敷地形状、ボリューム、露出区間、配置、モジュールの使用状況、所有権、マテリアルスロット、UV スケール、予算をシリアライズします。

    **完了条件:**同じ入力から同じ演算の選択と ID が再現され、すべての演算出力がトポロジー/寸法/所有権のゲートを通過し、無効なプランの診断にジオメトリ生成が不要であること。

  3. **ファサードを配置する前に露出境界を解決します。**共有領域または遮られた側面領域を、垂直方向の重なりを考慮して差し引きます。高さの異なる隣接建物では、側面全体を除去するのではなく、高さ帯を使用する必要があります。残った正の幅の区間を、上限のある有効なベイ数に量子化し、ファサード、屋根、トリム、コーナーの配置をそれらの表面領域に関連付けます。 敷地形状の減算、ベイの量子化、配置の所有権、またはモジュールのローカル座標系を実装する際は、grammar-and-mesh-compiler.md を参照してください。

    **完了条件:**どの高さでも、ファサード領域が占有ボリューム内に存在せず、有効なすべての領域に配置または意味のある空白が宣言され、コーナーの所有権が曖昧でないこと。

  4. **プランを完成させ、検証します。**目に見えるキャップ、デッキ、ソフィット、および検証済みの接続部の閉じ面を追加します。すべての配置をモジュールレジストリで解決してから、レジストリの完全性、所有権の一意性、全般的な重なり、巻き順、境界、マテリアルの所属、UV 密度をテストします。

    多様な要素を含む敷地アセンブリでは、各領域のアセットをそれぞれの担当スキルに委譲し、遺跡、桟橋、ボート、岩、植生クラスター、またはプロップごとに、安定した配置 ID、所有者、トランスフォーム/座標系/スケール、支持ボリュームとクリアランスボリューム、アンカー、LOD ポリシーを登録します。 grammar-and-mesh-compiler.md の決定論的な多様な敷地配置のルールを適用します。 候補の識別情報、ランダムレーン、またはフェーズの順位付けを実装する際は、deterministic-placement-key.mjs をインポートします。 反射的コンパレーターを使用する前に、validateWinnerKeys() でフェーズ全体のキーの一意性を検証します。このヘルパーは、支持、クリアランス、競合検出、またはフェーズへの採用を管理しません。厳密なローカル勝者は、最大充填アルゴリズムではありません。ハローの到達範囲には両方の候補の広がりを含めます。ランドマークを最初に配置し、その後、繰り返し配置するディテールの前に、アクセス、支持、クリアランスを解決します。 完了条件: すべての配置が解決され、各サーフェスの所有者が1つに定まり、重複がないか明示的に許可され、サポート/クリアランスのゲートを通過し、安定したIDがチャンクの読み込み順や無関係なファミリーの追加に左右されずに再現され、出力されるすべてのジオメトリまたは委譲されたアセットがプランの記録にたどれること。

  5. マテリアルスロットと空間境界ごとにコンパイルします。 マージ、バッチ、インスタンスのどれで出力するかを選択しながら、セマンティックなマテリアルIDを安定させます。Three.js r185 WebGPU の BatchedMesh は、可視のマルチドローエントリーを反復処理します。オブジェクトや状態の管理は改善しますが、GPU のドローコールが集約されることを保証するものではありません。ドローコールの集約が必要な場合は、互換性のある静的ジオメトリをマージするか、同一トポロジーをインスタンス化します。スロットライター、ページング、画面上の誤差に基づく LOD、ドローの計数を実装する際は、 grammar-and-mesh-compiler.md を参照してください。

    完了条件: スロットの割り当てが完了し、インデックス付きの境界が有限であり、ページが独立してカリング可能で、変換/カウント境界とアップロードフラグが更新され、LOD の誤差が物理ビューポートのピクセル数に基づいて判定され、実際のバックエンドのドロー項目が報告されること。

  6. マテリアルとプレゼンテーションを設定します。 セマンティックな各スロットに MeshStandardNodeMaterial または MeshPhysicalNodeMaterial を使用します。物理的なテクスチャスケールとデータ/色のエンコーディングを維持します。最終色をシーンの単一の RenderPipeline 出力変換に渡してから、置き換えたジオメトリ、バッチ、テクスチャ、ノードリソースを破棄します。

    完了条件: フラットなマテリアル、かすめる光、最終出力が、ジオメトリと法線について一致し、出力変換を所有するコンポーネントが1つであり、置き換えと破棄の後に古い境界や有効なままのリソースが残らないこと。

  7. コンパイラーを検証します。 単純なフットプリントと複合フットプリント、中庭、ブリッジやコネクター(対応している場合)、法的に許可される最小スパン、高密度の配置、複数シードにわたるモジュールの反復、地区単位のページングをテストします。シルエット、テクスチャなしのジオメトリ、角、開口部、セットバック、屋根、LOD の遷移を確認します。

    完了条件: 各フィクスチャに有効なプランがあり、内部のファサード区間や配置の重複がなく、レジストリーが完全で、決定論的に再現でき、境界とマテリアルスロットが正しく、UV スケールが安定し、三角形数とドロー数が計測されていること。

所有範囲

  • 再利用可能なプロファイル、スイープ、アーチ、フレーム、低レベルのメッシュライターには $threejs-procedural-geometry を使用します。
  • 石造り、ガラス、金属、風化、フィルタリング、マテリアルフィールドの作成には $threejs-procedural-materials を使用します。
  • 都市レイアウトで使用する地形および区画フィールドには $threejs-procedural-fields を使用します。
  • シーン全体のシャドウ、出力、エビデンスの管理には $threejs-scalable-real-time-shadows、$threejs-image-pipeline、$threejs-visual-validation を使用します。

このスキルは、建物のボリューム、ファサードのセマンティクス、建築モジュールと敷地の配置、プランの検証、マテリアルスロットのコンパイル、建築空間の LOD を担当します。委譲先のスキルは、引き続き非建築アセットの生成を担当します。

コメント