๐ชผ Aether Renderer Core
๐ฟ Aether Renderer Core is now being tested through real-world use inside the GUI.
Output behavior and flags will evolve gently based on how it breathes with the interface.
What is it?
A lightweight CLI tool for rendering frameโbased content using FFmpeg.
Aether Renderer is a minimal and sacred media compiler for image sequences โ now with smart CLI, glob support, and gentle rendering feedback ๐๏ธ
Aether Renderer Core is a lightweight, Rust-based and a sacred CLI tool to render transparent .webm, .mp4, and .gif from image sequences with alpha channel support, loop softening, and ffmpeg power.
Built with love for artists, developers, and sacred animation workflows.
โจ Features
- ๐ฆ Supports ZIP archives or folders with image sequences
- ๐ฏ Supports
frame_%04d.png(numbered) or glob patterns likescene_*.png - ๐ Live progress spinner with elapsed time (enabled via
--verbose) - ๐๏ธ Render using either
--configfile or inline CLI arguments - โจ Cross-platform (macOS, Linux, Windows)
- ๐ Minimal dependencies, no runtime server required
- ๐คซ Quiet ffmpeg output by default (
--verbose-ffmpegfor full logs)
Built like a triple-mode sacred core:
- โ
--configโ full JSON or TOML-based config - โ
--input + --outputCLI mode - โ CLI override of config (hybrid input)
Useful for overriding output resolution, fps, or preview without rewriting full config. Aiming to be super dev-friendly โ a pleasure to use.
๐ง Usage
1. Render using a config file
Supports .json or .toml formats.
2. Render using CLI args
3. Mixed mode (config + override)
CLI params override matching fields in the config.
๐งพ Supported Parameters
| Flag | Type | Default | Description |
|---|---|---|---|
--input |
Path | required | Folder or ZIP with image frames |
--output |
Path | required | Output video file path |
--app-output |
Path | (none) | Override folder for output file |
--fps |
Number | 30 | Frames per second |
--file-pattern |
String | *.png |
Glob or sequence pattern for frames |
--format |
String | webm |
Output format (webm, gif, ...) |
--fade-in |
Float | 0.0 |
Seconds to fade in |
--fade-out |
Float | 0.0 |
Seconds to fade out |
--bitrate |
String | (none) | e.g. 2500k |
--crf |
Number | (none) | e.g. 23 for x264 (lower = better) |
--preview |
Flag | false | Enables preview mode |
--verbose |
Flag | false | Prints detailed logs + progress bar |
--verbose-ffmpeg |
Flag | false | Show full ffmpeg logs |
๐ก Notes
- If
--file-patterncontains*,globmode is used automatically (-pattern_type glob). - Numbered patterns like
frame_%04d.pnguse native ffmpeg sequence. - You can include only a partial config file โ unset fields fallback to CLI or defaults.
- Designed to integrate easily with GUI and queue systems.
๐งช Advanced
- You can use
"frame_%04d.png"for ffmpeg-native sequences. "*.png"or"scene*.png"will auto-activate-pattern_type glob.- CLI
--bitrateand--crfare mutually exclusive (if both set,crftakes priority). - CLI mode will fallback to defaults where parameters are missing.
- The
--fade-inand--fade-outflags apply ffmpeg'sfadefilter under the hood. The start of the fade out is automatically calculated from the frame count and FPS.
Example Configuration File (JSON)
Save this as example_config.json and run:
๐งช Usage
๐ 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:
๐ 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:
(Just make sure ffmpeg is installed)
๐งช GUI Integration Phase
This library is now integrated with the Aether Renderer GUI (built in Tauri)
to test real-world file access, path compatibility, and command flow.
We expect small improvements based on how the frontend interacts with:
--app-outputpath resolution--previewusage and thumbnail flow- FFmpeg behavior and log control (
--verbose-ffmpeg)
Feedback from GUI testing will guide the next minor release.
๐ฆ Download prebuilt binaries
prebuilds for linux, mac & windows can be found under releases in github repository.
๐ ๏ธ Download prebuilt binaries from the Releases page.
๐งฐ Requirements
- Rust & Cargo installed: https://rustup.rs
ffmpegmust 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:
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:
Run it like this:
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:

โจ Example Animation

โถ๏ธ Watch output video
๐ฎ Roadmap
- Render
.pngโ.webm(with alpha) - Support
.mp4export - Add bitrate / CRF quality control
-
--fade-in,--fade-outfor soft loops - Handle errors & missing frames gracefully
- Add optional CLI preview
- Begin GUI version with Tauri (
aether-renderer) ๐
๐งน Code Style
This project uses Rustโs official formatting standard via cargo fmt.
Before committing or opening a pull request, please run:
๐ฟ License
MIT โ created with sacred care by @madspaaskesen
๐ชผ Aether Renderer GUI
Aether renderer GUI is out now, it uses Aether renderer core as a crate ๐ชผ
You can now convert your transparent image sequences to webm, gif or mp4 from this gui also. ๐ชผ

See git repository: https://github.com/madspaaskesen/aether-renderer-gui
Download installer from release page: https://github.com/madspaaskesen/aether-renderer-gui/releases
๐ Related Projects
- ๐๏ธ Sacred-AI
- ๐ MySiteChart
- ๐ ๏ธ MP-IT
- ๐งต DDD Favoritter
๐ 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.