Skip to main content

Python generic module to visualize simulation geometries and results.

Project description

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 and 2D Visualization

Visualize line plots and 2D geometries 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, generic)
│       ├── layout/             # Layout managers (GridStack, Split)
│       ├── panel/              # Visualization panels and GUI
│       ├── plotter_1d/         # 1D plotting backends
│       ├── plotter_2d/         # 2D plotting backends (grid, polygon)
│       └── 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
layout/ Layout managers for arranging multiple panels (GridStack, Split)
interface/ Data interfaces for reading various file formats (MED, VTK, CSV)
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/ & plotter_2d/ Plotting backends using Bokeh and Matplotlib
component/ Custom Panel components including React Three Fiber integration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scivianna-0.5.10.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scivianna-0.5.10-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file scivianna-0.5.10.tar.gz.

File metadata

  • Download URL: scivianna-0.5.10.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for scivianna-0.5.10.tar.gz
Algorithm Hash digest
SHA256 b05da183d3b15a1c5535a5262c2831ee3b51b438d1ba36ee18e3b23c478190af
MD5 9551dcf51cda09ddc89745668d0e31ec
BLAKE2b-256 c39631d64bcfe3aab78c949990718429da91a159fdb3be3f6289474f2bd23b8d

See more details on using hashes here.

File details

Details for the file scivianna-0.5.10-py3-none-any.whl.

File metadata

  • Download URL: scivianna-0.5.10-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for scivianna-0.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 8b0a086e48d7e284ed7b5f9b186126a28be0ec1d671a14a888749f62a118836e
MD5 15f019e6bf50348295954cc81958c310
BLAKE2b-256 d8385f5477624d85ddd42de3d7d0cb1d5cb85ca572bcfd4184a336470ee4bb2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page