Skip to content
/ inlottie Public

Lottie Animation Parser/Renderer/Viewer in Rust

Notifications You must be signed in to change notification settings

mhfan/inlottie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build status Crates.io dependency status License: MIT

lib/tool in Rust for Lottie (Bodymovin) Animation

The original Lottie json shema file was slightly modified so that the great typify tool could run and convert it into Rust codebase. After extensive manual simplification and optimization efforts, finally, the parser seems to be very compatible to accept most of the realword sample json files of Lottie Animation without too much compromise.

A simple and straightforward viewer/renderer for Lottie animation was implemented intuitively based on femtovg, yet with many features (Text/Image/Audio/LayerEffect/etc.) to be developed/extended.

Besides, a player/renderer adapted to rive-app for Rive animation based on femtovg is also included, though is currently not capable to support clip path and blend mode.

TODO: refer to intvg, development/implement a renderer based on gpac/evg, blend2d, HTML5/Web Canvas API to support most of Lottie and Rive animation features; and a viewer based on bevy engine or Dioxus? Then, enhance capability to parse/handle dotLottie.

Usages

    cargo r -- <path-to-lottie/svg>

    cargo r -F rive  -- <path-to-rive/lottie/svg>   # see Note below

    cargo r -F vello --bin vello -- <path-to-svg>

    cargo r -F b2d -- <path-to-svg>

(with Drag & Drop support)

Note: To build for rive support, first remove comment of line "rive-rs = " in Cargo.toml. Since it isn't published on crates.io yet.

References

About

Lottie Animation Parser/Renderer/Viewer in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages