This is the second time I've seen Lottie mentioned this week, without hearing about it before.
Maybe it's targeting a different use-case, but these things (at least on the Web) appear to be more-heavyweight and less-capable than the things people were doing 20 years ago with Macromedia/Adobe Flash, e.g. compare the animated-GIF-like examples linked from TFA ( https://thorvg-perf-test.vercel.app/ ) to the animations and games found on sites like Newgrounds. Last I checked, the latter make heavy use of emulators like Ruffle, or (based on loading screens) 3D game engines like Unity etc.
As someone who's been out of that scene for a long time: what's the overall state of things, if I want to make long, complex, 2D vector animations? (i.e. not using a 3D engine; and not rendering to video). SVG seems pretty established; but for animation, how capable is Lottie? Does anyone still use SMIL (outside of DVD menus)? Am I better off "rendering" to a big pile of JS + CSS transitions?
theknarf · 1h ago
The problem is mostly that there doesn't exist some kind of standard for animators where they can make their animations in their editor and then export it for web.
Lottie started out as a plugin for Adobe After Effects to try and let them export animations for use on Web. As far as I know this is the only "half-standardised" way of exporting animations between tools.
If you don't need animations from a dedicated animator then the better solution is using "a pile of JS + CSS transitions", and hopefully this is what Lottie for the web eventually "compiles" into.
segphault · 18h ago
An alternative to Lottie that's seriously worth considering is Rive. This is personally what I'd choose for non-trivial use cases. https://rive.app
DidYaWipe · 6h ago
Sadly, the Rive app is basically online-only. I was psyched to see it that wasn't yet more Web-based stuff, but after installing the app found you have to set up an "account" and be online all the time to use it.
What a disappointing PITA.
teucris · 19h ago
Lottie is quickly becoming the de-facto standard for UI animations, but live, long running vector animations aren’t really something I’ve seen much of - at this point, video compresses well enough that people will simply use an mp4 or webp for that use case. I know that’s not what you’re looking for but since it isn’t a common use case, I haven’t seen much support for it. Lottie is perfectly capable for this use case, provided you don’t want audio.
DidYaWipe · 6h ago
I had heard of Lottie, but also saw the post you're referring to; and it called out Lottie for being bloated and hideously inefficient.
mindbrix · 5h ago
The WebGL antialiasing quality looks poor compared to the software renderer. It could be using MSAA instead of full analytical AA.
I had to use Chrome to test it, as the viewer doesn't play on Safari.
The godot svg implementation runs on this. Ive been working on a little font editing tool for a week, but apparently the current build of Thor has a bug with rendering text…
iFire · 14h ago
Godot Engine maintainer here: What version and do you have a minimal recreation project for thorvg or godot engine? Hope we didn’t cause you too much trouble. Post a github issue and we can look into it. Thanks for using Godot Engine / Thorvg.
Fraterkes · 6h ago
I’ll write up an issue. I hope my comment didn’t come of wrong: I’ve found Godot to mostly be very stable and really well maintained. I quickly found a work-around. Thx for all the work you do!
I thought this was interesting: "the implementation maintains a lightweight profile, rendering it particularly advantageous for embedded systems."
But then it goes on to say that "interactivity" is unsupported. Embedded UI would be the first thing I'd be interested in using this for; wouldn't that be hampered by the lack of support for interactivity? I don't know what SVG "interactivity" consists of.
hermet · 1h ago
Current ThorVG itself is more like of a graphics engine; interactivity is typically handled at the toolkit level feature.
Riskofrain · 7h ago
The next step for thorvg for me would be to prove itself as useful at runtime as rive. I would really like to see a real implementation of this in game engines like Godot Engine. Just like there’s a Rive renderer for Defold. But I mean actually being able to render vectors, not that thing where you’re forced to rasterize a sprite sheet, lol.
Fraterkes · 6h ago
I’ve been using it to render SVGs at runtime inside Godot, and while I haven’t really stress-tested it Ive found it to be plenty fast on my sleepy thinkpad
MintPaw · 21h ago
Does it have antialiased masks? That's what's always prevented me from leaving Skia.
hermet · 11h ago
it has.
bschwindHN · 8h ago
What's the typical modern approach to generating antialiased masks these days?
jitl · 21h ago
Is this in the same space as Skia? I wonder what the differences in code size and performance are.
elcritch · 4h ago
I’m not sure the performance comparisons, but ThorVG gave me a binary library of 100-200 kb. Also ThorVG doesn’t have any external build requirements.
paufernandez · 16h ago
As far as I see, Skia is the full-blown thing, whereas ThorVG goes the other route, being as small and simple as possible.
rendaw · 4h ago
What doesn't Thor have though? Lottie already seems like a not-small thing, plus SVG
ratatoskrt · 17h ago
Interested in this as well. I'm currenlty using Skia (through skia-safe) but I'd be quite open to try another renderer if there are performance improvments.
0x0203 · 15h ago
Has anyone recently compared thorvg to blend2D? There's a project I want to use vector drawing for and at one point I was leaning more towards blend2d based on performance and multi threaded capabilities, but ThorVG has had a lot of active development since I last looked. Curious if they've made any significant improvements in the last couple years.
wiradikusuma · 8h ago
I can't find it on the website. What does it compare to? And what's the memory/disk footprint, let's say, for using it in a Flutter project?
hermet · 8h ago
So far, there is only one announced performance comparison. 'rlottie' is used for animation stickers in the Telegram app.
Using Devin's DeepWiki for the docs page gives me an uneasy feeling. I would rather have real docs.
tapirl · 5h ago
pros and cons vs. skia?
Does it has a stable c API?
elcritch · 4h ago
Yeah, it has a simple but full featured C API. I used it to provide the Nim wrapper for it.
cantalopes · 15h ago
Are we seriously going to reinvent Macromedia Flash now
claytongulick · 10h ago
Are we seriously arguing that any implementation of animated vector graphics is reinventing Macromedia Flash?
zem · 9h ago
quite apart from which, "flash but done right" would be amazing!
somethingsome · 18h ago
I find that gradient are really badly handled usually in svg softwares, I hope this can improve it.
In inkscape you can make only a one direction gradient, never a gradient with more than 2 points, I don't know if it is a limitation of the format itself.
Also when you have multiple gradients in one file, the software becomes extremely slow. And they don't mix correctly when overlapped with transparency.
It seems a low hanging fruit to optimize that, but I guess there is little traction
cycomanic · 17h ago
I don't quite understand what you mean. Are you talking about color points, you can add many different ones in inks ape (the UI of the gradient tool is admittedly quite bad though). Or do you mean a sort of double gradient, i.e. if goes from red to blue from left to right, but from opaque to transparent from top to bottom? I never had to use such a gradient, so not sure if it's possible.
somethingsome · 17h ago
Take a triangle, put a different color on each vertex, tri-interpolate
brulard · 16h ago
This is not supported in SVG. There was a Mesh Gradient feature planned for SVG v2.0, but AFAIK that was removed from the draft. It's a shame. Here is an article discussing that. (2018, mind you)
EDIT: I assumed this is SVG renderer, but now i think it may not be bound by SVG limitations.
KeplerBoy · 17h ago
Do you mean a curved gradient as in a rainbow?
LegionMammal978 · 16h ago
At least that can be done in SVG with a radial gradient (I don't know whether Inkscape exposes it). But for anything more complex than an ellipse, you're out of luck, short of something like a filter effect, which will be very heavyweight and also inconsistent across browsers.
Maybe it's targeting a different use-case, but these things (at least on the Web) appear to be more-heavyweight and less-capable than the things people were doing 20 years ago with Macromedia/Adobe Flash, e.g. compare the animated-GIF-like examples linked from TFA ( https://thorvg-perf-test.vercel.app/ ) to the animations and games found on sites like Newgrounds. Last I checked, the latter make heavy use of emulators like Ruffle, or (based on loading screens) 3D game engines like Unity etc.
As someone who's been out of that scene for a long time: what's the overall state of things, if I want to make long, complex, 2D vector animations? (i.e. not using a 3D engine; and not rendering to video). SVG seems pretty established; but for animation, how capable is Lottie? Does anyone still use SMIL (outside of DVD menus)? Am I better off "rendering" to a big pile of JS + CSS transitions?
Lottie started out as a plugin for Adobe After Effects to try and let them export animations for use on Web. As far as I know this is the only "half-standardised" way of exporting animations between tools.
If you don't need animations from a dedicated animator then the better solution is using "a pile of JS + CSS transitions", and hopefully this is what Lottie for the web eventually "compiles" into.
What a disappointing PITA.
I had to use Chrome to test it, as the viewer doesn't play on Safari.
https://thorvg.github.io/thorvg.viewer/
But then it goes on to say that "interactivity" is unsupported. Embedded UI would be the first thing I'd be interested in using this for; wouldn't that be hampered by the lack of support for interactivity? I don't know what SVG "interactivity" consists of.
https://lottiefiles.com/blog/working-with-lottie-animations/...
Does it has a stable c API?
In inkscape you can make only a one direction gradient, never a gradient with more than 2 points, I don't know if it is a limitation of the format itself.
Also when you have multiple gradients in one file, the software becomes extremely slow. And they don't mix correctly when overlapped with transparency.
It seems a low hanging fruit to optimize that, but I guess there is little traction
https://librearts.org/2018/05/gradient-meshes-and-hatching-t...
EDIT: I assumed this is SVG renderer, but now i think it may not be bound by SVG limitations.