aether-renderer-core 0.1.5

A sacred Rust-based CLI for rendering transparent WebM/MP4/GIF from PNG sequences
aether-renderer-core-0.1.5 is not a library.
Visit the last successful build: aether-renderer-core-0.4.0

๐ŸŒŒ Aether Renderer Core

Aether Renderer Core is a lightweight, Rust-based CLI tool that converts image sequences (PNG/WebP) into transparent .webm or .mp4 videos using ffmpeg.

Built with love for artists, developers, and sacred animation workflows.

Rust FFmpeg


โœจ Features

  • โœ… Supports alpha channel export (via yuva420p)
  • โœ… Input PNG/WebP sequences with alpha from folder or .zip file
  • โœ… Export .webm with alpha (via libvpx)
  • โœ… Export .gif with alpha
  • โœ… .mp4 fallback (no alpha)
  • โœ… CLI flags for FPS, input folder, output path, format
  • โœ… Optional --fade-in and --fade-out for smooth loops

๐Ÿงช Usage

cargo run --release -- \
  --input ./frames \
  --output my.webm \
  --fps 30 \
  --format webm \
  --fade-in 1 \
  --fade-out 1

The --fade-in and --fade-out flags apply ffmpeg's fade filter under the hood. The start of the fade out is automatically calculated from the frame count and FPS.

๐Ÿ“‚ Your input folder should contain files like:

frame_0000.png
frame_0001.png
frame_0002.png
...

You can now also pass a .zip file containing frames:

cargo run -- --input ./my-frames.zip --output my.webm --fps 30 --format webm

๐Ÿ“‚ Your input folder or ZIP file must contain images named like:

frame_0000.png
frame_0001.png
frame_0002.png
...

Alpha-enabled PNGs are recommended for transparent .webm.


Convert to gif file with transparent background:

cargo run -- --input ./my-frames.zip --output my.gif --fps 30 --format gif

(Just make sure ffmpeg is installed)


๐Ÿงฐ Requirements

  • Rust & Cargo installed: https://rustup.rs
  • ffmpeg must be installed and accessible in your system path

๐Ÿงช Tests

This project contains both unit tests and integration tests. The unit tests live next to the code they verify (for example in src/utils/unzip_frames.rs) while the integration tests reside in tests/integration.rs.

Run all tests using Cargo:

cargo test

The integration suite relies on ffmpeg being available on your system. If ffmpeg is missing, the rendering test is skipped but all other tests still run.


๐Ÿ“ฆ Example ZIP

You can test the renderer using the provided frame sequence:

sacred-stars.zip

Run it like this:

cargo run -- --input examples/sacred-stars.zip --output demo.webm --fps 30 --format webm

This will generate a loopable .webm video with alpha.


โœจ Example Output

See full demo here (just started): Webpage demo

Hereโ€™s one frame from the sacred animation:

frame


โœจ Example Animation

demo

โ–ถ๏ธ Watch output video


๐Ÿ”ฎ Roadmap

  • Render .png โ†’ .webm (with alpha)
  • Support .mp4 export
  • Add bitrate / CRF quality control
  • --fade-in, --fade-out for soft loops
  • Handle errors & missing frames gracefully
  • Add optional CLI preview
  • Begin GUI version with Tauri (aether-renderer) ๐ŸŒŸ

๐ŸŒฟ License

MIT โ€” created with sacred care by @madspaaskesen


๐ŸŒ Related Projects


๐Ÿ’› Made with love by Sacred-AI

๐Ÿ™ Made with clarity and care by @mads @ @sacred-ai ๐Ÿ’›

๐ŸŒธ Powered by Rust Lang, Rust getting started

Aether Renderer Core is the sacred heart of a lightweight animation rendering toolkit. Converts frame sequences to video with love, transparency, and full creative control.