Package CFD simulation folders into compressed .liufs archives with video-encoded cutplanes
Project description
aerocfd_cli
Utilities for packaging CFD simulation folders into a single .liufs archive.
This package scans a simulation directory tree, classifies leaf folders, and then:
- Encodes cutplane image sequences (
cfd_images) into videos usingffmpeg - Converts
3d_viewsimages into.webpfor additional compression - Writes a
manifest.jsondescribing packaged content - Produces a ZIP-based
.liufsarchive - Can append a new run into an existing
.liufsarchive
Installation
Via the aerocfd package (recommended)
Install CLI mode:
pip install "aerocfd[cli]"
Install full mode (CLI + desktop app dependencies):
pip install "aerocfd[full]"
From release artifacts
Install from a wheel file (available in GitHub releases):
pip install "aerocfd-1.0b0.post7-py3-none-any.whl[cli]"
As a package dependency
Add to your requirements.txt:
aerocfd[cli]
Or in pyproject.toml:
dependencies = [
"aerocfd[cli]",
]
Requirements
- Python 3.12+
ffmpegavailable onPATH- Dependencies automatically installed:
opencv-python,rich
For development, install with optional dev dependencies from the project root:
pip install -e ".[dev]"
CLI Usage
After installation, use either:
aerocfd <source_dir> [options]
Or from the project root (if not installed using the editable install):
python -m aerocfd_cli <source_dir> [options]
Options
-o, --outputOutput.liufsfile path (default:<source>.liufs)--append-toExisting.liufsarchive to extend with the source directory as a new run--run-nameOverride the run name used when appending to an existing archive--fpsFPS for generated CFD videos (default:12)--extensionVideo extension for CFD videos (default:mp4)--webp-qualityWebP quality for3d_viewsconversion,0-100(default:80)--include-unknownCopy files from unknown leaf folders into the package
Example
aerocfd /path/to/ER26-BL-0001 \
--output /path/to/ER26-BL-0001.liufs \
--fps 12 \
--extension mp4 \
--webp-quality 75
Python API
from aerocfd_cli.packager import append_run_to_liufs, build_liufs
archive_path = build_liufs(
source_dir="/path/to/ER26-BL-0001",
output_file="/path/to/ER26-BL-0001.liufs",
fps=12,
extension="mp4",
webp_quality=80,
include_unknown=False,
)
print(archive_path)
append_path = append_run_to_liufs(
source_dir="/path/to/new_run",
archive_file="/path/to/ER26-BL-0001.liufs",
)
print(append_path)
To append with a custom run name:
append_path = append_run_to_liufs(
source_dir="/path/to/new_run",
archive_file="/path/to/ER26-BL-0001.liufs",
run_name="run_02",
)
Folder Classification
Leaf folders are identified by filename patterns:
cfd_images: files likeX10X.png,Y5Y.png,Z120Z.png3d_views: view images liketop.png,front.png,iso_left_front_top.png- otherwise:
unknown
Notes
- If
ffmpegis missing, CFD video generation is skipped. webp_qualitytrades size for quality: lower values give smaller files.- Output archive includes
manifest.jsonwith metadata and packaged file references.
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 aerocfd-1.0b0.post7.tar.gz.
File metadata
- Download URL: aerocfd-1.0b0.post7.tar.gz
- Upload date:
- Size: 48.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a117c1cfd52d837d5fa3a3273cce9c125570c0d69d4e08f91abd1895784ad06f
|
|
| MD5 |
0c47cf6125ead4ccac77f46f200f2c5c
|
|
| BLAKE2b-256 |
f2490a80386f10653097855c03c9685c77b56c478a48ed22ec68c6b06e5a84ef
|
Provenance
The following attestation bundles were made for aerocfd-1.0b0.post7.tar.gz:
Publisher:
release.yml on LiU-Formula-Student/LiUFS-AeroCFD
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aerocfd-1.0b0.post7.tar.gz -
Subject digest:
a117c1cfd52d837d5fa3a3273cce9c125570c0d69d4e08f91abd1895784ad06f - Sigstore transparency entry: 1233043698
- Sigstore integration time:
-
Permalink:
LiU-Formula-Student/LiUFS-AeroCFD@67b8ad190bac74457e361b831c7f6ecfa5a9371a -
Branch / Tag:
refs/tags/v1.0-beta-0.7 - Owner: https://github.com/LiU-Formula-Student
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67b8ad190bac74457e361b831c7f6ecfa5a9371a -
Trigger Event:
release
-
Statement type:
File details
Details for the file aerocfd-1.0b0.post7-py3-none-any.whl.
File metadata
- Download URL: aerocfd-1.0b0.post7-py3-none-any.whl
- Upload date:
- Size: 45.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0ef538be7849a60fb0d1ac8c598e6987423ac3b8fc9cf276676f4d5aaa446d3
|
|
| MD5 |
a4c8bd90b7bb9935a2817b7edf2a6b1d
|
|
| BLAKE2b-256 |
4c6a1079e2c8b973c85638e777603be3914f419ebf733f955f52c78d72d4ef7e
|
Provenance
The following attestation bundles were made for aerocfd-1.0b0.post7-py3-none-any.whl:
Publisher:
release.yml on LiU-Formula-Student/LiUFS-AeroCFD
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aerocfd-1.0b0.post7-py3-none-any.whl -
Subject digest:
b0ef538be7849a60fb0d1ac8c598e6987423ac3b8fc9cf276676f4d5aaa446d3 - Sigstore transparency entry: 1233043720
- Sigstore integration time:
-
Permalink:
LiU-Formula-Student/LiUFS-AeroCFD@67b8ad190bac74457e361b831c7f6ecfa5a9371a -
Branch / Tag:
refs/tags/v1.0-beta-0.7 - Owner: https://github.com/LiU-Formula-Student
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67b8ad190bac74457e361b831c7f6ecfa5a9371a -
Trigger Event:
release
-
Statement type: