Drawlib

コードで描く図解と技術ドキュメント

ソフトウェアエンジニアとAIコーディングエージェントのために設計された、純粋Pythonの宣言的作図エンジン&マルチターゲット文書コンパイラ。


公式ショーケースデッキ · v0.3.5 対応

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 図解・ドキュメント統合パイプライン Git -> 多形式一括出力 Git 単一情報源 (SoT) Python + Markdown Drawlib コンパイラ Docs サイト & API カタログ 16:9 スライド & PPTX ベクター PDF & DOCX SVG / PNG / APNG
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2 / 39

Drawlib — コードで描く図解と技術ドキュメント

数字で見る Drawlib の全体像

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 4,500+ ベクターアイコン 公式クラウド・汎用など全34スイート 38+ 高水準ビジュアル 18 SmartArts・9 Charts 6 Diagrams・5 Graphs 5 プロジェクト型 site, catalog, doc, slide, images 100% 純粋Python & Git GUIロックインなし・AI自己検証可能
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ Drawlib 4層アーキテクチャスタック CLI基盤から多形式出力まで統合 L4 Layer 4 · マルチターゲット・コンパイラ HTML · Catalog · Slide · PDF · DOCX · PPTX L3 Layer 3 · 宣言的ビジュアルエンジン群 SmartArts · Charts · Diagrams · Graphs · Anim L2 Layer 2 · 基本図形・34種アイコン群・スタイル 43種の幾何図形 · 4,500+ ベクターアイコン · 意味論テーマ L1 Layer 1 · AI エージェント CLI 基盤 rules 参照 · show -g グリッド検証 · SQLite キャッシュ
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 3 / 39

Drawlib — コードで描く図解と技術ドキュメント

本プレゼンテーションの構成

全6章のロードマップ

  • 背景と課題 (第1章): 図解の形骸化を防ぐ Python × Git の統合アプローチ

  • 描画エンジン (第2〜4章): 基本図形・34種アイコン群・SmartArts・Charts・構成図

  • 多形式出力とAI連携 (第5〜6章): 5つのプロジェクト型・Office出力・AI自己検証ループ

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 1 1. なぜ Drawlib なのか? 図解とドキュメントの形骸化・分断を解決 2 2. 基本図形と34種のアイコン群 キャンバス・43図形・スタイル・4,500+アイコン 3 3. 18 SmartArts & 9 Charts インフォグラフィック・地図・純粋Pythonグラフ 4 4. Diagrams・Graphs・Animation クラウド構成図・UML・自動レイアウト・APNG 5 5. 5つのプロジェクト型と多形式出力 site / catalog / doc / slide・PDF / Office 6 6. AIネイティブな自律作図フロー rules CLI・-g グリッド検証・SQLiteキャッシュ
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 01 Chapter 1 / 6 なぜ Drawlib なのか? AI時代の技術図解・ドキュメント分断を解決する 1.1 従来ツール(GUI・DSL)の限界 1.2 コードによる図解と文書の統合 1.3 既存ツールとの機能比較マトリクス 1.4 単一リポジトリからの多形式一括出力 4 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 5 / 39

Drawlib — コードで描く図解と技術ドキュメント

従来の作図・ドキュメントツールの限界

開発現場は 差分管理できないGUIツール、表現力が限定されたテキストDSL、文書と分断された描画ライブラリ の三択を強いられ、リリースのたびに設計図が実装から乖離します。

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ GUI ツール (Figma / Draw.io) 不透明なバイナリ形式 Git PR 上で差分比較が不可能 手動の PNG 書き出し 仕様変更ですぐ陳腐化する GUI 操作への依存 AI エージェントが編集不可 テキスト DSL (Mermaid 等) 硬直的な自動配置 (x, y) 座標の微調整が不可 狭い図解ボキャブラリ KPI・表・地図表現に不向き 図単体のスニペット PDF / PPTX 統合出力がない 描画ライブラリ (Matplotlib) 数値プロット専用 クラウド構成図や UML 非対応 煩雑なスタイル記述 書体や配色の統一が困難 ドキュメントとの分断 資料へ手作業で画像を転記 求められていた統合基盤:精密な空間制御 × Git差分レビュー × 文書・図表統合 × AI視覚検証ループ
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 6 / 39

