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
GenericInterfacebase 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05da183d3b15a1c5535a5262c2831ee3b51b438d1ba36ee18e3b23c478190af
|
|
| MD5 |
9551dcf51cda09ddc89745668d0e31ec
|
|
| BLAKE2b-256 |
c39631d64bcfe3aab78c949990718429da91a159fdb3be3f6289474f2bd23b8d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b0a086e48d7e284ed7b5f9b186126a28be0ec1d671a14a888749f62a118836e
|
|
| MD5 |
15f019e6bf50348295954cc81958c310
|
|
| BLAKE2b-256 |
d8385f5477624d85ddd42de3d7d0cb1d5cb85ca572bcfd4184a336470ee4bb2b
|