I was checking out a discord server and saw a video being shared about yet another vibe-coded After Effects killer called “Animoia”, since it was compatible with Linux, I gave it a quick look, and since it ended up being a fairly long comment that might as well be a blog post, I’ll leave a copy of it here too. Sometimes, I leave huge comments on youtube and they get treated as spam, so it’s good to have a copy of it somewhere. I won’t attach screenshots of the app since I didn’t think of taking some and have now already deleted the App, it’s just going to be the raw text dump.

The comment

Alright, let’s give this a look, as someone who jumped from AE to Resolve to Autograph back to Resolve, here are all my thoughts:

first impression (before even watching the video): this is definitely vibe coded. I later checked the website and the domain is barely one month old, so it does not give off the vibe of something that has been cooking and polished for a long time. I won’t judge it for this and will treat it like any other software.

I checked the website, I appreciate the transparency with the sbom.json being made available, and this confirmed my second suspicion: this is an electron app. However, I didn’t really find any mograph-oriented dependency in there, so it doesn’t look like it’s just a dumb wrapper over someone else’s work. I don’t know exactly how it’s done but it might be three.js that’s being used to do most of the heavy lifting.

I downloaded the AppImage and launched it, I got greeted by the EULA which was very readable and permissive, good points for that.

I have the app on idle while I’m writing this, 8% cpu usage on a blank composition which is kinda rough, firefox plays a video and only reaches 2%, this happens even with idle rendering off, so I guess that’s just going to be the app’s baseline load.

Now about the app itself:

hard-agree on the coordinate representation, the dev should drop pixel coordinates while he still has the chance to make big changes like that, at least it does appear to do some recalculation when changing the comp size.

The video didn’t mention this but the software has its own ctrl+space fx console-ish implementation, which is nice.

Some effect constraints are arbitrary, noise scale is clamped from 10 to 1000, it’s fine to disallow values that don’t make sense (like zero or negatives in this case), but people should at the very least be able to bypass soft-limits by manually typing values like they can do in Fusion.

(similarly, noise brightness, contrast, and probably many other effects, have these arbitrary caps).

Speaking of high contrast noise, I noticed that fractal noise had an option to “Allow HDR result”, so I wondered if Animoia has another fusion win, which is allowing negative color value, this is particularly good when you want centered displacement. AE treats gray as the mid-point which is horrendous, Fusion treats black as the mid point by allowing negative values, and Animoia’s displacement map only goes forward, it also looks like it’s normalizing the values anyways, so it doesn’t matter if the fractal noise has an HDR output. The “parallax” switch does help in getting an easy two-directional displacement by turning the effect into a bump map on a plane so that’s pretty neat!

Ouch… I’m writing this as I try it out, and I just noticed there is no gradient effect. Please don’t make the same mistake that AE did and add a dedicated gradient effect, people WILL want to be able to keyframe gradient start/end points, Fusion is so good for this, it lets you add a gradient, and even have gradient repetition/mirroring modes. I’m very serious about this, to me, a good gradient primitive is AS important as a good fractal noise primitive. Let’s say you want venetian blinds but not centred, all you’d need to do is make a repeating gradient and then add a threshold to that, same goes for a circular gradient, that’s a very easy circular venetian blinds. Another use is using gradients as distance fields to make simple shapes, this turns blend modes into boolean operations. I think it’s really, really, really important to have good gradients.

It has polar coordinates so that’s good.

I’m now scaling a layer back and forth, and even in quarter-res, dragging scale/position in the view port makes the layer visibly lag behind my mouse. Makes it feel less responsive, I have no perfect solution for that, but maybe the selection box should update in real time while the actual render is allowed to lag behind a bit? This might make a difference in the feeling of responsiveness.

Polar coordinates has a tiny gap where the circle connects.

While the preview lags a little bit, it’s good to know that timeline operations are very responsive, I think that even electron is more performant than whatever AE’s UI is built on anyways.

I tried to zoom on the timeline, ctrl+scroll does the trick but then regular scroll is just unused…

Playback modes would be appreciated, when animating, you often want to tweak stuff and then replay the whole animation and then go through that loop again and again, so it would be good to have a playback option that’s “go back to the starting point when pausing” (AE has that with the numpad0 ram preview’s configuration, very useful).

You need alpha stroke/distance gradation as an effect, this is just like with gradients, please do not copy AE’s very stupid limitations, people should be allowed to do stroke-stacking easily.

The text tool uses text-box-bounds by default, I guess that’s fine but it’s also a CLIPPING bounding box, so I create a text object, the font is tiny by default, so I make it bigger, and then I ALSO have to adjust the textbox. I guess I understand now why “textbox boundaries” was not the default in AE. After playing around a bit more, I suppose the expected behavior was not to click, but rather to drag it to create the box, then again, we have a weird arbitrary limitation where the text stops scaling at 200pts on creation.

Again on arbitrary limitations: transform->rotation can make multiple rotations, but things like venetian blinds can’t.

Having an instancer is great, and the fact that AE still doesn’t have 2d instancing to this day is really on them.

That’s pretty much everything that came to mind after trying the software for a little bit. I think the health of this project is going to depend heavily on how the dev uses his dependencies, I don’t know exactly how the project is built, if the project is already very customized then that’s good, but if everything we’ve seen so far is just “plugging npm packages together” and the dev gets stuck when he needs to tweak and dive deeper into them, then there might be issues down the line.

So I’ll be sticking to fusion, but I send genuine good luck wishes to everyone involved in this project.

Thoughts

I don’t have many deeper thoughts on this to be fair. Only time will tell if this project will survive as some niche app or if it will fail the moment the (solo) dev needs to tweak some fundamentals of the renderer or any complex package he’s using.

If AI’s going to be as powerful as they say, then I would at least hope it kills Adobe along the way, but I wouldn’t really place my bets on Animoia to do that job.

Verdict: “meh” with a side of “good luck anyways”.