Drawlib — コードで描く図解と技術ドキュメント

Illustration & Documentation as Code

Python と Markdown の統合

  • チューリング完全な記述: ループ・変数・utils.py 共通関数を活用

  • Markdown 直書き: 原稿内の drawlib ブロックから直接描画

  • 決定論的な PR 差分: 文章と図解の更新を同一コミットでレビュー

setup(width=120, height=32)
p = ChevronProcess(style=Styles.Neutral)
for s in ("記述", "変換", "公開"): p.add(s)
p.draw((6, 8), width=108, height=16)
save()
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ コードから成果物への統合パイプライン コード -> 図解・文書を同時生成 単一の Git プルリクエスト Markdown (.md) 本文・スライド構成 Python (drawlib) 描画ロジック・共通スタイル Drawlib コンパイラ (ヘッドレス描画 + キャッシュ) ベクタービジュアル SVG · PNG · APNG 公開ドキュメント群 HTML · Slide · PDF · Office
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 7 / 39

Drawlib — コードで描く図解と技術ドキュメント

既存ツールとの機能比較マトリクス

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 評価軸 GUI ツール テキスト DSL グラフ描画系 Drawlib Git 差分・PR レビュー × バイナリ不可 ✓ テキスト管理 ✓ Python コード ✓ 明快な Python 空間座標の精密制御 ✓ 手動ドラッグ × 自動配置のみ △ グラフ軸のみ ✓ 座標指定+自動 クラウド構成図・UML ✓ 手動アイコン △ 簡易ボックス × 非対応 ✓ 6種エンジン内蔵 チャート・情報図解 △ 手動で作図 × ごく一部のみ ✓ 統計図のみ ✓ Charts & SmartArts Site / Catalog / Slide / Office × 画像書き出し × 図単体のみ × 画像出力のみ ✓ 5型マルチ出力 AI 視覚自己検証 (-g) × GUI 操作必須 × 座標調整不可 △ 個別実装のみ ✓ 標準 -g CLI
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 8 / 39

Drawlib — コードで描く図解と技術ドキュメント

単一リポジトリからあらゆる形式へ一括出力

単一の drawlib.toml と [i18n] 構造パリティ検証により、1つのGitコミットから日英同期された Web・印刷・Office の全成果物を一括コンパイルします。

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ Git リポジトリ: en/ + ja/ + styles.py en/ + ja/ Markdown drawlib.toml + styles.py drawlib build · SQLite SHA-256 キャッシュ HTML Docs & API カタログ A4 ベクター PDF (印刷・配布対応) 編集可能 Word (.docx) 16:9 Web スライドデッキ 編集可能 PPTX (PowerPoint)
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 02 Chapter 2 / 6 基本図形・スタイル・アイコン 43種の図形・8色セマンティックテーマ・4,500超のアイコン 2.1 直交座標キャンバスと -g 検証グリッド 2.2 43種のプリミティブ図形とコネクタ 2.3 多言語タイポグラフィとフォント体系 2.4 34アイコンスイートと8色テーマ 9 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 10 / 39

Drawlib — コードで描く図解と技術ドキュメント

直交座標キャンバスと検証グリッド (-g)

直感的で予測可能な座標設計

  • 左下原点 (0, 0): 数学と同じ右が +X・上が +Y の直交座標系。
  • 中心アンカー統一: 図形・文字・アイコンすべて (x, y) が中心点。
  • 検証グリッド (-g): 目盛り線オーバーレイで配置ズレを即座に確認。
setup(width=100, height=60)
st = Styles.PrimaryFlat
rectangle((50, 30), 36, 22, style=st)
save()
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 直交座標キャンバス: setup(width=100, height=60) + グリッド (-g) 20 40 60 80 100 20 40 60 +X +Y 原点 (0, 0) (x, y) = (38, 30) 中心アンカー width = 36 height = 24 r = 13 (79, 34)
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 11 / 39

