Scivianna is an open-source Python simulation geometry and result visualizer based on Holoviz Panel. It provides a powerful and flexible environment for visualizing 1D plots and 2D geometries simultaneously, with support for real-time simulation result visualization through code coupling.
Scivianna can be installed directly from PyPI using pip:
pip install sciviannaScivianna offers several optional dependency sets for specific features:
# Agent/LLM features
pip install scivianna[agent]
# PyVista 3D visualization
pip install scivianna[pyvista]
# Testing and development
pip install scivianna[test]
# Code coupling with C3PO
pip install scivianna[coupling]from scivianna.layout.gridstack import GridStackLayout
from scivianna.panel.visualisation_panel import VisualizationPanel
from scivianna.slave import ComputeSlave
# Create a slave with your data interface
slave = ComputeSlave(YourInterface)
# Create a visualization panel
panel = VisualizationPanel(slave, name="My Panel")
# Create a layout and add the panel
layout = GridStackLayout({"panel1": panel})
# Display
layout.show()Scivianna includes a scivianna_example module with several demonstration cases.
It can be opened online at: https://huggingface.co/spaces/tmoulignier/scivianna
or by running:
from scivianna_example.demo import make_demo
demo = make_demo()
demo.show()Visualize line plots and 2D geometries together in an integrated dashboard.
Connect to simulations in real-time using the C3PO coupling platform and ICOCO interface. The visualizer can receive field updates during simulation execution.
Scivianna provides flexible interfaces to read various data formats:
- MED (Salome MED file format)
- VTK (Visualization Toolkit files)
- CSV (Structured time-series data)
- Custom interfaces via
GenericInterfacebase class
Access the visualizer from a distant computer using Panel's server/client architecture. Perfect for running simulations on HPC clusters while visualizing locally.
Extensions can be added to panels for additional functionality:
- Field selectors
- Line selection tools
- File loaders
- Layout management
- AI assistant integration
Scivianna integrates with the C3PO coupling tool through the ICOCO interface:
from scivianna.coupling.icoco import LayoutProblem
from scivianna.layout.gridstack import GridStackLayout
# Create your layout
layout = GridStackLayout(panels)
# Create the coupling problem
problem = LayoutProblem(layout, title="Coupled Simulation")
# Use with C3PO
# problem.initialize()
# problem.setInputMEDDoubleField("panel_name@field_name", field_data)- Python >= 3.8, < 4
- panel
- holoviews
- bokeh / jupyter_bokeh
- matplotlib
- numpy / pandas
- shapely / geopandas
- rasterio
- icoco (for coupling features)
- panel_material_ui
The scivianna_example module provides ready-to-use examples showcasing Scivianna's capabilities:
| Example | Description |
|---|---|
| Europe Grid | Plots an interactive Europe map displaying electricity production and consumption per country with weekly time-steps. Hover over countries to see values. |
| Medcoupling | Demonstrates MED file format handling with three synchronized views. Click in one view to offset others at the click location. |
| Mandelbrot | Computes the Mandelbrot set on a 2D grid and converts it to polygons for visualization. |
Scivianna is developed by CEA (Commissariat à l'énergie atomique et aux énergies alternatives).
- Maintainer: Thibault Moulignier
- Email: Thibault.Moulignier@cea.fr