1# llimphi-lottie
2
3A thin bridge between `velato` (Linebender's Lottie player) and Llimphi.
4
5`llimphi-svg` covers arbitrary *static* vector art (`.desktop` icons, logos).
6`llimphi-motion` covers motion *generated by code* (tweens over the Elm loop).
7This crate covers the gap in between: **vector animation authored elsewhere** —
8the Lottie `.json` files designers export from After Effects / lottiefiles
9(animated icons, illustrations, empty states, onboarding).
10
11It is the twin of `llimphi-svg` with a time axis: `velato` parses the JSON into a
12`Composition` and, for a given `frame`, emits into the **same** `vello::Scene`
13that `llimphi-raster` uses.
14
15## Use
16
17```ignore
18use llimphi_lottie::LottieAsset;
19use std::time::Duration;
20
21// Parse ONCE (when loading the app):
22let anim = LottieAsset::from_str(include_str!("spinner.json")).expect("valid lottie");
23
24// The app keeps the elapsed time in its state and advances it with the Elm
25// loop — exactly the pattern of the simulation workers:
26// handle.spawn_periodic(Duration::from_millis(16), || Msg::Tick);
27```
28
29---
30
31Part of **llimphi** — see [llimphi](../README.md).
README.md
llimphi-lottie
A thin bridge between velato (Linebender's Lottie player) and Llimphi.
llimphi-svg covers arbitrary static vector art (.desktop icons, logos).
llimphi-motion covers motion generated by code (tweens over the Elm loop).
This crate covers the gap in between: vector animation authored elsewhere —
the Lottie .json files designers export from After Effects / lottiefiles
(animated icons, illustrations, empty states, onboarding).
It is the twin of llimphi-svg with a time axis: velato parses the JSON into a
Composition and, for a given frame, emits into the same vello::Scene
that llimphi-raster uses.
Use
use llimphi_lottie::LottieAsset;
use std::time::Duration;
// Parse ONCE (when loading the app):
let anim = LottieAsset::from_str(include_str!("spinner.json")).expect("valid lottie");
// The app keeps the elapsed time in its state and advances it with the Elm
// loop — exactly the pattern of the simulation workers:
// handle.spawn_periodic(Duration::from_millis(16), || Msg::Tick);
Part of llimphi — see llimphi.