Skip to content

PraveenGitGenius/parapilot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 한국어

parapilot

CI codecov PyPI Python License: MIT

Headless CAE post-processing MCP server for AI coding assistants.

Landing Page · PyPI · Issues

pip install mcp-server-parapilot

DrivAerML Automotive CFD 8.8M cell SA-DDES automotive CFD — single MCP tool call, no GUI

What it does

parapilot lets AI assistants (Claude Code, Cursor, Gemini CLI) render CFD/FEA simulation results without a GUI. It talks to ParaView headless or uses VTK directly to produce PNG screenshots, statistics, and animations from OpenFOAM, VTK, CGNS, and 30+ other formats.

Quick Start

Claude Code (plugin)

claude install kimimgo/parapilot

Then in a conversation:

"Render the pressure field from cavity/cavity.foam with a jet colormap"

Standalone MCP server

{
  "mcpServers": {
    "parapilot": {
      "command": "mcp-server-parapilot"
    }
  }
}

Docker (GPU headless)

docker compose up -d

Requires NVIDIA Container Toolkit for GPU rendering.

Docker (CPU-only, no GPU)

docker compose up parapilot-cpu -d

Uses OSMesa software rendering — works on any machine without a GPU.

Examples

See examples/ for complete workflow pipelines:

  • thermal_analysis.json — Conjugate heat transfer post-processing (8 steps)

Tools (18)

Tool Description
inspect_data File metadata — fields, timesteps, bounds
render Single-field PNG screenshot
slice Cut-plane visualization
contour Iso-surface visualization
clip Clipped region visualization
streamlines Vector field flow visualization
cinematic_render Publication-quality render (SSAO, PBR, 3-point lighting)
compare Side-by-side or diff comparison of two datasets
probe_timeseries Sample field at a point across timesteps
batch_render Render multiple fields in one call
preview_3d Export to glTF/glB for interactive 3D viewing
extract_stats Min/max/mean/std for fields
plot_over_line Sample values along a line
integrate_surface Force/flux integration over surfaces
animate Time series or camera orbit animation
split_animate Multi-pane synchronized animation (GIF)
execute_pipeline Full pipeline DSL for advanced workflows
pv_isosurface DualSPHysics bi4 → VTK surface mesh

Resources (11)

URI Content
parapilot://formats Supported file formats and readers
parapilot://filters Available filter parameters
parapilot://colormaps Colormap presets
parapilot://cameras Camera angle presets + auto-camera PCA
parapilot://cinematic Lighting, materials, backgrounds, quality presets
parapilot://representations Render representations
parapilot://case-presets Domain-specific case presets
parapilot://physics-defaults Physics-aware rendering defaults
parapilot://pipelines/cfd CFD pipeline examples
parapilot://pipelines/fea FEA pipeline examples
parapilot://pipelines/split-animate Split animation examples

Showcase

All renders below are generated by single MCP tool calls — no post-processing.

CT Skull Streamlines Dragon
Bone isosurface (contour) Carotid blood flow (streamlines) Stanford Dragon (render)
CT Volume Office Flow Armadillo Clip
Volume ray-casting (render) HVAC airflow (streamlines) Mesh clip (clip)

12 engineering domains — Marine, Mechanical, Aero, Electronics, Biomedical, Geoscience, Environmental, Chemical, Structural, Naval, Scientific, Urban.

See the full gallery at kimimgo.github.io/parapilot.

Architecture

┌─────────────────────────────────────────────┐
│  AI Assistant (Claude / Cursor / Gemini)    │
│  ↕ MCP protocol (stdio)                    │
├─────────────────────────────────────────────┤
│  parapilot MCP Server (FastMCP)             │
│  ├── tools/     18 MCP tools                │
│  ├── resources/ 11 MCP resources            │
│  └── prompts/   3 MCP prompts               │
├─────────────────────────────────────────────┤
│  Engine Layer (VTK direct API)              │
│  ├── readers    OpenFOAM, VTK, CGNS, ...    │
│  ├── filters    Slice, Contour, Clip, ...   │
│  ├── renderer   Off-screen VTK rendering    │
│  ├── camera     Preset + custom positions   │
│  ├── colormaps  Scientific color schemes    │
│  ├── overlay    Scalar bars, labels, text   │
│  ├── physics    Auto-detect field types     │
│  └── export     PNG, VTK, CSV output        │
├─────────────────────────────────────────────┤
│  Core Layer                                 │
│  ├── compiler   Pipeline → VTK script       │
│  ├── runner     Local / Docker execution    │
│  ├── registry   Filter & format schemas     │
│  └── output     Result collection           │
└─────────────────────────────────────────────┘

Workflow

inspect_data → render / slice / contour → extract_stats → animate
  1. Inspect — discover fields, timesteps, bounds
  2. Visualize — render, slice, contour, clip, streamlines
  3. Extract — statistics, line plots, surface integrals
  4. Animate — time series or multi-pane comparison

Supported Formats

OpenFOAM (.foam), VTK (.vti/.vtp/.vtu/.vtm), CGNS (.cgns), Ensight (.case), Exodus (.exo), STL (.stl), PLY (.ply), OBJ (.obj), and 30+ more via VTK readers.

Contributing

We welcome contributions! Check out our open issues — especially those labeled good first issue.

git clone https://github.com/kimimgo/parapilot
cd parapilot
pip install -e ".[dev]"
pytest                     # 748 tests
ruff check src/ tests/     # lint
mypy src/parapilot/        # type check

See CONTRIBUTING.md for detailed setup, architecture guide, and how to add new filters/readers.

vs Alternatives

parapilot LLNL/paraview_mcp Kitware/vtk-mcp
Rendering Headless VTK + ParaView GUI-attached only None (docs search)
Tests 748 0 0
Docker GPU (EGL) No No
MCP Tools 18 23 3
Plugin Claude Code plugin No No

Known Limitations

  • Validated with VTK example datasets only — large-scale industrial data (100M+ cells) is unverified
  • Headless rendering means no real-time visual feedback to catch LLM-generated parameter errors
  • No simulation steering, multi-physics coupling, or uncertainty quantification
  • When ParaView natively integrates MCP, this wrapper approach may become redundant

Contributors

kimimgo
kimimgo
NikanEidi
NikanEidi

License

MIT

About

Headless CAE post-processing MCP server for AI coding assistants. 18 tools, 627 tests. Render CFD/FEA from your terminal.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 82.9%
  • Astro 6.6%
  • Jinja 6.1%
  • TypeScript 2.5%
  • HTML 1.0%
  • CSS 0.3%
  • Other 0.6%