Drawlib — コードで描く図解と技術ドキュメント

43種のプリミティブ図形とコネクタ

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 1. 基本図形・多角形 2. ブロック矢印・フロー 3. 3D・コンテナ図形 4. バッジ・吹き出し 5. ドメイン記号 6. 線・折れ線・曲線コネクタ rectangle circle rhombus regularpolygon star chevron arrow arrow_arc parallelogram cylinder cube document cloud funnel shield bubblespeech tag ribbon pin gear lightning checkmark clock forbidden line (->) lines (ortho) lines_curved (r=2) lines_bezier (->)
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 12 / 39

Drawlib — コードで描く図解と技術ドキュメント

多言語タイポグラフィと画像処理

多言語フォントと Dimage 処理

  • 和欧混植に標準対応: 標準 Font で英数字と日本語を同時に描画。
  • 地域別・等幅パック: FontJapanese・FontArabic・FontSourceCode。
  • 精密アンカー制御: halign / valign で基準点からの配置を指定。
  • Dimage 画像処理: 切り抜き・セピア・モザイクと自動キャッシュ。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 多言語フォントファミリーとオンデマンド自動キャッシュ Font.SANSSERIF_BOLD English & 日本語 標準 和欧混植ゴシック FontJapanese.SERIF 美しい明朝体表現 地域別・日本語明朝 FontSourceCode setup(104, 80) ソースコード等幅 配置アンカー制御 (halign) とラスター画像処理 (Dimage) halign='left' halign='center' halign='right' _assets/linux.png image() .sepia()
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 13 / 39

Drawlib — コードで描く図解と技術ドキュメント

34スイート・4,500種超のベクターアイコン

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 1. Phosphor ベクターアイコン (5ウェイト) 2. 公式クラウドスイート (gcp · aws · azure) 3. 15種の公式ドメインブランドスイート 4. 15種のベンダー中立2Dスイート (original_*) thin rocket_launch light cpu regular globe bold sparkle fill shield_check gcp Cloud Run gcp BigQuery aws Lambda aws Amazon S3 azure Cosmos DB ai Gemini cnative Kubernetes devops GitHub data PostgreSQL security Cloudflare cloud multi_cloud ai ai_agent server gpu_server network firewall security zero_trust
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 14 / 39

Drawlib — コードで描く図解と技術ドキュメント

8色セマンティックスタイルとプリセットテーマ

  • 8色ロール体系: Styles.<Color><Variant> が Primary〜Dark の8色と Flat・Bold・Dashed・Neutral を統合。
  • 不変 .patch() とテーマ: style.patch(...) で安全に派生作成し、drawlib.toml で全体の配色テーマを一括切替。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 8色ロール × バリアント行列 (Styles.<Color><Variant>) ロール Default Flat Neutral / Dashed Primary .Primary .PrimaryFlat .PrimaryNeutral Secondary .Secondary .SecondaryFlat .SecondaryNeutral Accent .Accent .AccentFlat .AccentNeutral Success .Success .SuccessFlat .SuccessNeutral Warning .Warning .WarningFlat .WarningNeutral Danger .Danger .DangerFlat .DangerNeutral Neutral .Neutral .NeutralFlat .NeutralDashed Dark .Dark .DarkFlat .DarkDashed プリセットテーマ (drawlib.toml) style = "default" 標準インディゴ配色 style = "google" Google ブルー配色 style = "monochrome" 印刷向けグレースケール
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 03 Chapter 3 / 6 SmartArts と標準チャート 18種の構造化インフォグラフィックと9種の純Pythonチャート 3.1 プロセス・サイクル・ロードマップ 3.2 KPI・カードリスト・階層・マインドマップ 3.3 テーブル・コード・カレンダー・世界地図 3.4 9種の宣言的チャートとガント工程表 15 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 16 / 39

Drawlib — コードで描く図解と技術ドキュメント

