Snapshot, frame, and video renderer for PyVista-based dense-flow visualization with Nek5000 support
Project description
quadros is a Python CLI package for rendering snapshots into checked frame sets and videos. It can run locally, over SSH, inside containers, or from scheduler jobs without copying scripts into case directories. Nek5000 is the format with dedicated support; other VTK-readable formats are supported via PyVista.
Features
- Render one snapshot or a globbed case directory of snapshots (Nek5000 with dedicated support).
- Keep JSON render configs compatible with the original
auto_snpworkflow. - Write manifests, logs, events, frames, and encoded movies under a run output directory.
- Inspect render manifests before deleting dense snapshots.
- Extract camera settings from ParaView
.pvsmstate files. - Gate NekStab omega-R renders with explicit field aliases and a rebuild hint.
Install
With uv (recommended for local development)
git clone https://github.com/openfluids/quadros.git
cd quadros
uv venv .venv
. .venv/bin/activate
uv pip install -e .
quadros doctor
For development tools and tests:
uv pip install -e . --group dev
python -m pytest
With standard venv + pip
git clone https://github.com/openfluids/quadros.git
cd quadros
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
quadros doctor
For development tools and tests:
python -m pip install -e . pytest build twine
python -m pytest
For a cluster/native rendering setup, see docs/native-stack.md.
CLI
quadros doctor
quadros render snapshot.f00001 --config configs/render_scenes_example.json
quadros render-many --case-dir /path/to/case --pattern 'sphere0.f*' --config render.json
quadros inspect manifest.json
quadros encode --frames frames/ --out movies/movie.mp4
quadros extract-camera qp_comp.pvsm --out camera.json
By default, render outputs are written in loco under SNAPSHOT_PARENT/quadros for render and CASE_DIR/quadros for render-many. Use --out only when you intentionally want a different output root.
--check enables an omega-R preflight gate for configs that declare field_aliases for omR*/omega fields. If the configured payload is absent, the command points the operator to rebuild the NekStab case with ifvox = .true. and mks <CASE>.
Package layout
src/quadros/— importable package and public CLI entrypoint.configs/— JSON render config examples compatible with the original workflow.slurm/render_snapshots.sbatch— generic Slurm starter template; copy it and add cluster-specific account, partition, module, or container directives as needed.tests/— packaging and CLI smoke tests.docs/— native-stack notes and operating guidance.PLAN.md— source migration plan.
Validation
python -m compileall src tests
python -m quadros --help
quadros doctor
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 quadros-0.1.1.tar.gz.
File metadata
- Download URL: quadros-0.1.1.tar.gz
- Upload date:
- Size: 742.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67177d1dcc277aef093a6b49fca119d4816922593453e4809826d4fc3c8f54e4
|
|
| MD5 |
d596e1782f2f7e925d7fbafd95d95981
|
|
| BLAKE2b-256 |
6f1dd5a8cecc889862de6a08d6da05d87de84a08961d1d9497ed5be8d5eda525
|
Provenance
The following attestation bundles were made for quadros-0.1.1.tar.gz:
Publisher:
release.yml on openfluids/quadros
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quadros-0.1.1.tar.gz -
Subject digest:
67177d1dcc277aef093a6b49fca119d4816922593453e4809826d4fc3c8f54e4 - Sigstore transparency entry: 2310393731
- Sigstore integration time:
-
Permalink:
openfluids/quadros@56dca28eae2d6c70712c11cb45d75b4ace45e2fb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/openfluids
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@56dca28eae2d6c70712c11cb45d75b4ace45e2fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file quadros-0.1.1-py3-none-any.whl.
File metadata
- Download URL: quadros-0.1.1-py3-none-any.whl
- Upload date:
- Size: 39.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5af876a1563cf44adf462ed8137d1f8f239fadef02795c9162c1e92680968faf
|
|
| MD5 |
f6e55ffee23fb7e954031bcdd955c757
|
|
| BLAKE2b-256 |
f6579747f36c27f7fbc625185004bc84cf1bcb79d591a6d28b65f1ed8a63bcab
|
Provenance
The following attestation bundles were made for quadros-0.1.1-py3-none-any.whl:
Publisher:
release.yml on openfluids/quadros
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quadros-0.1.1-py3-none-any.whl -
Subject digest:
5af876a1563cf44adf462ed8137d1f8f239fadef02795c9162c1e92680968faf - Sigstore transparency entry: 2310393762
- Sigstore integration time:
-
Permalink:
openfluids/quadros@56dca28eae2d6c70712c11cb45d75b4ace45e2fb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/openfluids
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@56dca28eae2d6c70712c11cb45d75b4ace45e2fb -
Trigger Event:
push
-
Statement type: