mcpField
A
ascii-city-engine

ascii-city-engine

github.com/magnus919開発15359 回インストール今日更新
リポジトリ

ascii-city-engine について

ascii-city-engineは、持ち運び可能なASCII都市体験を構築するためのスキルです。都市データパックを作る開発者向けに、エンジン、プロバイダー契約、都市別パックを分離し、オフライン検証の手順を備えています。

主な機能

  1. 01都市パックとローカルメートル座標系の定義
  2. 02公開標高・建物・道路データの処理
  3. 03マニフェストとワールドタイルの生成
  4. 04パック構造のオフライン検証
  5. 05ブラウザーエンジンでの移動と衝突のテスト

活用シーン

  1. 01公開GISデータから都市パックを作成
  2. 02マニフェストとワールドタイルを検証
  3. 03地形追従と建物衝突をテスト

インストール

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

$npx skills add https://github.com/magnus919/agent-skills --skill ascii-city-engine

インストール後、Claude Code で/ascii-city-engineを入力して読み込まれたか確認します。

同梱ファイル

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

README.md
assets/
ascii-city-engine.html
assets/deliberately-broken-pack/
manifest.json
README.md
assets/raleigh-downtown-sample/
manifest.json
assets/raleigh-downtown-sample/world/
tile-0.json
evals/
evals.json
references/
city-provider-contract.md
engine-architecture.md
gis-ingestion.md
raleigh-poc.md
scripts/
validate-city-pack.py
templates/
city-pack-manifest.schema.json
world.schema.json

詳細

ASCII City Engine

エンジン、都市プロバイダーの契約、シティパックの3層で、ポータブルな都市体験を構築します。都市固有の情報をエンジンコードに含めないでください。

ワークフロー

  1. パックの境界と、メートル単位のローカル CRS を定義します。
  2. 公開ソースから標高、建物、道路/歩道のデータを取得します。
  3. 変換前にダウンロード内容、ライセンス、単位、データの来歴を確認します。
  4. すべてのジオメトリをローカルのメートル単位に再投影し、マニフェストとワールドタイルを出力します。
  5. パックをオフラインで検証します:
    python3 scripts/validate-city-pack.py path/to/city-pack
    
  6. assets/ascii-city-engine.html でパックの最初のタイルを読み込み、移動、地形の傾斜への追従、ソリッドフットプリントをテストします。
  7. データの制限事項と、人による受け入れ確認の証拠を記録します。

必須の不変条件

  • 地形から feet_z を計算し、足元の高さに目の高さを加えて eye_z を計算します。
  • 地形が null の場合、傾斜が急すぎる場合、ソリッドフットプリントに接触する場合は、移動を拒否します。
  • 建物の色を決定論的に設定し、各フレームで見逃したレイをクリアします。
  • v1 では (x, y) 列ごとに地面の高さを1つとします。サーフェスグラフは将来のために予約しますが、実装しません。
  • エンジンを、特定の都市、ベンダー、エージェントハーネス、プライベートインフラストラクチャから独立させます。
  • 大容量またはフル解像度のソースデータをコミットしないでください。小規模で再配布可能なサンプルのみをコミットし、それ以外のデータの取得方法を文書化します。

参考資料

利用可能なスクリプト

このスキルに含まれるスクリプトは1つだけです。ほかに確認すべきスクリプトはありません。

スクリプト用途実行方法
scripts/validate-city-pack.pyシティパック用のオフライン検証ツールです。マニフェストをスキーマ契約に照らして確認し、ワールドタイルを検証します。マニフェストとタイルの出力後、エンジンで読み込む前のワークフロー手順5で実行してください。合格するまでエンジン内でのテストに進まないでください。python3 scripts/validate-city-pack.py path/to/city-pack

前提条件

  • 標準ライブラリのみを使う Python 3。検証ツールにサードパーティ製パッケージは必要ありません。
  • 取り込みワークフローで作成されたシティパック。マニフェストと、ローカルのメートル単位に再投影されたワールドタイルが必要です(references/gis-ingestion.md を参照)。
  • エンジン本体はスタンドアロンの HTML ファイル(assets/ascii-city-engine.html)で、最新のブラウザーであれば実行できます。ビルド手順やサーバーは不要です。

制限事項

  • v1 では (x, y) 列ごとに地面の高さを1つだけサポートします。屋内、下を通行できる橋、トンネル、複数階層のジオメトリには対応しません(サーフェスグラフは予約されていますが、未実装です)。
  • エンジンはソフトウェアレンダリングによる CPU キャンバスです。WebGL/GPU レンダリングやモバイル操作には対応していません。
  • このスキルにはフル解像度の GIS アーカイブは含まれません。小規模で再配布可能なサンプルのみをコミットし、公開ソースから再現可能な方法でパックを構築します。
  • 検証ツールはオフラインで構造のみを検証します。検証に合格しても、エンジン内で人が移動テストを行う代わりにはなりません(ワークフロー手順6)。

対象範囲

WebGL/GPU レンダリング、モバイル操作、戦闘、屋内、下を通行できる橋、トンネル、または汎用的な地理空間分析には、別のスキルまたは実装方法を使用してください。このスキルを特定のエージェントランタイム向けに特化するよう求められた場合は、ポータブルなコアを維持し、ランタイムとの統合はこのスキルの外部に置いてください。大容量の GIS バイナリのコミットを求められた場合は拒否し、代わりに再現可能なダウンロード/変換コマンドを提示してください。

コメント