プロセス・サイクル・ロードマップ

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ ChevronProcess — 段階的ビルド・配信パイプライン 4ステージ工程 1. Author MD + Python 記述 2. Render -g グリッド視覚検証 3. Cache SQLite 差分キャッシュ 4. Publish HTML / PDF / PPTX Cycle — 自律改善ループ 4ノード円軌道 AI ループ 自己修復 1. 記述 API 実装 2. 検証 show -g 3. 調整 座標補正 4. 確定 Git 管理 Roadmap — マイルストーン工程 曲線スパイン P1 ベクター描画基盤 図形プリミティブ・アイコン・テーマ P2 SmartArts・標準チャート 18種の構造化図解と9種のグラフ P3 ダイアグラム・自動配置 6種の図解エンジンとレイアウト計算 P4 マルチ形式ビルドとCLI HTML・PDF・PPTX出力とAIルール
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 17 / 39

Drawlib — コードで描く図解と技術ドキュメント

KPIカード・リスト・階層・マインドマップ

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ KpiCards — 指標グリッド 2x2 マルチ列 18 SmartArt 種別 表から世界地図まで 34 アイコンスイート 主要クラウド網羅 0 GUI 依存ゼロ 100% コード管理 4 標準テーマ数 一括パレット切替 CardList — 機能カードリスト アイコン + バッジ L1 宣言的な要素ライフサイクル .add() で登録し .draw() で一括描画 L2 セマンティックな配色トークン 落ち着いたベース色と焦点ハイライト L3 アニメーション対応の表示制御 座標を崩さず item.show で段階表示 Pyramid — アーキテクチャ階層 3段階レイヤー ベクター描画基盤 構造化図解 資料 MindMapNode — 放射ツリー 2パス自動配線 Drawlib 構造化図解 9種チャート システム図 文書・スライド
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 18 / 39

Drawlib — コードで描く図解と技術ドキュメント

テーブル・コード・カレンダー・世界地図

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ Table — ベンチマーク比較表 ゼブラ配色 出力ターゲット フォーマット 初回ビルド 16:9 スライド資料 HTML / PDF 0.42 秒 技術ドキュメント 複数ページ 0.65 秒 単体ベクター図解 SVG / PNG 0.18 秒 SourceCode — 構文強調 card_demo.py 1 2 3 4 5 6 from drawlib . canvas import save , setup from drawlib . shapes import rectangle from drawlib . styles import Styles setup ( width = 120 , height = 60 ) rectangle ( ( 60 , 30 ) , 80 , 36 , Styles . Primary ) save ( " card.svg " ) WeekCalendar — スプリント計画 ISO 8601 11/2 (月) 11/3 (火) 11/4 (水) 11/5 (木) 11/6 (金) 09:00 12:00 15:00 RC 凍結・仕様確認 QA・グリッド検証 v1.0 リリース GeoMap — 世界地図 US / EU / JP 米国西部 欧州拠点 東京
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 19 / 39

Drawlib — コードで描く図解と技術ドキュメント

宣言的な棒・折れ線・面チャート

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 9 標準内蔵チャート 棒・折れ線・面・円・レーダー 散布図・ヒートマップ・ガント 100% テーマ完全同期 Default / Google / Monochrome 各パレットへ自動追従 Auto 目盛の自動最適化 見やすい軸目盛・独立凡例と draw_ratio アニメーション
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ BarChart — 四半期別レンダリング処理量 (k/時) グループ棒 0 k 25 k 50 k 75 k 100 k Q1 Q2 Q3 Q4 18 k 34 k 21 k 46 k 24 k 61 k 27 k 76 k v1 逐次実行 v2 キャッシュ並列 AreaChart — ビルド遅延の推移 (p50 vs p99) 平滑スプライン 0 ms 20 ms 40 ms 60 ms v1.0 v1.2 v1.4 v1.6 v2.0 50 ms 42 ms 34 ms 28 ms 23 ms 19 ms 15 ms 12 ms 9 ms 6 ms p99 テール遅延 p50 中央値
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 20 / 39

Drawlib — コードで描く図解と技術ドキュメント

円・レーダー・散布図・ヒートマップ

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ PieChart — ドーナツ構成比 hole_ratio=0.55 100% ベクター スライド資料 (42%) 技術サイト (28%) 技術白書 PDF (18%) CLI 検証出力 (12%) RadarChart — 5軸特性評価 ポリゴン網 描画速度 テーマ性 Git差分 高精細 AI連携 Drawlib 手動 GUI ScatterChart — ビルド時間相関 バブル系列 0 秒 1 秒 2 秒 3 秒 4 秒 0 枚 25 枚 50 枚 75 枚 100 枚 差分キャッシュ 初回フルビルド HeatmapChart — 遅延分布 輝度反転 14ms 18ms 42ms 35ms 19ms 16ms 29ms 54ms 38ms 21ms 22ms 46ms 68ms 49ms 25ms 18ms 34ms 51ms 41ms 22ms 米国西部 欧州西部 東京拠点 豪州東部 00:00 06:00 12:00 18:00 22:00
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 21 / 39

Drawlib — コードで描く図解と技術ドキュメント

GanttChart によるプロジェクト工程管理

  • 宣言的なスケジュール定義: Section による工程分割、Task(progress=...) の進捗バー、Milestone をコードで一元管理。
  • 依存関係と基準日マーカー: タスク間の直交 Dependency 矢印や、Today・Release などの垂直 Marker を自動描画。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ Task / Phase 1月 (M1) 2月 (M2) 3月 (M3) 4月 (M4) 5月 (M5) 6月 (M6) 1. Architecture (設計) キャンバス・テーマ仕様策定 100% SmartArts・Charts API 設計 100% アーキテクチャ凍結 2. Implementation (実装) ダイアグラム・自動配置エンジン 80% HTML / PDF / PPTX ビルダ実装 55% 3. Verification & Launch (検証・公開) AI ルール・グリッド検証 CLI 35% 日英ドキュメント・ショーケース v1.0 正式リリース Today
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 04 Chapter 4 / 6 技術ダイアグラム・自動配置・アニメ 6種の設計図エンジン・5種のグラフソルバー・APNG 4.1 クラウド構成・ネットワーク図 4.2 業務フロー図と通信シーケンス図 4.3 UMLクラス図・ER図・状態遷移図 4.4 自動グラフレイアウトとアニメーション 22 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 23 / 39

Drawlib — コードで描く図解と技術ドキュメント

ArchitectureDiagram によるクラウド構成図

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ マルチティア本番クラウド基盤トポロジー GcpIcon + PhosphorIcon + NodeGroup 境界 + 直交バス配線 本番 VPC (10.0.0.0/16) HTTPS gRPC SQL イベント ストリーム 外部ユーザー ・端末 Cloud CDN & Armor WAF GKE API マイクロサービス Cloud Run 非同期ワーカー Cloud SQL (本番 DB) Pub/Sub イベント基盤 BigQuery データ分析基盤
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 24 / 39

Drawlib — コードで描く図解と技術ドキュメント

業務フローと通信シーケンス図

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ FlowDiagram — CI/CD 検証フロー Yes No 再検証 開始 ビルド・解析 グリッド検証 OK? デプロイ 自動補正 ループ SequenceDiagram — API 通信順序 [ALT] JWT OK POST /orders JWT 検証 200 OK 注文登録 201 Created Client API Gateway Auth Order DB
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 25 / 39

Drawlib — コードで描く図解と技術ドキュメント

ドメイン設計:クラス図・ER図・状態遷移図

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ ClassDiagram (クラス図) «abstract» Exporter + dpi: int + render(): bytes SvgExporter + xml: bool + render(): bytes PdfExporter + cmyk: bool + render(): bytes ERDiagram (ER図) 1:N 注文 1:N 明細 USERS PK id UUID email TEXT ORDERS PK id UUID FK user_id UUID ORDER_ITEMS PK id INT FK order_id UUID StateDiagram (状態遷移図) 開始 成功 失敗 待機中 描画実行中 キャッシュ済 エラー停止
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 26 / 39

Drawlib — コードで描く図解と技術ドキュメント

自動座標ソルバー (drawlib.graph)

