We’re building new dotLottie (.lottie) players to fix and improve current issues within the Lottie community. In this article, we'll dive deep into building the next generation of dotLottie players, from developing a new rendering engine to writing cross-platform players in Rust. We're excited to bring the community along for the ride!

If you’re not familiar with the .lottie file format, you can check out https://dotlottie.io for more information on what it’s all about!

Why are we building new players?

One issue that has plagued the Lottie community is feature parity. You might create a Lottie animation that renders flawlessly on the web, but the experience often varies on iOS or Android. Our solution? Integrating the ThorVG vector graphics engine. ThorVG now supports rendering Lottie animations and this is great news because ThorVG is cross-platform. This means the same rendering logic you apply on the web is now consistent on mobile platforms and more. ThorVG's integration ensures uniformity in your animations across all platforms, a vital step towards resolving the feature parity issue.

The second reason we’re building new players is to address the fragmentation in player codebases. Lottie-web, Android and iOS are all maintained by different people and implement their own subset of features. We’re looking to create our players from a main core codebase which we can then port to web, mobile and various other frameworks. This leads us to our next point.

How we’re building the next generation of Lottie players

To benefit from the cross-platform aspect of ThorVG, we’re going to be creating the core of our new player in Rust. Using Rust, we can centralize the core functionality of the player and create bindings for various platforms and frameworks, facilitating the integration of dotLottie animations! Having a single core codebase will also help speed up the development time of new features, eliminating the need to reimplement new features for every platform.

A new player written in Rust will provide a solid foundation to power our players. We’re at the early stages of getting our Rust core ported to different platforms, but once we have a more stable codebase we’re excited to bring dotLottie to many more platforms and frameworks than ever before.

Community

With the creation of these new players, we’re going to be involving the community a lot more throughout the journey. We’re going to be releasing the players publicly at the very early stages of their development and iterate quickly. Our goal is to create a collaborative environment where users can suggest features and actively participate in the development. If you’re looking to contribute to an open-source project and have an interest in animation and motion graphics, now is the perfect time to begin.

Conclusion

With new players underway, we aim to tackle existing issues within the Lottie community with a two-pronged approach ensuring feature parity across platforms and unifying fragmented player codebases. If you want to learn more about the development of the dotLottie player check out our blog post here as well as more about ThorVG here.

Community involvement will be the cornerstone of this project where we will share frequent updates and welcome feedback and collaboration. We’re excited to bring these projects to life and hope to see you on GitHub!