Skip to main content

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 using ffmpeg
  • Converts 3d_views images into .webp for additional compression
  • Writes a manifest.json describing packaged content
  • Produces a ZIP-based .liufs archive
  • Can append a new run into an existing .liufs archive

Installation

Via the aerocfd package (recommended)

PyPI project page: https://pypi.org/project/aerocfd/

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.0.0-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+
  • ffmpeg available on PATH
  • 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, --output Output .liufs file path (default: <source>.liufs)
  • --append-to Existing .liufs archive to extend with the source directory as a new run
  • --run-name Override the run name used when appending to an existing archive
  • --fps FPS for generated CFD videos (default: 12)
  • --extension Video extension for CFD videos (default: mp4)
  • --webp-quality WebP quality for 3d_views conversion, 0-100 (default: 80)
  • --include-unknown Copy 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 like X10X.png, Y5Y.png, Z120Z.png
  • 3d_views: view images like top.png, front.png, iso_left_front_top.png
  • otherwise: unknown

Notes

  • If ffmpeg is missing, CFD video generation is skipped.
  • webp_quality trades size for quality: lower values give smaller files.
  • Output archive includes manifest.json with metadata and packaged file references.

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

aerocfd-1.0.0.tar.gz (57.7 kB view details)

Uploaded Source

Built Distribution

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

aerocfd-1.0.0-py3-none-any.whl (51.4 kB view details)

Uploaded Python 3

File details

Details for the file aerocfd-1.0.0.tar.gz.

File metadata

  • Download URL: aerocfd-1.0.0.tar.gz
  • Upload date:
  • Size: 57.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aerocfd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8f5e08f36946888cdceadac628201d4876d53765fd281b397ce20fafb9638a24
MD5 88e1868b52c8d6e7d6ae39b3ea1b82b6
BLAKE2b-256 652796e26373dbc23c6f4a755d19bc03e1c5382879e2e8007c2722f84109049e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerocfd-1.0.0.tar.gz:

Publisher: release.yml on LiU-Formula-Student/LiUFS-AeroCFD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aerocfd-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aerocfd-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 51.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aerocfd-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b48b359cd3c1e12ba142867238397ac4cf3626d1312bd6d197b653e9c38ac599
MD5 1c8511598ebca88b0ab2e7bae61a4b95
BLAKE2b-256 92a92f1cab7bb007639dee8d60073f3167f12ec1a262cfed434824e0a9da27ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerocfd-1.0.0-py3-none-any.whl:

Publisher: release.yml on LiU-Formula-Student/LiUFS-AeroCFD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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