Metadata-Version: 2.4
Name: ssl_vista
Version: 0.2.4
Summary: A Qt-based visualization app
Author-email: Jesus Bautista Villar <jesbauti20@gmail.com>
License: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: imageio>=2.34
Requires-Dist: ipyvtklink>=0.2.2
Requires-Dist: ipywidgets>=8.0
Requires-Dist: matplotlib-inline>=0.1.6
Requires-Dist: matplotlib>=3.7
Requires-Dist: pillow>=10.0
Requires-Dist: pydantic>=2.8
Requires-Dist: pyqt5>=5.15.0
Requires-Dist: pyvista>=0.46.3
Requires-Dist: pyvistaqt>=0.11.3
Requires-Dist: ssl-simulator>=0.1.1
Requires-Dist: typer
Requires-Dist: vtk>=9.6
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.9.0; extra == 'dev'
Requires-Dist: tox-uv>=1.9; extra == 'dev'
Requires-Dist: tox>=4.18; extra == 'dev'
Requires-Dist: twine>=5.1.1; extra == 'dev'
Requires-Dist: ty>=0.0.14; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
Provides-Extra: examples
Requires-Dist: ipykernel; extra == 'examples'
Requires-Dist: ipython>=8.0; extra == 'examples'
Requires-Dist: matplotlib-inline<0.3,>=0.1.6; extra == 'examples'
Requires-Dist: matplotlib>=3.7; extra == 'examples'
Provides-Extra: lint
Requires-Dist: ruff>=0.9.0; extra == 'lint'
Provides-Extra: pre-commit
Requires-Dist: pre-commit>=3.0; extra == 'pre-commit'
Provides-Extra: release
Requires-Dist: build>=1.2.2; extra == 'release'
Requires-Dist: twine>=5.1.1; extra == 'release'
Provides-Extra: tests
Requires-Dist: pytest-cov>=4.0; extra == 'tests'
Requires-Dist: pytest-xdist>=3.5; extra == 'tests'
Requires-Dist: pytest>=7.0; extra == 'tests'
Provides-Extra: type-checking
Requires-Dist: ty>=0.0.14; extra == 'type-checking'
Provides-Extra: video
Requires-Dist: imageio-ffmpeg>=0.4; extra == 'video'
Description-Content-Type: text/markdown

# ssl_vista

Qt-based visualization app for simulation outputs generated by [https://github.com/Swarm-Systems-Lab/ssl_simulator](`ssl-simulator`).

```bash
pip install ssl_vista

sslvista --list-layouts
sslvista --list-data
sslvista --layout 2d_canvas --data-path data_uny_test
```

## What it provides

- CLI app: `sslvista`
- Configurable multi-panel layout system (`JSON`)
- Built-in PyVista plotters for 2D/3D scenes
- Optional Matplotlib plotters loaded from Python files

## Quick start (development)

```bash
git clone https://github.com/Swarm-Systems-Lab/ssl_simulator_vista
cd ssl_vista
just setup

uv run sslvista --list-layouts
uv run sslvista --list-data
uv run sslvista --layout 2d_canvas --data-path data_uny_test
```

## CLI usage

```bash
uv run sslvista --help
```

Common commands:

```bash
# bundled resources
uv run sslvista --list-layouts
uv run sslvista --list-data

# run bundled layout + bundled sample
uv run sslvista --layout 3d_canvas --data-path data_3d_test

# run custom files
uv run sslvista --layout ./my_layout.json --data-path ./my_run.csv

# start in autoplay mode
uv run sslvista --layout 2d_canvas --data-path data_uny_test --auto-play
```

## Project structure

- `src/ssl_vista/cli.py`: CLI entrypoint
- `src/ssl_vista/ui/main_window.py`: app orchestration and playback
- `src/ssl_vista/ui/grid.py`: layout loader and plotter grid
- `src/ssl_vista/plotters/`: built-in plotters and plotter base classes
- `src/ssl_vista/data/`: bundled layouts, samples, and assets

## License

MIT
