タイトル: Speckleとは
SEOタイトル: Speckleとは|OSSのAECデータプラットフォームをやさしく解説
Speckle とは何か
建築・土木・建設(AEC)のデータを、ファイルではなく「オブジェクト」としてやり取りするオープンソースのプラットフォーム。Revit や Rhino など複数ツールを共通のデータモデルで橋渡しし、送るたびに履歴が残ります。その全体像をやさしく整理します。
この記事の要点
- Speckle は AEC(建築・土木・建設)向けのオープンソースなデータプラットフォームで、ツール間のデータ連携とバージョン管理を担う
- Revit・Rhino・Grasshopper など複数のオーサリングツールを、共通のデータモデルで橋渡しする
- API(GraphQL)と SDK(Python / .NET)を備え、コードから扱える点が大きな特徴
- 商用のクラウド(app.speckle.systems)と、自前サーバへのセルフホスティングの両方が選べる
- 用語は旧版(v2)と新世代で変化しており、本カテゴリでは新世代の用語を主に用いる
本記事は Speckle カテゴリの入口として、「Speckle とは何か」を、これから Speckle を学ぶ人に向けて整理します。続けて内部構造を知りたい場合は アーキテクチャ(Server/Project/Model/Version) へ進んでください。
1Speckle とは何か
Speckle は、建築・土木・建設(AEC: Architecture, Engineering, Construction)の領域で使われるオープンソースのデータプラットフォームです。Revit、Rhino、Grasshopper、Blender、AutoCAD などのオーサリングツールが扱う 3D モデルや属性データを、ツールに依存しない共通のデータモデルへ変換し、サーバ上で保存・共有・バージョン管理できるようにします。
従来、AEC のデータ交換は IFC ファイルや独自フォーマットの「ファイル受け渡し」が中心でした。Speckle はファイルではなく「オブジェクト単位のデータ」をネットワーク越しにやり取りする発想に立っており、Git がソースコードに対して行っていることを、建築モデルのデータに対して行うイメージに近いプラットフォームです。
「ファイル」ではなく「データ」をやり取りする
これまでの連携は、図面やモデルを 1 つのファイルとして丸ごと相手に渡す方式でした。Speckle は建物を「壁」「柱」などのオブジェクトの集合=構造化データとして扱い、その単位でネットワーク越しに送受信します。これにより、変わった部分だけを送る・履歴をたどる・プログラムから集計するといった、ファイル受け渡しでは難しかった活用が可能になります。
2何を解決するのか
Speckle が主に解決するのは「ツール間のデータ連携」と「バージョン管理」の 2 点です。
- あるツール(例: Revit)で作ったモデルを、別のツール(例: Rhino や Blender、Web ブラウザ)で開けるようにする
- 各ツール用の「コネクタ」が変換を担う
- モデルを送るたびに新しい版が記録され、いつ・誰が・どんな状態を送ったかの履歴が残る
- 差分や履歴をたどれる点が、単なるファイル共有との違い
これにより、関係者がそれぞれ得意なツールを使いながら、データの一貫性と来歴(だれがいつ何を更新したか)を保てます。send/receive の基本ワークフロー でその流れを具体的に扱います。
3なぜ注目されるのか
Speckle は、いわゆる BIM ツールというより「AEC データのためのプラットフォーム/開発基盤」です。とくにプログラムから扱える点が、データ活用や自動化の幅を大きく広げます。
サーバは GraphQL API を公開しており、プロジェクトやモデル、バージョンの情報をプログラムから操作できます(API概要)。SDK は Python 向けの specklepy(specklepy)と .NET 向け(.NET SDK)が用意されています。つまり、GUI で図面を操作する世界というより、データと API を軸にした世界であり、Web/バックエンド開発の考え方がそのまま活きやすい領域です。
4商用クラウドと自前ホスティング
Speckle のサーバは、利用形態を 2 通りから選べます。
| 形態 | 概要 | 向く場面 |
|---|---|---|
| 商用クラウド | 運営側が提供するホスト型サービス(app.speckle.systems など)を利用する | すぐ試したい/自前運用の負担を避けたい |
| セルフホスティング | OSS のサーバを自社インフラに構築して運用する | データを社内に閉じたい/要件に合わせて運用したい |
セルフホスティングはコンテナなどで構築でき、データの所在を自社管理下に置けるのが利点です。運用上の具体的な検討は ホスティング で扱います。
5用語の世代差に注意
Speckle を学ぶうえで最初に押さえるべき注意点が、用語の世代差です。旧版(v2 系)では Stream/Branch/Commit という用語が使われていましたが、新世代では Project/Model/Version に置き換わりました。古い記事やドキュメントを読むときに混乱しやすいので、本カテゴリでは新世代の用語を主としつつ、必要に応じて「旧 Stream に相当」のように対応を併記します。
| 新世代 | 旧版(v2) | 役割 |
|---|---|---|
| Project | Stream | データの最上位の入れ物・共有単位 |
| Model | Branch | 分野・用途ごとの枝分かれの単位 |
| Version | Commit | send ごとに作られるスナップショット |
用語の対応関係は次の アーキテクチャ の記事で、より詳しい対応表として整理します。
6このカテゴリで扱う範囲
本カテゴリでは、Speckle の内部構造(アーキテクチャ、オブジェクトモデル)、各ツールとの接続(コネクタ、Revit ⇄ Speckle)、基本操作(send/receive)、開発(specklepy、.NET SDK、Automate)、表示(Viewer)、運用(ホスティング)、そして IFC との違い や データ連携実務 までを順に解説していきます。まずは次の アーキテクチャ で全体像をつかむのがおすすめです。