LTplus-AG/ifc-lite

Parse, view, query, edit, validate and export building models. Browser-first WebGPU viewer, TypeScript SDK, CLI, MCP server and Rust/WASM core with dual exact-arithmetic & SMlib geometry kernels.

IFClite – IFCビルディングインフォメーションモデルを扱うためのフルスタックツールキット

概要 – IFCliteは、開発者がIndustry Foundation Classes(IFC)ファイルを解析、クエリ、編集、検証、レンダリング、エクスポートできるようにするオープンソースのライブラリとツールのコレクションです。 重い処理(STEP解析、正確な算術ジオメトリ、エクスポート形式)はWebAssemblyにコンパイルされたRustコアにあり、薄いJavaScript/TypeScriptラッパーがモジュール式のnpmパッケージとして機能を公開します。 WebGPUベースのビューアは完全にブラウザ内で動作し、CLI/サーバーレイヤーにより、ターミナル、CIパイプライン、AIエージェントから同じ機能を利用できます。


コアコンポーネント(「パッケージ」)

コンポーネント 機能 典型的な用途
@ifc-lite/parser IFC2X3、IFC4/4X3、IFC5(IFCX)の高速STEPトークン化と列演算解析。 ブラウザまたはNodeスクリプトでモデルを読み込む。
@ifc-lite/geometry 正確な算術CSGカーネル。メッシュバッチをストリーミングし、glTF/GLB、CSV、JSON-LD、Parquetをエクスポート可能。 生のIFCデータをレンダリング可能なメッシュに変換する。
@ifc-lite/renderer メッシュを読み込み、エンティティを選択し、3Dシーンを表示できるWebGPUビューア。 スタンドアロンのブラウザビューア(create-ifc-lite)。
@ifc-lite/query 高レベルBIMクエリAPI(bim.query())とオプションのDuckDB-WASM SQLインターフェース。 ドアや壁を検索したり、アドホックな分析を実行したりする。
@ifc-lite/ids IDS(Information Delivery Specification)XMLを解析し、モデルを検証する。 BIM納品の品質管理。
@ifc-lite/mutations 元に戻す履歴付きの編集可能なプロパティビュー。 プログラムによるBIM編集。
@ifc-lite/export STEP、IFC5/IFCX、glTF/GLB、CSV、JSON-LD、Parquetへのエクスポート。 他のツールとの相互運用性。
@ifc-lite/cli フルツールキットのコマンドラインラッパー(info、query、schedule、clash、diff、merge、convert、viewなど)。 スクリプト、CI、AIエージェント統合。
@ifc-lite/mcp 外部エージェントがBIMデータをクエリ/編集できるようにするModel Context Protocolサーバー(stdioまたはHTTP)。 AIアシスタントのプラグイン。
…その他多数のオプションのアドオン**(threejs、babylonjs、collab、bcf、drawing-2dなど)** 人気の3Dエンジン、リアルタイムコラボレーション、クラッシュ検出などのためのグルーコードを提供。

使用方法

1. ブラウザでのクイックスタート

npx create-ifc-lite my-viewer --template react
cd my-viewer && npm install && npm run dev

WebGPUキャンバスを備えたReactアプリが表示されます。.ifcファイルをドラッグ&ドロップすると、ピッキング対応のインタラクティブな3Dビューが表示されます。

2. ヘッドレス処理(Node / CI)

import { openModel } from '@ifc-lite/sdk/headless';
const model = await openModel(await readFile('model.ifc'));
console.log(model.bim.query().byType('IfcDoor').count());
model.close();

SDKは、クエリ用のbim APIと、ファイルが完全に解析されたかどうかを示すreportオブジェクトを提供します。

3. カスタムレンダリング(Three.js / Babylon.js)

@ifc-lite/parserで解析 → GeometryProcessor.processAdaptiveが返すメッシュ配列をお好みのエンジンに渡します。 READMEに最小限のThree.js統合例があります。

4. 検証とエクスポート

import { parseIDS, validateIDS } from '@ifc-lite/ids';
const ids = parseIDS(xml);
const report = await validateIDS(ids, createDataAccessor(store), modelInfo);

検証後、STEP、glTF、Parquet、または新しいIFC5/IFCX JSON+USD形式にエクスポートできます。


パフォーマンスのハイライト(READMEに記載されている内容)

  • ストリーミング初回レンダリング – ファイルの解析中にジオメトリバッチがGPUに送信されるため、モデルがほぼ即座に表示されます。
  • 正確な算術CSG – 参照IfcOpenShellベンチマークとの99.9%以上の一致を保証。
  • 解析速度 – STEPトークン化約1.2 GB/s、フル解析約50 MB/s。
  • フットプリント – 遅延ロードされるWASMモジュール約2.6 MiB(gzip圧縮)と小さなJSラッパー。
  • 完全なスキーマカバレッジ – IFC4(776エンティティ)とIFC4X3(876エンティティ)の100%。

誰が恩恵を受けるか?

対象 重要性
Web開発者(BIMビューアを構築) – 既製のWebGPUビューアを使用するか、ジオメトリをThree.js/Babylon.jsにプラグイン。
バックエンドエンジニア / CIパイプライン – CLIまたはヘッドレスSDKを使用して、GUIなしで品質チェックを自動化、スケジュールを生成、クラッシュ検出を実行。
データサイエンティスト / Pythonユーザー – ifclite-geomホイールがNumPy内で同じRustジオメトリカーネルを実行し、大規模分析を可能にします。
AI/エージェント開発者 – mcpサーバーにより、LLMベースのエージェントが自然言語の質問(ifc-lite ask model.ifc "how many walls?")をしたり、BIMデータをプログラムで編集したりできます。
コラボレーションプラットフォーム構築者 – リアルタイムのマルチユーザー編集のためのオプションのCRDTベースのコラボレーションパッケージ(@ifc-lite/collab)。

コードの入手と貢献

  • ビルド前提条件 – wasm32-unknown-unknownターゲットのRust nightly、wasm-pack、Node(pnpm)。リポジトリはCI実行ごとにrust/からWASMバンドルをビルドします。
  • 一般的な開発フロー
    curl -sSf https://sh.rustup.rs | sh          # Rustをインストール
    cargo install wasm-pack
    git clone https://github.com/LTplus-AG/ifc-lite.git
    cd ifc-lite
    pnpm install && pnpm build && pnpm dev   # ローカルビューアを起動
    
  • テストフィクスチャ – pnpm fixturesは、ベンチマークと回帰テストに使用される厳選されたIFCモデルのセットをダウンロードします。
  • コミュニティ – GitHub Discussions、Issues、定期的なリリースチェンジログ。ライセンスはMPL-2.0で、通常のコピーレフト要件を条件に商用利用が可能です。

TL;DR

IFCliteは、ブラウザでのSTEPファイルの解析からサーバーサイドのバッチ処理、IDSに対する検証、ジオメトリエクスポート、AIエージェント統合まで、IFCワークフロー全体をカバーする本格的で本番グレードのオープンソースBIMツールキットです。 モジュール式の設計(Rust-WASMコア+ npmパッケージ)により、Webビューア、CI品質ゲート、Pythonデータサイエンスパイプラインなど、必要な部分だけを簡単に選択できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト