A lightweight Lottie animation viewer powered by GPUI and ThorVG.
🌐 English | العربية
Note
🤖 AI Disclosure: Most of the codebase in this project was generated by AI coding agents with minimal human intervention. Human involvement was limited to high-level direction, testing, and integration.
Tayf is a high-performance native desktop application designed for designers and developers who need to preview, inspect, control, and export Lottie animations. Built entirely in native Rust using GPUI (GPU-accelerated UI engine from Zed) and ThorVG (high-performance vector graphics engine), Tayf starts instantly, consumes minimal memory, and renders animations with silky-smooth precision.
- Multi-format Support: Open standard Lottie JSON (
.json) and binary DotLottie package (.lottie) files - Multiple Input Methods: File dialog, command-line arguments (
tayf <path>), and drag-and-drop - Playback Controls: Play/pause, step frame by frame, loop toggle, and speed adjustment (
0.5x,1.0x,1.5x,2.0x) - Frame Scrubbing: Interactive timeline scrubber displaying frame count and timestamps
- GIF Export: Fast, high-quality animated GIF export with custom resolution, frame rate, transparency, and looping
- MP4 Video Export: H.264 video rendering with adjustable CRF quality and frame rates
- Theme-aware Background Colors: Customize canvas background separately for light and dark themes with color preset swatches
- System Theme Integration: Seamless switching between System, Light, and Dark modes
- Metadata Display: Comprehensive file details:
- Dimensions (original width/height)
- Frame rate (FPS)
- Duration and total frames
- File size and format
- English & Arabic: Native RTL layout and full Arabic localization powered by
rust-i18n - Runtime Switching: Instant language toggle from Preferences
| Shortcut | Action |
|---|---|
Space |
Toggle play/pause |
← / → |
Step 1 frame backward / forward |
Shift+← / Shift+→ |
Step 10 frames backward / forward |
Ctrl+W / Cmd+W / Esc |
Close file in preview / Close modal |
Ctrl+Q / Cmd+Q / Alt+F4 |
Quit application |
Ctrl+O / Cmd+O |
Open file dialog |
Ctrl+, / Cmd+, |
Open Preferences |
Ctrl+E / Cmd+E |
Open Export dialog |
Ctrl+B / Cmd+B |
Toggle Sidebar |
F1 |
Open About dialog |
| Category | Technology |
|---|---|
| GUI Framework | GPUI (GPU-accelerated 2D UI) |
| Vector / Lottie Engine | ThorVG (High-performance vector rasterization) |
| Language | Rust |
| Export Formats | Animated GIF (gif crate) & MP4 (ffmpeg) |
| Localization | rust-i18n (English & Arabic with RTL) |
| Package Manager | cargo |
- Rust toolchain (1.80+ recommended)
- C++ compiler (for building ThorVG C++ backend)
# Clone repository
git clone https://github.com/amr3k/tayf.git
cd tayf
# Run in development mode
cargo run
# Open a specific file
cargo run -- /path/to/animation.json
# Run unit tests
cargo test
# Build optimized release binary
cargo build --releaseThe resulting standalone binary is located at target/release/tayf.
Configuration is automatically stored in the OS app configuration directory:
| Platform | Path |
|---|---|
| Linux | ~/.config/tayf/configurations.json |
| macOS (coming soon) | ~/Library/Application Support/me.a3k.tayf/configurations.json |
| Windows (coming soon) | %APPDATA%\a3k\tayf\config\configurations.json |
This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.
Made with ❤️ by Amr Khamis
