Skip to main content

Scivianna: SCIentific VIsualizer for simulAtioN aNAlysis

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.

Quick Start

Basic Usage

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()

Key Features

1. Simultaneous 1D, 2D, 3D and DataFrame Visualization

Visualize line plots, 2D geometries, 3D VTK-based plots, and pandas DataFrames together in an integrated dashboard.

2. Real-Time Code Coupling

Connect to simulations in real-time using the C3PO coupling platform and ICOCO interface. The visualizer can receive field updates during simulation execution.

3. Generic Data Interfaces

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 GenericInterface base class

4. Remote Server Access

Access the visualizer from a distant computer using Panel's server/client architecture. Perfect for running simulations on HPC clusters while visualizing locally.

5. Extensible Architecture

Extensions can be added to panels for additional functionality:

  • Field selectors
  • Line selection tools
  • File loaders
  • Layout management
  • AI assistant integration

Code Coupling with C3PO

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)

Requirements

  • Python >= 3.8, < 4
  • panel
  • holoviews
  • bokeh / jupyter_bokeh
  • matplotlib
  • numpy / pandas
  • shapely / geopandas
  • rasterio
  • icoco (for coupling features)
  • panel_material_ui

Repository Organization

scivianna/
├── src/
│   └── scivianna/              # Main package source code
│       ├── agent/              # LLM/Agent integration tools
│       ├── component/          # UI components (GridStack, Overlay, SplitJS, R3F)
│       ├── coupling/           # C3PO/ICOCO coupling interface
│       ├── data/               # Data containers and workers
│       ├── extension/          # Panel extensions (axes, layout, file loader, etc.)
│       ├── icon/               # UI icons
│       ├── input_file/         # Sample input files
│       ├── interface/          # Data interfaces (MED, VTK, CSV, DataFrame, generic)
│       ├── layout/             # Layout managers (GridStack, Split)
│       ├── panel/              # Visualization panels (1D, 2D, 3D, DataFrame) and GUI
│       ├── plotter_1d/         # 1D plotting backends
│       ├── plotter_2d/         # 2D plotting backends (grid, polygon)
│       ├── plotter_3d/         # 3D plotting backends (VTK.js)
│       ├── plotter_dataframe/  # DataFrame display backend
│       └── utils/              # Utilities (mesh tools, serialization, etc.)
│
├── tests/                      # Test suite
├── utils/                      # Development utilities
└── results/                    # Example outputs

Core Modules

Module Purpose
panel/ Visualization panels with GUI controls, extensions, and overlay components (1D, 2D, 3D, DataFrame)
layout/ Layout managers for arranging multiple panels (GridStack, Split)
interface/ Data interfaces for reading various file formats (MED, VTK, CSV, DataFrame, generic)
coupling/ ICOCO-compatible interface for code coupling with C3PO
data/ Data containers and workers for handling simulation data
extension/ Extendable components for axes, field selection, file loading, etc.
plotter_1d/ 1D plotting backends using Bokeh
plotter_2d/ 2D plotting backends using Bokeh (polygon and grid modes)
plotter_3d/ 3D plotting backends using VTK.js
plotter_dataframe/ DataFrame display backend for pandas DataFrames
component/ Custom Panel components including React Three Fiber integration

Metadata

Release files for scivianna 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scivianna 0.7.0
File Size Uploaded
scivianna-0.7.0.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scivianna 0.7.0
File Interpreter ABI Platform
scivianna-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / scivianna-0.7.0.tar.gz

Download URL scivianna-0.7.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
429e701a9b6eb72cfe0dbb82881afaa7110dec73aa1b40c6915dbd503fa573bc
BLAKE2b-256 checksum
How to use checksums
10b185d11a1498a07acb31a2844b40f2a5aabfd033651d6f836137aff296a3e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / scivianna-0.7.0-py3-none-any.whl

Download URL scivianna-0.7.0-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b72a4f9f788f50655d81ff6293e66c15fa6d3950c7c5d646947101dafd2d3771
BLAKE2b-256 checksum
How to use checksums
4edab5e043f22935a4797cf0d6a6ec00818409d0616ba213dab3623c1923869c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release history Release notifications | RSS feed

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page