依頼内容
この記事は、以下のプロンプトをマスターから受けて作成しました。
/goal 過去にある各LLMの作図バトルの記事を見つけて、それをコピーして最新の記事として作成してください。日付は7/1です。
Sonnet 5=君の成果を一番左にセットし、真ん中をOpus 4.8、右をGemini 3.5 flashの3列にしてください。
新規の作図は君=Sonnet 5だけです。図の数だけSonnet 5を指定したsubagentを使って一気にすべて作図させてください。すべての図を作成できれば完了ですが、
- モデルがSonnet 5以外
- 指定したツールを使わず代替として別のツールを使った
場合は、NGなので、その図は削除する必要があります。subagentが、必ず指定した行動をするように強制するプロンプトを使ってください。
提案に対して代替・劣化した瞬間killしてください。
この指示に沿って、Sonnet 5 列の30個は「1図につき1subagent」を model 固定(sonnet)で30体スポーンし、それぞれに「Read と Write 以外のツールは使うな、Bashで他のCLI(codex/agy/gemini/copilot等)を呼ぶな、他モデルの既存出力を読むな」と明記した強制プロンプトを渡して生成させました。Opus 4.8 / Gemini 3.5 Flash の列は過去記事で確認済みの資産をそのまま再利用しています(この2列を新規に描き直すことは指示されていないため)。
はじめに
このシリーズは、新しいモデルが出るたびに「同じお題・同じプロンプト・同じビルド手順」で図解を描かせて横並び比較する定点観測ベンチマークです。今回の3モデルは左から Claude Sonnet 5 / Claude Opus 4.8 / Gemini 3.5 Flash の順で並べています。
- Claude Sonnet 5: この作業セッションを主導する Claude Code(オーケストレーター)自身が、
Agent ツールで題材×形式ぶん(30体)の subagent を model 固定で個別にスポーンし、各subagentが担当プロンプトから直接 source を書き起こしました
- Claude Opus 4.8: 2026-05-29版で生成済みの10題材 × 3形式 = 30個をそのまま流用
- Gemini 3.5 Flash:
agy コマンド(Gemini CLI 系のローカルエージェントCLI)の print モードで2026-05-22に生成済みの10題材 × 3形式 = 30個をそのまま流用
この記事は、題材設計、コード生成、比較、記事化までをAIで進める Full AI 方式で書いています。
冒頭画像と OGP には、シリーズの顔であるクマのぬいぐるみ題材の TikZ 比較を Sonnet 5 / Opus 4.8 / Gemini 3.5 Flash の3列で並べた画像を使っています。
比較条件
- モデル: Claude Sonnet 5 / Claude Opus 4.8 / Gemini 3.5 Flash
- 形式: TikZ / matplotlib / SVG
- 題材: 10題材
- 総数: 10題材 × 3形式 × 3モデル = 90個
- 今回の新規生成分: Claude Sonnet 5 の 10題材 × 3形式 = 30個(1図1subagent、model固定、Read/Writeのみで生成)
- 流用分: Claude Opus 4.8(2026-05-29生成)30個 + Gemini 3.5 Flash(2026-05-22生成)30個
- 確認日: 2026-07-01 JST(Opus 4.8 分は2026-05-29、Gemini 3.5 Flash 分は2026-05-22)
題材のうち 5 つはユーザー指定です。残り 5 つは比較差が出やすいように AI で設計しました。過去の題材は1つも削除していません。
題材一覧
| 題材 |
出題元 |
見たい点 |
| クマのぬいぐるみ |
ユーザー指定 |
かわいさ、左右対称、部品バランス、質感差 |
| 独居おばあちゃんがリビングでテレビを見ている絵 |
ユーザー指定 |
生活空間、人物と家具の関係、構図の自然さ |
| 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子 |
ユーザー指定 |
2人物の視線、状況説明力、部屋の整理 |
| 油圧ピストンの構造解説 |
ユーザー指定 |
断面、部品ラベル、圧力の流れ |
| 7軸ロボットアームとその軸の説明 |
ユーザー指定 |
多関節、軸番号、回転方向、空間把握 |
| カルマンフィルターのブロック線図 |
AI設計 |
フィードバック、数式ラベル、信号線 |
| RAGパイプライン構成図 |
AI設計 |
取得と生成の分離、データフロー整理 |
| ゼロトラスト認証とトークン交換 |
AI設計 |
境界越え、認証経路、複雑フロー |
| ブロッホ球 |
AI設計 |
空間認識、数式、幾何配置 |
| マイケルソン干渉計 |
AI設計 |
光路、対称性、部品配置 |
形式
| 形式 |
見たい点 |
ビルド方法 |
| TikZ |
数式や工学図の厳密さ、構文の安定性 |
xelatex -> pdftoppm -> cwebp |
| matplotlib |
手続き的に図を組み立てる力、部品配置の堅さ |
python -> png -> cwebp |
| SVG |
生の座標設計とレイアウト感覚 |
rsvg-convert -> png -> cwebp |
ベンチマークケースについて
- ユーザー指定ケース: クマのぬいぐるみ, 独居おばあちゃんがリビングでテレビを見ている絵, 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子, 油圧ピストンの構造解説, 7軸ロボットアームとその軸の説明
- AI設計ケース: カルマンフィルターのブロック線図, RAGパイプライン構成図, ゼロトラスト認証とトークン交換, ブロッホ球, マイケルソン干渉計
共通チェック項目は scripts/diagram_benchmark_2026/manifest.yml に置いています。お題のプロンプトは scripts/diagram_benchmark_2026/prompts/ にあります(3モデル共通)。
source 欄は単なるパス文字列ではなく、サイト上でそのまま開ける公開 source へのリンクにしています。
実行方法(Sonnet 5 列の強制プロンプト運用)
Sonnet 5 列の30個は、オーケストレーター(この作業セッションのメインエージェント)が Agent ツールで題材×形式の組み合わせぶん(10題材 × 3形式 = 30体)の subagent を個別に起動し、それぞれに次を明記したプロンプトを渡して生成させました。
- モデル固定:
Agent 呼び出し側で model: "sonnet" を明示指定(subagentの自己申告に頼らず、オーケストレーター側の呼び出しパラメータでモデルを強制)
- 使用ツールの制限: 「Read でお題プロンプトを読み、Write で source を保存する以外のツールは使うな」と明記
- 代替手段の禁止: 「Bashは一切使用禁止。
codex exec / agy / gemini / copilot などの外部CLIやMCPツール(drawio等)、WebFetch/WebSearchで代わりに描かせることを完全禁止。違反が発覚した時点でその成果物は削除する」と明記
- 他モデル出力の参照禁止: 「既存の opus48 / gemini35flash / gpt54 / gpt55 / fable5 ディレクトリ以下を読んだりコピーしたりするな。ゼロから自分で設計しろ」と明記
# Sonnet 5 の source を画像へ(1図1subagentで生成した30個)
scripts/diagram_benchmark_2026/render_all.sh sonnet5
# 流用分(Opus 4.8 / Gemini 3.5 Flash)は過去記事の生成物をそのまま使用
scripts/diagram_benchmark_2026/render_all.sh opus48
scripts/diagram_benchmark_2026/render_all.sh gemini35flash
生成時に起きたこと(記録)
定点観測なので、生成過程でつまずいた点も正直に記録しておきます。
- subagent の同時起動数上限: 30体を1メッセージで一気に起動しようとしたところ、環境側のpane同時起動数の上限(概ね15体前後)に達し、後半のsubagentが
respawn pane failed で起動失敗しました。オーケストレーターは、完了済みsubagentへ shutdown_request を送ってpaneを解放しながら、失敗分を数体ずつ再送信する形で30体すべての起動と完了を確認しています
- Claude Sonnet 5: ブロッホ球のTikZで、独自マクロ名
\tmpX1 / \tmpY1(TeXの制御綴りは英字のみで数字を含められないため \tmpX + 文字 1 に分割される既知の罠)と、\SphR and \EqMinorR のようにマクロ直後に and キーワードを続けた際にマクロが後続スペースを飲み込んで 3and ... になる罠の、計2箇所でコンパイルエラーが発生しました。いずれも描画内容には無関係な構文修正(マクロ名の変更、{} によるスペース保持)をオーケストレーター側で1回ずつ行い、コンパイルを通しています
- 上記以外の29個は、各subagentがRead→(自身の知識で設計)→Writeの一発生成のみでビルドが通りました
出力一覧
01. クマのぬいぐるみ
お題
- かわいいクマのぬいぐるみを正面向きで描く
- 頭は丸く、耳は左右対称で少し大きめ
- 胴体は柔らかい綿入りの感じが出るように少し横幅を持たせる
- 腕と脚は短めで、ぬいぐるみらしい丸みを付ける
- 目、鼻、口、足裏、胸のワッペンなどで質感差を出す
- 暖色寄りでやさしい配色にする
TikZ
matplotlib
SVG
02. 独居おばあちゃんがリビングでテレビを見ている絵
お題
- リビングでおばあちゃんがテレビを見ている情景を描く
- おばあちゃんは一人で、椅子かソファに座っている
- テレビ、テーブル、照明、カーテンなどで生活空間を出す
- テレビの方へ視線が向いていることが分かるようにする
- 家庭的で温かい雰囲気にする
TikZ
matplotlib
SVG
03. 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子
お題
- 子ども部屋で息子がVRゴーグルを装着して遊んでいる場面を描く
- 息子は両手にコントローラーを持ち、楽しそうに動いている
- 部屋の入口側からお母さんがその様子を見ている
- 机、棚、ベッドなどで子ども部屋らしさを出す
- 人物同士の視線関係が分かるようにする
TikZ
matplotlib
SVG
04. 油圧ピストンの構造解説
お題
- 油圧ピストンの断面構造図を描く
- シリンダー、ピストン、ロッド、左右の圧力室を表現する
- 流体の流れを矢印で示す
- 主要部品にラベルを付ける
- 教育用の図として読みやすく整理する
TikZ
matplotlib
SVG
05. 7軸ロボットアームとその軸の説明
お題
- 7軸ロボットアームの全体図を描く
- 各関節を J1 から J7 までラベル付けする
- 各軸の回転方向を小さな矢印で示す
- ベース、リンク、手先の関係が分かるようにする
- やや立体感のある構図で描く
TikZ
matplotlib
SVG
06. カルマンフィルターのブロック線図
お題
- カルマンフィルターのブロック線図を描く
- Prediction, Update, Measurement, State estimate を分ける
- 入力とフィードバックの向きを矢印で示す
- Kalman gain や residual など主要な情報流も入れる
- 制御図として見やすく整理する
TikZ
matplotlib
SVG
07. RAGパイプライン構成図
お題
- RAG のパイプライン構成図を描く
- User Query, Embed/Retrieve, Vector DB, Retrieved Context, LLM, Answer を入れる
- オンライン処理と事前の文書投入を区別する
- データフローを矢印で示す
- 現代的なAIシステム図として整理する
TikZ
matplotlib
SVG
08. ゼロトラスト認証とトークン交換
お題
- ゼロトラスト認証とトークン交換の流れを描く
- User, Browser, IdP, API Gateway, Service A, Service B を入れる
- ID token, access token, service token の流れを区別する
- 信頼境界を領域として表現する
- 複雑でも読めるセキュリティ図にする
TikZ
matplotlib
SVG
09. ブロッホ球
お題
- ブロッホ球を2D投影で描く
- x, y, z 軸を示す
-
- theta と phi の角度を小さな弧で示す
- 物理の教科書に出てくる図として整える
TikZ
matplotlib
SVG
10. マイケルソン干渉計
お題
- マイケルソン干渉計の模式図を描く
- Laser, Beam Splitter, Mirror A, Mirror B, Screen を入れる
- 光路を直線矢印で示す
- ビームスプリッタで2方向に分岐して戻る流れを見せる
- 対称性を保って配置する
TikZ
matplotlib
SVG
現時点の見どころ
- かわいいイラスト系では、装飾を盛る方向に出るか、破綻を避けて記号寄りに出るかが見やすいです。Sonnet 5 がどちらに寄るかも、左列で並べて見られます
- 機械・制御系では、構造の整列とラベルの読みやすさで差が出ます
- 数学・物理系では、空間把握と数式周辺の配置の上手さが見やすいです
参考
おわりに(人間コメント)
Gemini 3.5 Flashが最強!ってのはそうなのですが、OpusよりもSonnetさんの方が視覚系タスクが優秀そうだとわかりました。
はぁ、早くOpus 4.9出ないかなぁ・・・。