viznoir について
viznoirは、AIエージェントがヘッドレス環境でVTKを使い、科学シミュレーションデータを分析・可視化するMCPサーバーです。データ検査、物理解析向けフィルター、レンダリング、アニメーション、ストーリー構成を研究や出版のワークフローに活用できます。
主な機能
- 01ヘッドレスVTKレンダリング
- 02シミュレーションデータの検査と分析
- 03物理解析向けフィルターとプローブ
- 04画像とアニメーションの出力
- 05複数パネルのストーリー構成
活用シーン
- 01GUIなしでシミュレーション場を描画
- 02物理データを検査・分析
- 03シミュレーション結果からアニメーションを作成
- 04注釈付き科学プレゼンテーションを構成
MCP 対応
viznoirは、VTKによる可視化・分析ツールに加え、リソースとプロンプトをMCPクライアントに公開します。データ検査、レンダリング、フィルター処理、プロービング、アニメーション、比較、出力に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| file_path | string | はい | シミュレーションファイルのパス(例:/data/cavity.foam、/data/beam.vtu) |
詳細
viznoir
VTK があれば十分です。AI エージェントのための、映画品質の科学可視化です。

プロンプトひとつから、物理解析、映画品質のレンダリング、LaTeX の数式、出版可能なストーリーまで。
できること
AI エージェントが VTK のレンダリングパイプラインをすべて利用できる MCP サーバーです。ParaView の GUI、Jupyter ノートブック、ディスプレイサーバーは必要ありません。エージェントがシミュレーションデータを読み込み、フィルターを適用し、映画品質の画像をレンダリングして、アニメーションをエクスポートします。すべてヘッドレスで実行できます。
対応クライアント: Claude Code · Cursor · Windsurf · Gemini CLI · 任意の MCP クライアント
クイックスタート
1. インストール
pip install viznoir
# With optional extras
pip install "viznoir[mesh]" # meshio + trimesh (50+ formats)
pip install "viznoir[composite]" # Pillow + matplotlib (split_animate)
pip install "viznoir[all]" # everything
Python ≥3.10 が必要です。VTK のホイールが自動でインストールされます(EGL によるヘッドレスレンダリングに対応)。
2. 動作確認
mcp-server-viznoir --help # server entry point
python -c "import viznoir; print(viznoir.__version__)"
3. MCP クライアントで使用する
MCP クライアントの設定(claude_desktop_config.json、~/.cursor/mcp.json など)に追加します。
{
"mcpServers": {
"viznoir": {
"command": "mcp-server-viznoir",
"env": {
"VIZNOIR_DATA_DIR": "/path/to/your/simulation/data",
"VIZNOIR_OUTPUT_DIR": "/path/to/output"
}
}
}
}
次に、AI エージェントに依頼します。
「cavity.foam を開き、映画のようなライティングで圧力場をレンダリングしてから、物理量を分解したストーリーを作成してください。」
4. または Python ライブラリとして使用する(上級者向け)
すべてのツール実装は async 関数としてインポートできます。VTKRunner を渡し、結果を await します。
import asyncio
from viznoir.core.runner import VTKRunner
from viznoir.tools.inspect import inspect_data_impl
from viznoir.tools.render import render_impl
async def main():
runner = VTKRunner()
meta = await inspect_data_impl(file_path="cavity.foam", runner=runner)
print(meta["fields"], meta["timesteps"])
result = await render_impl(
file_path="cavity.foam",
field_name="p",
runner=runner,
colormap="Cool to Warm",
camera="isometric",
width=1920, height=1080,
output_filename="pressure.png",
)
print(result.file_path)
asyncio.run(main())
ツールの詳細については、ドキュメントをご覧ください。
機能
| カテゴリ | ツール |
|---|---|
| レンダリング | render · cinematic_render · batch_render · volume_render |
| フィルター | slice · contour · clip · streamlines · pv_isosurface |
| 解析 | inspect_data · inspect_physics · extract_stats · analyze_data |
| プローブ | plot_over_line · integrate_surface · probe_timeseries |
| アニメーション | animate · split_animate |
| 比較 | compare · compose_assets |
| エクスポート | preview_3d · execute_pipeline |
22 個のツール · 12 個のリソース · 4 個のプロンプト · 50 種類以上のファイル形式(OpenFOAM、VTK、CGNS、Exodus、STL、glTF など)
ショーケース — 10 分野、1 つのパイプライン
以下の各フレームは、単一の MCP ツール呼び出しで生成されています。GUI も後処理も ParaView も不要です。 注釈は、VTK ネイティブのテキストアクターとリーダー線を使い、3D シーン内に描画されます。Photoshop も matplotlib のオーバーレイも不要です。
![]() | ![]() | ![]() | ![]() | ![]() |
| 医療 CT 頭蓋骨ボリューム | CFD 燃焼の流線 | 熱 ヒートシンクの勾配 | 地球科学 地震波動場 | 自動車 DrivAerML · 8.8M セル |
![]() | ![]() | ![]() | ![]() | ![]() |
| 分子 H₂O の電子密度 | 血管 脳動脈瘤 MRA | 惑星 Bennu · 196K 三角形 | 構造 カンチレバーの FEA 応力 | ボリューム 熱閾値 |
物理に基づくアニメーション
7 つのプリセットが、生のシミュレーションデータをそのまま公開可能なモーションに変換します。それぞれが描画プリミティブを物理現象に結び付けます。
| プリセット | 物理現象 | 描画 |
|---|---|---|
streamline_growth | ラグランジュ移流 | 時間経過に伴う粒子の経路線の延長 |
clip_sweep | 圧力勾配の断面 | 移動するクリップ平面 |
layer_reveal | CT 密度分類 | 等値面を段階的に積み重ね |
iso_sweep | 軌道トポロジー | カメラを周回させながらの等値スイープ |
warp_oscillation | 構造モード形状 | ベクトルによる変形で生じる調和変位 |
light_orbit | 斜め照明 | マテリアルを見せる回転キーライト |
threshold_reveal | 特徴階層 | 外側から内側へ閾値を段階的に除去 |
ストーリー構成(compose_assets)

検査 → 描画 → 注釈 → 構成 → ナレーション。1 つのプロンプトで、LaTeX で描画した支配方程式を含む、物理現象を 4 パネルで分解した図を生成します。
レイアウト:story(縦方向のナラティブ)・grid(N×M の比較)・slides(16:9 の基調講演)・video(トランジション付き MP4)
インタラクティブなギャラリー全体: https://kimimgo.github.io/viznoir/#showcase
アーキテクチャ
prompt "Render pressure from cavity.foam"
│
MCP Server 22 tools · 12 resources · 4 prompts
│
VTK Engine readers → filters → renderer → camera
│ EGL/OSMesa headless · cinematic lighting
Physics Layer topology analysis · context parsing
│ vortex detection · stagnation points
Animation 7 physics presets · easing · timeline
│ transitions · compositor · video export
Output PNG · WebP · MP4 · GLTF · LaTeX
数字で見る
| 22 個の MCP ツール | 24 個の VTK フィルター |
| 10 分野 | 19 種類のネイティブファイル形式 |
| 6/6 種類の VTK データ型 | meshio 経由で 50+ 種類の形式 |
ドキュメント
ホームページ: kimimgo.github.io/viznoir
開発者向けドキュメント: kimimgo.github.io/viznoir/docs — ツールの完全なリファレンス、分野別ギャラリー、アーキテクチャガイド
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。









