mcpField
V
viznoir

viznoir

本地服务
kimimgo.github.io科研与教育1919 周前更新

关于 viznoir

viznoir 是一款 MCP 服务,让 AI Agent 在无头环境中使用 VTK 分析和可视化科学模拟数据。它将数据检查、物理相关滤镜、渲染、动画和故事编排用于研究与出版工作流。

主要功能

  1. 01无头 VTK 渲染
  2. 02模拟数据检查与分析
  3. 03物理相关滤镜和探测
  4. 04图像与动画导出
  5. 05多面板故事编排

适用场景

  1. 01无需图形界面渲染模拟场
  2. 02检查并分析物理数据
  3. 03根据模拟结果制作动画
  4. 04编排带注释的科学演示

MCP 相关

viznoir 向 MCP 客户端提供基于 VTK 的可视化和分析工具,以及资源和提示词。工具涵盖数据检查、渲染、滤镜、探测、动画、比较和导出。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 Agent 打造影院级科学可视化。

CI PyPI Python License: MIT Mentioned in Awesome VTK


Science Storytelling

一个提示词 → 物理分析 → 电影级渲染 → LaTeX 方程 → 可直接用于发表的故事。


功能介绍

一个 MCP 服务,让 AI Agent 完全访问 VTK 的渲染管线——无需 ParaView GUI、Jupyter 笔记本或显示服务器。你的 Agent 可以读取模拟数据、应用滤镜、渲染影院级图像并导出动画,全程无头运行。

适用于: 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 wheel(支持 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 Agent 提出请求:

“打开 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 个领域,一个工作流

下面的每一帧都是一次 MCP 工具调用。不使用 GUI、不做后期处理,也不使用 ParaView。 标注通过 VTK 原生文本 actor 和引导线直接渲染在 3D 场景中,无需使用 Photoshop 或 matplotlib 叠加。

医学CFD热学地球科学汽车
医学
CT 颅骨体数据
CFD
燃烧流线
热学
散热器梯度
地球科学
地震波场
汽车
DrivAerML · 8.8M 个单元
分子血管行星结构体数据
分子
H₂O 电子密度
血管
脑动脉瘤 MRA
行星
Bennu · 196K 个三角形
结构
悬臂梁 FEA 应力
体数据
热阈值
感知物理的动画

七种预设可将原始模拟数据转换为适合发表的动态效果,每种预设都会将一种渲染图元与一种物理现象关联起来。

预设物理现象渲染方式
streamline_growth拉格朗日平流粒子路径线随时间延伸
clip_sweep压力梯度截面移动裁剪平面
layer_revealCT 密度分类逐步叠加等值面
iso_sweep轨道拓扑等值扫掠并绕相机旋转
warp_oscillation结构振型按矢量进行谐波位移变形
light_orbit斜向照明旋转主光源以呈现材质
threshold_reveal特征层级从外向内逐层剥离阈值
故事构图(compose_assets)

空腔故事

检查 → 渲染 → 标注 → 构图 → 讲述。一次提示即可生成包含 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。