Lottie parser and renderer for Nim using FigDraw and Pixie
Nim
6
58 commits
updated Aug 30, 2026
Small Lottie loader + renderer for Nim, focused on producing Figdraw render lists.
Status: this is a minimal renderer. It currently supports filled ellipse groups (Lottie gr + el + fl + tr) and ignores other shape types. The API and coverage are still evolving.
https://github.com/user-attachments/assets/ee11e778-e6d2-4b3b-86cb-42a5072ad5fa
https://github.com/user-attachments/assets/8e73c676-34df-44be-aa27-b9ec4fc70733
This is a Nimble package. From the repo root:
nimble install
Dependencies (from lotty.nimble):
Load a Lottie JSON file and render a frame to a Figdraw Renders list:
import lotty/loader
import lotty/render
let anim = loadLottieFile("data/bouncy_ball.json")
var renderer = initLottieMtsdfRenderer(anim)
let renders = renderer.renderLottieFrame(0.0)
You can then pass renders into a Figdraw renderer (see the example below).
There is a complete Windy example in examples/figdraw_lottie_bouncy_ball.nim that:
data/bouncy_ball.jsonrenderLottieFrameRun it with Nimble or directly with Nim:
nim r examples/figdraw_lottie_bouncy_ball.nim
If you prefer the Windex backend, build with -d:useWindex.
Example Lottie assets are in data/. The example expects data/bouncy_ball.json and data/Ubuntu.ttf to be present.
MIT (see lotty.nimble).
138 followers · starred Feb 2026
Nim
100.0%
Lottie parser and renderer for Nim using FigDraw and Pixie
Nim
6
58 commits
updated Aug 30, 2026
Small Lottie loader + renderer for Nim, focused on producing Figdraw render lists.
Status: this is a minimal renderer. It currently supports filled ellipse groups (Lottie gr + el + fl + tr) and ignores other shape types. The API and coverage are still evolving.
https://github.com/user-attachments/assets/ee11e778-e6d2-4b3b-86cb-42a5072ad5fa
https://github.com/user-attachments/assets/8e73c676-34df-44be-aa27-b9ec4fc70733
This is a Nimble package. From the repo root:
nimble install
Dependencies (from lotty.nimble):
Load a Lottie JSON file and render a frame to a Figdraw Renders list:
import lotty/loader
import lotty/render
let anim = loadLottieFile("data/bouncy_ball.json")
var renderer = initLottieMtsdfRenderer(anim)
let renders = renderer.renderLottieFrame(0.0)
You can then pass renders into a Figdraw renderer (see the example below).
There is a complete Windy example in examples/figdraw_lottie_bouncy_ball.nim that:
data/bouncy_ball.jsonrenderLottieFrameRun it with Nimble or directly with Nim:
nim r examples/figdraw_lottie_bouncy_ball.nim
If you prefer the Windex backend, build with -d:useWindex.
Example Lottie assets are in data/. The example expects data/bouncy_ball.json and data/Ubuntu.ttf to be present.
MIT (see lotty.nimble).
138 followers · starred Feb 2026
Nim
100.0%