viznoir

VTK is all you need.

Cinema-quality science visualization for AI agents.

viznoir is an open-source MCP server that connects AI coding assistants to VTK-powered scientific visualization. It provides 22 tools for headless rendering, slicing, contouring, and animating CFD, FEA, and SPH simulation data — replacing manual ParaView workflows with a single prompt. Built on the Model Context Protocol, it works with Claude, Cursor, Windsurf, and any MCP-compatible client.

pip install mcp-server-viznoir
Works with Claude Code Cursor Windsurf Gemini CLI any MCP client
Lid-driven cavity flow: physics decomposition with LaTeX equations and cinematic renders

One prompt → physics analysis → cinematic renders → LaTeX → story

22
MCP Tools
1489+
Tests
10
Domains
97%
Coverage

Architecture

01
MCP Server 22 tools · 12 resources · 4 prompts

FastMCP native integration

02
VTK Engine readers · filters · renderer · camera

EGL/OSMesa headless · cinematic lighting · PBR

03
Physics Layer topology · context · guard

Vortex detection · stagnation points · BC parsing

04
Animation 7 presets · 17 easings · transitions

Physics-driven · timeline · compositor · video

05
Output PNG · WebP · MP4 · GLTF · LaTeX

50+ input formats via VTK + meshio

USE CASES

10 domains, one tool

viznoir is an AI-powered MCP server for scientific visualization across engineering, medical, molecular, and geoscience domains.

CFD Post-Processing

Render pressure fields, velocity streamlines, and wall shear stress from OpenFOAM, Fluent, and CGNS cases. viznoir auto-detects CFD domains and applies appropriate colormaps and camera angles.

"Show pressure distribution on my OpenFOAM cavity case with cinematic lighting"

OpenFOAM, CGNS, Fluent, pressure, velocity, streamlines, wall shear stress

FEA Visualization

Visualize von Mises stress, displacement, and mode shapes from Abaqus, Nastran, and CalculiX results. Automatic deformation scaling and yield detection.

"Render von Mises stress on the cantilever beam with deformation overlay"

Abaqus, Nastran, CalculiX, stress, displacement, von Mises, mode shapes

SPH / Particle Methods

Animate DualSPHysics particle data with velocity coloring, free surface extraction, and time-series comparison. Supports .bi4 native format.

"Animate the sloshing simulation colored by velocity magnitude"

DualSPHysics, SPH, sloshing, particle visualization, free surface

Medical Imaging

Volume render CT and MRI scans with clinically appropriate transfer functions. Supports VTI, DICOM, and NIfTI formats with 6 built-in presets.

"Volume render the brain phantom with bone-skin transparency preset"

DICOM, NIfTI, CT scan, MRI, volume rendering, brain, organ

Molecular Visualization

Render protein structures from PDB files with ball-and-stick or surface representations. Electron density maps as isosurfaces.

"Show the hemoglobin protein structure with electron density contour"

PDB, protein structure, electron density, molecular surface

Geoscience & Climate

Slice through seismic volumes, plot sea surface temperature from NetCDF, and visualize earthquake data with geographic projections.

"Slice the seismic volume at depth 2km and overlay earthquake locations"

NetCDF, seismic, ocean temperature, climate, SST, earthquake

COMPARISON

viznoir vs ParaView vs PyVista

How does viznoir compare to traditional scientific visualization tools? viznoir is the only tool purpose-built for AI agent workflows via MCP.

Feature viznoir ParaView PyVista
AI agent integration Native MCP pvpython scripts Python API
Setup pip install (1 line) GUI download + Python config pip install
Headless rendering EGL built-in pvserver + xvfb xvfb required
Cinematic quality 3-point lighting, SSAO, FXAA, PBR OSPRay (separate) Basic lighting
Domain detection Auto (CFD/FEA/SPH) Manual Manual
Natural language Prompt-driven No No
File formats 50+ via VTK + meshio 50+ native 20+ via VTK
License MIT BSD-3 MIT
QUICK START

Get started in 3 steps

01

Install

One-line pip install

pip install mcp-server-viznoir

Or with Claude Code:

claude install kimimgo/viznoir
02

Configure

Add to your MCP config

.mcp.json
{
  "mcpServers": {
    "viznoir": {
      "command": "mcp-server-viznoir"
    }
  }
}
03

Use

Prompt in natural language

"Analyze cavity.foam, then compose
a story with LaTeX equations"
Compatible with Claude Code Cursor Windsurf Gemini CLI
FAQ

Frequently asked questions

What is viznoir?

+

viznoir is an open-source MCP (Model Context Protocol) server for scientific visualization. It connects AI coding assistants like Claude, Cursor, and Windsurf to VTK-powered headless rendering, enabling engineers and researchers to generate publication-quality visualizations of simulation data through natural language prompts instead of manual GUI workflows.

What is an MCP server for scientific visualization?

+

An MCP server for scientific visualization exposes visualization tools (rendering, slicing, contouring, animation) as structured API endpoints that AI models can call directly. viznoir is currently the only MCP server purpose-built for engineering simulation post-processing, supporting CFD, FEA, SPH, medical imaging, and molecular visualization.

How does viznoir compare to ParaView?

+

ParaView is a powerful open-source visualization application with a GUI and Python scripting (pvpython). viznoir uses VTK directly (the same rendering engine as ParaView) but is designed for AI agent workflows: headless EGL rendering, MCP protocol integration, automatic domain detection, and cinematic-quality output — all without installing ParaView or running a display server.

Does viznoir replace VTK or ParaView?

+

No. viznoir is built on VTK and provides an AI-friendly interface to VTK capabilities. It complements ParaView for automated, headless, AI-driven post-processing workflows. For interactive exploration, ParaView remains the standard. For batch processing and AI-driven analysis, viznoir adds prompt-based control.

What simulation formats does viznoir support?

+

viznoir supports 50+ file formats through VTK and meshio: OpenFOAM (.foam), CGNS, Fluent (.cas/.msh), Abaqus (.inp), Nastran (.bdf/.op2), DualSPHysics (.bi4), VTK/VTU/VTP, STL, OBJ, PLY, glTF, DICOM, NIfTI, NetCDF, PDB, and more. It auto-detects the simulation domain (CFD, FEA, SPH) and applies appropriate visualization settings.

Can viznoir do CFD post-processing?

+

Yes. viznoir provides specialized CFD post-processing capabilities: pressure and velocity field rendering, streamline visualization, wall shear stress mapping, boundary layer analysis, and vortex detection. It reads OpenFOAM, CGNS, and Fluent cases directly and auto-detects CFD-specific fields like p, U, k, epsilon, and nut.

How does viznoir handle headless rendering?

+

viznoir uses VTK with EGL (GPU) or OSMesa (CPU) for fully headless rendering — no X server, no display, no GUI needed. This makes it ideal for servers, CI/CD pipelines, Docker containers, and AI agent environments. A singleton render window is reused across requests and automatically recycled every 100 renders to prevent GPU memory leaks.

What AI assistants work with viznoir?

+

viznoir works with any MCP-compatible AI client: Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, and others. It exposes 22 tools through the standard Model Context Protocol, so any client that supports MCP can use viznoir for scientific visualization.