viznoir

io.github.kimimgo由 GitHub 帳號 kimimgo 發布v0.10.1更新於 Oct 24, 2026

Cinema-quality science visualization for AI agents — headless VTK via MCP.

已驗證STDIO僅桌面資料與分析媒體與設計

概覽

AI 產生的概覽

以無頭 VTK 為基礎的 MCP 伺服器,讓 AI 助理讀取模擬資料、套用濾鏡,並算繪電影級科學影像、動畫與圖文版面。

可以做什麼
  • 算繪科學資料影像,包含電影級算繪、批次算繪與體積算繪
  • 套用切片、等值線、裁切、流線與等值面等濾鏡
  • 檢視資料集、擷取統計量並分析物理特徵,還可沿線、沿面與時間序列取樣
  • 產生動畫(含物理感知預設),並比較或組合多面板故事、網格、簡報與影片版面
  • 匯出預覽並執行自訂管線,輸出 PNG、WebP、MP4、GLTF 與 LaTeX
適用情境
適合需要把模擬或三維科學資料(OpenFOAM、VTK、CGNS、STL 等)轉成可發表圖表、動畫或比較面板,而不想開啟 ParaView 或 Jupyter 筆記本的情境。
執行需求
以 PyPI 套件 viznoir 透過 stdio 在本機執行,需要 Python 3.10 以上版本;VTK 會自動安裝並支援 EGL 無頭算繪。選用附加元件提供 meshio/trimesh 與 Pillow/matplotlib。環境變數 VIZNOIR_DATA_DIR 與 VIZNOIR_OUTPUT_DIR 指定輸入資料與輸出目錄,VIZNOIR_RENDER_BACKEND 選擇 gpu、cpu 或 auto。僅支援桌面端。
安裝前請注意
它會讀取所設定資料目錄中的檔案,並把算繪影像、動畫與影片寫入輸出目錄,請將兩者指向可曝露的資料夾。算繪大型資料集可能耗用較多資源,GPU 後端取決於本機圖形支援。未宣告任何身分驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 viznoir,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

viznoir

VTK is all you need. Cinema-quality science visualization for AI agents.

[CI] [PyPI] [Python] [License: MIT] [Mentioned in Awesome VTK]


[Science Storytelling]

One prompt → physics analysis → cinematic renders → LaTeX equations → publication-ready story.


What it does

An MCP server that gives AI agents full access to VTK's rendering pipeline — no ParaView GUI, no Jupyter notebooks, no display server. Your agent reads simulation data, applies filters, renders cinema-quality images, and exports animations, all headless.

Works with: Claude Code · Cursor · Windsurf · Gemini CLI · any MCP client

Quick Start

1. Install

bash
pip install viznoir
# With optional extraspip install "viznoir[mesh]"       # meshio + trimesh (50+ formats)pip install "viznoir[composite]"  # Pillow + matplotlib (split_animate)pip install "viznoir[all]"        # everything

Requires Python ≥3.10. VTK wheel auto-installed (EGL headless rendering supported).

2. Verify

bash
mcp-server-viznoir --help    # server entry pointpython -c "import viznoir; print(viznoir.__version__)"

3. Use with an MCP client

Add to your MCP client config (claude_desktop_config.json, ~/.cursor/mcp.json, etc.):

json
{  "mcpServers": {    "viznoir": {      "command": "mcp-server-viznoir",      "env": {        "VIZNOIR_DATA_DIR": "/path/to/your/simulation/data",        "VIZNOIR_OUTPUT_DIR": "/path/to/output"      }    }  }}

Then ask your AI agent:

"Open cavity.foam, render the pressure field with cinematic lighting, then create a physics decomposition story."

4. Or use as a Python library (advanced)

All tool implementations are importable as async functions. You provide a VTKRunner and await the result:

python
import asynciofrom viznoir.core.runner import VTKRunnerfrom viznoir.tools.inspect import inspect_data_implfrom 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())

See docs for the full tool reference.

Capabilities

CategoryTools
Renderingrender · cinematic_render · batch_render · volume_render
Filtersslice · contour · clip · streamlines · pv_isosurface
Analysisinspect_data · inspect_physics · extract_stats · analyze_data
Probingplot_over_line · integrate_surface · probe_timeseries
Animationanimate · split_animate
Comparisoncompare · compose_assets
Exportpreview_3d · execute_pipeline

22 tools · 12 resources · 4 prompts · 50+ file formats (OpenFOAM, VTK, CGNS, Exodus, STL, glTF, …)

Showcase — 10 Domains, One Pipeline

Every frame below is a single MCP tool call. No GUI, no post-processing, no ParaView. Annotations are rendered inside the 3D scene via VTK-native text actors and leader lines — no Photoshop, no matplotlib overlay.

[Medical][CFD][Thermal][Geoscience][Automotive]
Medical
CT skull volume
CFD
Combustion streamlines
Thermal
Heatsink gradient
Geoscience
Seismic wavefield
Automotive
DrivAerML · 8.8M cells
[Molecular][Vascular][Planetary][Structural][Volume]
Molecular
H₂O electron density
Vascular
Cerebral aneurysm MRA
Planetary
Bennu · 196K triangles
Structural
Cantilever FEA stress
Volume
Thermal threshold

Physics-Aware Animations

Seven presets convert raw simulation data into publication-ready motion — each binds a rendering primitive to a physical phenomenon.

PresetPhysicsRendering
streamline_growthLagrangian advectionParticle path-line extension over time
clip_sweepPressure gradient cross-sectionMoving clip plane
layer_revealCT density classificationProgressive isosurface stacking
iso_sweepOrbital topologyIsovalue sweep with camera orbit
warp_oscillationStructural mode shapeWarp-by-vector harmonic displacement
light_orbitOblique illuminationRotating key light for material reveal
threshold_revealFeature hierarchyThreshold peeling from outside → in

Story Composition (compose_assets)

[Cavity Story]

Inspect → render → annotate → compose → narrate. One prompt produces a 4-panel physics decomposition with LaTeX-rendered governing equations.

Layouts: story (vertical narrative) · grid (N×M comparison) · slides (16:9 keynote) · video (MP4 with transitions)

Full interactive gallery: https://kimimgo.github.io/viznoir/#showcase

Architecture

  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

Numbers

22 MCP tools24 VTK filters
10 domains19 native file formats
6/6 VTK data types50+ formats via meshio

Documentation

Homepage: kimimgo.github.io/viznoir

Developer docs: kimimgo.github.io/viznoir/docs — full tool reference, domain gallery, architecture guide

License

MIT

來源:README.md,提交 e3255c0

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.10.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分