自動配置と手動微調整のハイブリッド

  • 自動座標計算: get_layout() で交差のない (x, y) を算出
  • 手動微調整: offset(dx, dy) でブラックボックス化を回避
  • 確定座標の出力: print(layout) で座標を確認しコード固定
g = LayerGraph(direction="LR")
g.edge("ingest", "validate")
g.edge("validate", "serve")
layout = g.get_layout(margin=8.0)
layout.offset("serve", dy=-4.0)
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ LayerGraph.get_layout() + offset() ETL ステージ データ収集 スキーマ検証 特徴量付与 推論 API offset(dy=-4)
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 27 / 39

Drawlib — コードで描く図解と技術ドキュメント

5種類の専用グラフレイアウトソルバー

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 1. ArchitectureGraph (境界) Edge VPC CDN API DB 2. LayerGraph (階層型 DAG) 入力 変換A 変換B 出力 3. TreeGraph (整列ツリー) 親拠点 Web API データ 4. RadialGraph (同心円ハブ&スポーク) 中核 認証 注文 決済 検索 5. GridGraph (2D マトリクス・蛇行フロー) 1. 計画 2. 実装 3. ビルド 4. 検証 5. 承認 6. 本番
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 28 / 39

Drawlib — コードで描く図解と技術ドキュメント

フレームベースアニメーション (APNG / WebP)

全コンポーネント対応の宣言的アニメーション

  • マルチフレーム制御: 宣言的な Animation(fps, loop) エンジン
  • 段階的描画 (draw_ratio): 線・SmartArt・チャート・設計図に対応
  • 対話型再生制御: <canvas> 上で anim_trigger・anim_pause・A 操作
  • 静的出力との両立: PDF・PPTX 変換時に最適フレームを自動抽出
anim = Animation(fps=2.0, loop=0)
for r in [0.4, 0.7, 1.0]:
    series.draw_ratio = r
    with anim.frame():
        chart.draw(xy=(10, 6))
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 05 Chapter 5 / 6 5つのプロジェクト種別と出力 Site・Catalog・Doc・Slide・Images を単一コンパイラで 5.1 5つのプロジェクト種別の全体像 5.2 Web公開:SiteとCatalog 5.3 技術白書:HTML・PDF・Word出力 5.4 16:9スライド・発表者画面・PPTX 29 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 30 / 39

Drawlib — コードで描く図解と技術ドキュメント

