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)

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+
  • 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.0b0.post7.tar.gz (48.5 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.0b0.post7-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

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

Hashes for aerocfd-1.0b0.post7.tar.gz
Algorithm Hash digest
SHA256 a117c1cfd52d837d5fa3a3273cce9c125570c0d69d4e08f91abd1895784ad06f
MD5 0c47cf6125ead4ccac77f46f200f2c5c
BLAKE2b-256 f2490a80386f10653097855c03c9685c77b56c478a48ed22ec68c6b06e5a84ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for aerocfd-1.0b0.post7.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.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

Hashes for aerocfd-1.0b0.post7-py3-none-any.whl
Algorithm Hash digest
SHA256 b0ef538be7849a60fb0d1ac8c598e6987423ac3b8fc9cf276676f4d5aaa446d3
MD5 a4c8bd90b7bb9935a2817b7edf2a6b1d
BLAKE2b-256 4c6a1079e2c8b973c85638e777603be3914f419ebf733f955f52c78d72d4ef7e

See more details on using hashes here.

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

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