lava_phoenix 0.0.1
lava_phoenix: ^0.0.1 copied to clipboard
A cross-platform Flutter renderer for Lava animation format, compatible with iOS, Android, and Web.
๐ฅ LavaPhoenix #
LavaPhoenix is a cross-platform Flutter renderer for Lava animation format. It enables efficient tile-based animation playback with real-time performance โ powered purely by Flutter rendering, without using platform views.
Designed to work seamlessly on iOS, Android, and Web.
โจ Features #
- ๐ Real-time playback of Lava animations
- ๐จ Pure Flutter rendering via
CustomPainter - ๐ฆ Parses
.lava/.olavaanimation manifests and tile atlases - ๐ฑ Cross-platform: iOS, Android, Web
- ๐งต Async loading and full playback control via
LavaController - ๐ก No native plugins or platform views required
๐ Getting Started #
Add to your pubspec.yaml:
dependencies:
lava_phoenix: ^0.1.0
๐งฐ Usage #
1. Prepare your assets #
Place your Lava animation files inside your assets/ folder, e.g.:
assets/
โโโ animations/
โโโ fire_loop/
โโโ manifest.json
โโโ image_1.avif
โโโ image_2.avif
โโโ ...
Update your pubspec.yaml:
flutter:
assets:
- assets/animations/fire_loop/
2. Load and play the animation #
final controller = LavaController();
@override
void initState() {
super.initState();
controller.loadLavaAsset('assets/animations/fire_loop');
controller.play();
}
3. Display the animation #
LavaView(controller: controller)
๐ธ Example #
A full working example can be found in the repository:
OpenLava/Example/LavaPhoenixExample
You can run it via:
flutter run -d chrome
flutter run -d ios
flutter run -d android
๐ File Format #
This package plays back Lava animations packaged as a folder containing:
manifest.json: animation metadata and frame diffs- atlas frames: referenced in the manifest by filename
Compatible with .lava or .olava zip-style folders unpacked manually.
๐ค Contributing #
Contributions are welcome!
Feel free to open an issue or submit a PR if youโd like to improve rendering performance, support new features, or extend platform support.
๐ License #
MIT License ยฉ 2025 AlexStrNik