概要
- TALA はTerrastructが開発した新しい自動レイアウトアルゴリズムで、オープンソース化
- ソフトウェアアーキテクチャ図向けに設計され、 D2 と同じMPL-2.0ライセンスで公開
- 複数の美的目標(対称性、距離、フロー、クラスタリングなど)を考慮
- ノード座標固定や部分固定など柔軟なカスタマイズ性を実現
- 他レイアウトエンジン(Dagre, ELK)との比較や、TALA特有の特徴を例示
TALA(Terrastruct's AutoLayout Algorithm)オープンソース化の発表
- TALA はTerrastructが開発した自動レイアウトアルゴリズム、 オープンソース化 (MPL-2.0)
- 主に ソフトウェアアーキテクチャ図 向けに設計、ホワイトボードのような直交レイアウトを重視
- 既存のグラフ描画研究の手法と独自技術を組み合わせ、美的な図を生成
- 美的基準として 対称性・中央値距離・フロー・ノードのクラスタリング などを多目的に最適化
- D2 v0.9.0 に標準搭載、
--layout=tala指定で利用可能 - https://play.d2lang.com でクライアントサイド動作も体験可能
他レイアウトエンジンとの比較
- Dagre や ELK とTALAで同じD2ファイルをレンダリングし、比較
- Fulcro RAD architecture
- Mocha secure-enclave SoC
- Jupyter on AWS EKS
- Lion Reader frontend data flow
- ROSS rotor-dynamics workflow
- Go Queue worker architecture
- Ouroboros Leios simulator
- 各図はパネルにフィットするようスケーリング
- 一部ケースでは従来エンジン(Dagre, ELK)の方が好ましい場合も存在
TALAのカスタム位置指定・部分指定の例
- ノード座標やサイズの固定 が可能
- Signal House
- Atlas / Data platform
- Night shift / Mission control
- Friday deploy: the escape room
- The Internet is a jellyfish
- Orbital coffee logistics
- Cloud Conservatory
- Velvet Rope
- Synthwave City
- 部分的な位置指定 にも対応
- The Printing Room:4つのCMYKステーションは固定、他は自動配置
- MULE / Utility Rover:4つのモーターアセンブリは固定、他は自動配置
- モデルが2D空間でノード配置を指定し、TALAがルーティングを担当する エージェント的用途 にも適合
TALAのトレードオフと注意点
- アルゴリズムに ランダム性 あり、デフォルトで3つのシードから最良レイアウトを選択
- 同じシード・入力なら同じ結果だが、ノード追加などで大きくレイアウト変化することも
- DagreやELK はノード追加時もレイアウトが安定しやすい
- DAG(有向非巡回グラフ) にはDagreやELKの方が適している場合が多い
- 大規模図では 計算時間が非線形に増加、パフォーマンス比較はベンチマーク参照
コミュニティと今後の展望
- オープンソース化による コミュニティの改善提案やアイデア を歓迎
- Gavin Nishizawa氏、Júlio César Batista氏らの多大な貢献に感謝
- 今後の機能拡張と品質向上への期待
参考・レンダリング詳細
- 比較図はD2の実プロジェクト図を使用
- 同一D2ソース・コンパイラビルドで、レイアウトエンジンのみ変更
- スタイル・テーマ・グリッド制約も同一条件
- カスタム/部分配置例はオリジナルの架空構成
- アイコン素材やベクターアセットも含む
- 部分配置は指定ノードのみ座標固定、他は自動配置
まとめ
- TALAは 柔軟性・美的最適化・カスタマイズ性 を備えた新アルゴリズム
- D2 ユーザーやソフトウェアアーキテクチャ図作成者に新たな選択肢を提供
- 今後のコミュニティ主導の進化に期待