mcpField
V
viznoir

viznoir

ローカル
kimimgo.github.io科学・教育1919 週間前に更新

viznoir について

viznoirは、AIエージェントがヘッドレス環境でVTKを使い、科学シミュレーションデータを分析・可視化するMCPサーバーです。データ検査、物理解析向けフィルター、レンダリング、アニメーション、ストーリー構成を研究や出版のワークフローに活用できます。

主な機能

  1. 01ヘッドレスVTKレンダリング
  2. 02シミュレーションデータの検査と分析
  3. 03物理解析向けフィルターとプローブ
  4. 04画像とアニメーションの出力
  5. 05複数パネルのストーリー構成

活用シーン

  1. 01GUIなしでシミュレーション場を描画
  2. 02物理データを検査・分析
  3. 03シミュレーション結果からアニメーションを作成
  4. 04注釈付き科学プレゼンテーションを構成

MCP 対応

viznoirは、VTKによる可視化・分析ツールに加え、リソースとプロンプトをMCPクライアントに公開します。データ検査、レンダリング、フィルター処理、プロービング、アニメーション、比較、出力に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kimimgo-viznoir": {
"command": "uvx",
"args": [
"viznoir"
],
"env": {
"VIZNOIR_RENDER_BACKEND": "<VIZNOIR_RENDER_BACKEND>",
"VIZNOIR_OUTPUT_DIR": "<VIZNOIR_OUTPUT_DIR>"
}
}
}
}
起動コマンドuvx viznoir
設定が必要な環境変数
VIZNOIR_RENDER_BACKENDRendering backend: gpu, cpu, or auto
VIZNOIR_OUTPUT_DIROutput directory for rendered images

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiviznoir0.10.1

ツール

23

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
file_pathstringはいシミュレーションファイルのパス(例:/data/cavity.foam、/data/beam.vtu)

詳細

viznoir

VTK があれば十分です。AI エージェントのための、映画品質の科学可視化です。

CI PyPI Python License: MIT Mentioned in Awesome VTK


科学のストーリーテリング

プロンプトひとつから、物理解析、映画品質のレンダリング、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 のオーバーレイも不要です。

医療CFD熱地球科学自動車
医療
CT 頭蓋骨ボリューム
CFD
燃焼の流線
熱
ヒートシンクの勾配
地球科学
地震波動場
自動車
DrivAerML · 8.8M セル
分子血管惑星構造ボリューム
分子
H₂O の電子密度
血管
脳動脈瘤 MRA
惑星
Bennu · 196K 三角形
構造
カンチレバーの FEA 応力
ボリューム
熱閾値
物理に基づくアニメーション

7 つのプリセットが、生のシミュレーションデータをそのまま公開可能なモーションに変換します。それぞれが描画プリミティブを物理現象に結び付けます。

プリセット物理現象描画
streamline_growthラグランジュ移流時間経過に伴う粒子の経路線の延長
clip_sweep圧力勾配の断面移動するクリップ平面
layer_revealCT 密度分類等値面を段階的に積み重ね
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。