用途に応じた5つのプロジェクト種別

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ uv run drawlib init project <type> <dir> 単一コンパイラ • 5つの専用テンプレート • Web・PDF・Office対応 site docs_src/<lang>/ 体系的ガイドサイト navbar.md・全文検索 ダークモード・多言語 例: www.drawlib.com HTML Search SVG catalog v0.3.5 新機能 catalog_src/<lang>/ 2カラムAPI辞書 H1/H2自動カテゴリ / キー即時フィルタ 例: drawlib.com/api HTML / Filter SVG doc doc_src/<lang>/ 単一長文仕様書・白書 --generate-index 表紙・目次自動生成 設計書・RFC・提案書 HTML PDF DOCX slide slide_src/<lang>/ 16:9 スライド画面 ?presenter=1 同期 ::: note 発表原稿 登壇資料・勉強会 HTML PDF PPTX images images_src/*.py Python図解バッチ ベクター&ラスター CIアセット一括生成 README・論文図版 SVG PNG WebP
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 31 / 39

Drawlib — コードで描く図解と技術ドキュメント

Web公開:ドキュメント Site と API Catalog

  • type = "site"(体系的ドキュメント): navbar.md による章構成・全文検索・ダークモード・多言語切替を備えたガイドサイト(www.drawlib.com)。
  • type = "catalog"(API・スキーマ辞書): navbar.md 不要で # H1 / バッジ付き ## H2 を自動抽出し / で即時絞り込む2カラム辞書(www.drawlib.com/api)。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ www.drawlib.com — type = "site" Docs ガイド SmartArts CLI 全文検索 EN/JA navbar.md 01 概要 02 基本図形 03 SmartArts 04 Diagrams 05 ビルド公開 第3章 • SmartArt ガイド アーキテクチャ図とパネル構成 MD原稿 ビルド Web SVG 段階的な解説記事・ダークモード・ 前後の章へのガイドリンクを自動生成 ← 基本図形 Diagrams → www.drawlib.com/api — type = "catalog" panel / # SmartArts (H1) CLASS CardList CLASS Panel FUNC sourcecode # HTTP API (H1) GET /v1/rules POST /v1/build CLASS Panel (## H2) 1 MD = 1 HTML • navbar.md 不要 呼び出し元 Panel draw() / content_box() variant: 'filled' | 'window' get_content_box() -> 内枠座標
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 32 / 39

Drawlib — コードで描く図解と技術ドキュメント

技術白書:HTML・ベクターPDF・Word出力

長文仕様書・白書 (type = "doc")

  • 章ファイルの自動結合: 00_cover.md, 01_intro.md を単一文書へ統合
  • 表紙・目次の自動生成: --generate-index で表紙とリンク目次を構築
  • 3形式へ同時出力: HTML・A4ベクターPDF・編集可能な .docx を生成
# doc_src/ から3形式を一括ビルド
uv run drawlib build html
uv run drawlib build pdf --generate-index
uv run drawlib build docx --generate-index
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ doc_src/{en,ja}/ 00_cover.md 表紙・メタ情報 01_intro.md 背景と目的 02_arch.md ```drawlib 構成図 03_security.md 脅威分析・表 --generate-index 単一ページ HTML WEB 追従目次サイドバー・ダークモード インラインSVGの拡大表示に対応 A4 ベクター PDF PRINT 表紙・リンク付き目次を自動生成 拡大しても劣化しないベクター図解 MS Word 文書 (.docx) OFFICE ネイティブ見出し・表・高精細図版 社内外のWordレビューにそのまま対応
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 33 / 39

Drawlib — コードで描く図解と技術ドキュメント

16:9 スライド・発表者ビュー・PPTX出力

  • 2層構造のスライド記述: ::: block で 1920×1080 の視覚ステージを定義し、::: note に発表原稿をGit管理。
  • リアルタイム同期とOffice出力: ?presenter=1 で2画面発表者ビューを BroadcastChannel 同期し、PDFと .pptx も出力。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ slide_src/ ::: block (画面) 1920x1080 座標配置 PythonベクターSVG ::: note (原稿) 発表トーク原稿を管理 聴衆画面には非表示 日英 1:1 パリティ検証 聴衆用ステージ画面 インライン ベクターSVG 4K投影でも鮮明な1920x1080 Lキー: EN ⇄ JA Pキー: 発表者用 Broadcast Channel 発表者ビュー (?presenter=1) 現在のスライド Slide 18 / 26 次のスライド タイマー 08:42 ::: note スピーカーノート表示 発表原稿・想定Q&Aを同期表示 1920x1080 ベクターPDF drawlib build pdf • 配布用PDF 編集可能 960x540pt .pptx drawlib build pptx • ノート付PPTX
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CHAPTER 06 Chapter 6 / 6 AIエージェント自律ワークフロー Rules CLI・視覚的自己修正ループ・SQLiteキャッシュ 6.1 Rules CLIによるオンデマンド参照 6.2 -g グリッドによる自律視覚検証ループ 6.3 2層アセット&SQLiteビルドキャッシュ 34 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 35 / 39

Drawlib — コードで描く図解と技術ドキュメント

マルチモーダル視覚検証による自律修正ループ

  • オンデマンド仕様参照: AIエージェント(Gemini・Claude Code・Cursor)が drawlib rules show で必要な知識のみを都度取得。
  • 視覚的な自己修正ループ: drawlib show -g の座標グリッド画像をマルチモーダル検品し、重なりや余白を自律修正して出力。
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 1. ルール参照 drawlib rules show 必要なAPIと設計規約を オンデマンドで取得 コンテキスト節約 2. コード生成 Write Python / MD SmartArts・Diagramsと ::: block 座標を 型安全に記述 3. グリッド描画 drawlib show -g (X, Y) 目盛り付きの 検証用PNG画像を 1秒未満で出力 4. 視覚検品 Multimodal 検査 余白バランス・文字サイズ 要素の重なり有無を 画像認識で判定 合格 検品済み成果物 ✓ 公開ビルド完了 高品質なHTML・PDF Word・16:9 PPTXを 一括コンパイル 重なり・見切れを検知 5. 座標・サイズの自己修正 -g 目盛りから (x, y) とサイズを自動補正 再検証
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 36 / 39

Drawlib — コードで描く図解と技術ドキュメント

2層キャッシュ機構と統合CLIコマンド

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ < 1s 高速差分ビルド SQLite SHA-256 .drawlib/cache.db 50+ AIルールトピック drawlib rules show で都度参照 Zero リンク切れゼロ drawlib serve --check で自動検証
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2層キャッシュアーキテクチャ Tier 1: アセットキャッシュ drawlib cache list / download フォント・34種アイコン・Chromiumを オンデマンド取得し事前キャッシュ Tier 2: ビルドキャッシュ .drawlib/cache.db (SQLite) SHA-256内容+スタイルハッシュ管理 HTML・PDF・Office間で高速共有 統合CLIワークフロー — uv run drawlib <command> init 5種別作成 rules 仕様を参照 show -g グリッド検品 build Web/Office serve --check
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ CLOSING 06 • まとめ まとめと次のステップ Illustration & Documentation as Code を始めよう 37 / 39
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 38 / 39

Drawlib — コードで描く図解と技術ドキュメント

まとめとクイックスタート

image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 01 1. Pure Python & Git ネイティブ 型安全なPython API・styles.py 共通設定と Git差分管理でGUIロックインを解消。 03 3. 5つのプロジェクト種別とOffice出力 Site・Catalog・Doc・Slide・Images から HTML・PDF・Word・PPTXを一括生成。 02 2. 豊富な高水準コンポーネント群 18種SmartArts・9種Charts・6種Diagrams・ 5種Graph・34種アイコンを標準内蔵。 04 4. 自律型AIエージェントに最適化 50超の drawlib rules・show -g 視覚検品・ 1秒未満の .drawlib/cache.db 差分ビルド。 30秒で始めるクイックスタート Python 3.12+ / uv 環境に対応 uv add drawlib uv run drawlib init project slide my-deck uv run drawlib serve

ご清聴ありがとうございました

図解もドキュメントも、すべてコードで。


  • Docs: https://www.drawlib.com/
  • API Catalog: https://www.drawlib.com/api/
  • Examples & GitHub: https://examples.drawlib.com/ · github.com/yuichi110/drawlib
image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ ILLUSTRATION & DOCS AS CODE コードで描く AIネイティブ 自在に出力 Drawlib — Apache 2.0 Open Source pip / uv install drawlib
日本語
Slide 1
1 / 39
Slide 2
2 / 39
Slide 3
3 / 39
Slide 4
4 / 39
Slide 5
5 / 39
Slide 6
6 / 39
Slide 7
7 / 39
Slide 8
8 / 39
Slide 9
9 / 39
Slide 10
10 / 39
Slide 11
11 / 39
Slide 12
12 / 39
Slide 13
13 / 39
Slide 14
14 / 39
Slide 15
15 / 39
Slide 16
16 / 39
Slide 17
17 / 39
Slide 18
18 / 39
Slide 19
19 / 39
Slide 20
20 / 39
Slide 21
21 / 39
Slide 22
22 / 39
Slide 23
23 / 39
Slide 24
24 / 39
Slide 25
25 / 39
Slide 26
26 / 39
Slide 27
27 / 39
Slide 28
28 / 39
Slide 29
29 / 39
Slide 30
30 / 39
Slide 31
31 / 39
Slide 32
32 / 39
Slide 33
33 / 39
Slide 34
34 / 39
Slide 35
35 / 39
Slide 36
36 / 39
Slide 37
37 / 39
Slide 38
38 / 39
Slide 39
39 / 39