Live data from Hacker News

Every Frame Perfect

tonsky.me

211–220 of 293 posts

Re: Every Frame Perfect

#211
post #128

Earlier quoted context omitted.

That is exactly what I'm talking about, though. This is not what is happening with buggy computer UI animations: these are not carefully crafted to look better in motion, they're actually only considered acceptable because it's kind of difficult to see the mistakes in the animation. Whereas cartoon animating, you could argue the details don't make logical sense, but that's only to someone who doesn't understand the p…

That's not what TFA is about though. Look at the youtube example - it has two pieces of UI animating from from a start point to an end point, and the paths are such that they momentarily overlap. There's nothing buggy or janky about it in motion; TFA is just saying that if you ignore the motion and take a screenshot mid-transition it looks odd. Same complaint as what GP describes, and silly for the same reasons.

It's what I personally took away from it. I was also someone who had the same feeling when I first heard Wayland's "every frame is perfect" mentality. I thought, "This is probably a good idea on multiple levels."

I agree the YouTube example isn't the worst one, but also at the same time, I don't agree with you that there is nothing buggy or janky about it.

https://tonsky.me/blog/every-frame-perfect/youtube@1x.png?t=...

There is no logical reason for there to be two copies of the video rendered at once. The video is literally resizing into position, while all of the UI elements shift around it. Why would there be more than one copy of the thing that is resizing?

I will relent on only one thing: "If I take a screenshot of your app at any moment, it must make sense" is too strong of a statement on its own. The context that it is a screenshot of an animation is important, just like cartoon inbetween frames. However, I think if you're being generous with interpretation you can allow this to be implied.

Re: Every Frame Perfect

#212
post #57

Earlier quoted context omitted.

Games are for fun. Wasting time in a game is fine, that's what it is for. (edit: not saying that pejoratively) Other applications are to do things. They should do the thing and get out of the way as fast as possible. Animation-induced delays are fundamentally contradictory with that; they waste the user's time instead of doing the thing.

I think the default "product manager wants to build flashy animation" fundamentally contradicts that, but I also don't think it's fair to apply that criticism across all animations. Good and useful animations communicate something, they're not there just to be there or to make it "pretty", which is most designers use them. But they can actually communicate intent, action, immediacy and other important things, if they…

I agree that some things have a use and can do so without getting in the way, but I think as your example illustrates it is mostly to help new or infrequent users who aren't familiar with how the system works and often comes at the expense of regular users. Like mrob mentions (with a wonderful example), I usually want software to function like hand tools where I can just do a thing as quickly as I can do it and without unnecessary distractions. I've turned off cursor blink in my terminal and even though it isn't as bad in the browser I just turned it off in Firefox since you mentioned it (add a new preference ui.caretBlinkTime set to 0). Some of us do get more distracted by this kind of thing than others :/. Same with audio cues.

I do still like progress indicators when you might be waiting on a longer task (and when it actually indicates liveness, which too often it doesn't :( ).

Games I can sometimes appreciate the new user benefits and affecting the pace can sometimes have an artistic intent or relaxation effect that tools should not normally have. I have stopped playing games for excessive animations and will usually quickly (but not always immediately) disable anything that can be disabled. It is so common that I distinctly recall the free game Strange Adventures in Infinite Space intentially doing the opposite to great effect (it has been a bit but I think it was not only instant transitions but on mouse click instead of release).

https://rich.itch.io/strangeadventures

Re: Every Frame Perfect

#213
This silly pretentiousness goes a long way to explain why it took so long for Wayland to even be usable.

I get that this is the way of the world, but I still think we'd have been be better off with, you know, real attention paid to classic free/open source ideas (like not breaking backward compatibility.)

Re: Every Frame Perfect

#214

This is begging for someone to spin up Mac OS X Tiger or Snow Leopard and compare! I recall their butter smooth rollout animations looking pixel perfect

I suspect the specific versions you call out were in that time period for a reason. Snow Leopard was the first to integrate iOS's CoreAnimation framework. Nearly all animations now are based on that. Before, the CPU manually updated the sizes and positions of things, frame by frame, in a loop. This is how you'd program a Game Engine. After, with CA, state-change property models are sent to a different process entirel…

I love you. Thanks for chiming in!

Re: Every Frame Perfect

#215

I agree that some of the examples the author provided are instances of bad animation. But I don't agree with the premise of the article. Computer graphics is all about exploiting features of the human visual system. We perceive things differently when they're moving vs. when they're standing still. It's very possible that a "wrong" frame in isolation is the best looking one in a real-time context. We can also pick ap…

> the premise of the article I wouldn't mind it, if he had supplied suggested mitigations. I think every one of those animations are system-supplied ones. Some are likely SwiftUI ones, which heavily abstract you from the iron, and, if other frameworks are supplied, the abstraction goes even farther. It can be a major engineering effort, to improve a half-second animation. That said, this is how designers work. I have…

> I think every one of those animations are system-supplied ones. Some are likely SwiftUI ones

Yes, this is a major factor for the regression in overall UI quality and consistency on Apple platforms. SwiftUI aims to make all those fancy animations transitions a single line view modifier rather than 30 lines of manually specified CoreAnimation easing curves and manual animation blocks, but it results in a lot of things just feeling janky, because one-size-fits-all rule and precise polish are fundamentally at odds.

Re: Every Frame Perfect

#216
post #36
post #4

I'm sure a UI that had none of these imperfect frames would feel better, but now I really want someone to edit each of these clips to show what it would actually look like. At the same time, why does everything need motion? My understanding is that motion should be used if an action subtly changes the UI in a region that's different from where the action was triggered (e.g. toasts) I think many of these transitions a…

Play any game with good UI and you will see animations used everywhere. Instant transitions are only good in theory.

> Instant transitions are only good in theory.

For a professional tool, animations are anathema. They interfere with muscle memory.

Someone who uses a program continuously can be clicking or typing before a dialog box or button is even in the right position.

My wife drives me MAD with this. She has already clicked the cancel button on a popup before I can even read the first word in the dialog box. This is fine when she is working as the dialog box is just a dumbass notification from some idiot UI designer. This is NOT fine when she has asked me to help debug a problem. I have to force her hand off the mouse so that I can read the damn error message before she clicks it away.

Re: Every Frame Perfect

#217
post #36

Earlier quoted context omitted.

Play any game with good UI and you will see animations used everywhere. Instant transitions are only good in theory.

Maybe you dislike them, but that does not make for a fact. Instant transitions are something I strongly prefer and use in practice. There's no question, I don't want my operating system slowing itself down to a factor (literally) of 1000x, pointlessly fading and jiggling and sliding and bouncing and wiggling. And, as this article points out, animations in operating systems often make a visually illegible mess in the…

Real life has everything "animated". Nothing happens in an instant, there is force required to accelerate mass, etc.

Short, well-done animations make for better UIs.

Re: Every Frame Perfect

#218

Earlier quoted context omitted.

I think the default "product manager wants to build flashy animation" fundamentally contradicts that, but I also don't think it's fair to apply that criticism across all animations. Good and useful animations communicate something, they're not there just to be there or to make it "pretty", which is most designers use them. But they can actually communicate intent, action, immediacy and other important things, if they…

I agree that some things have a use and can do so without getting in the way, but I think as your example illustrates it is mostly to help new or infrequent users who aren't familiar with how the system works and often comes at the expense of regular users. Like mrob mentions (with a wonderful example), I usually want software to function like hand tools where I can just do a thing as quickly as I can do it and witho…

Hand tools have mass and momentum, they are most definitely "animated". You need force to accelerate them up to speed, they don't change state "in binary", or in a blink. Good UI is when you don't even consciously notice the animation, but it has subconsciously given you more information (e.g. desktop changes with very brief animation tells you from where did you transition to where. I personally find i3/sway to be a bit slightly disorienting with certain workloads)

Re: Every Frame Perfect

#219
It feels like this could get significantly worse with Apple introducing folding devices. There's already a good number of iOS form factors that need to be supported, and now you need to be able to transition between form factors too. It feels like the ability to carefully handcraft nice interfaces is going down, as combinations go up. https://news.ycombinator.com/item?id=48461226 https://cupertinolens.com/2026/06/09/wwdc-2026-apple-is-fold...

Re: Every Frame Perfect

#220
post #65

Earlier quoted context omitted.

I think the default "product manager wants to build flashy animation" fundamentally contradicts that, but I also don't think it's fair to apply that criticism across all animations. Good and useful animations communicate something, they're not there just to be there or to make it "pretty", which is most designers use them. But they can actually communicate intent, action, immediacy and other important things, if they…

The cursor animation is actually a great one because it does not add any latency. By comparison, when animations are not disabled on my Pixel 6 it takes almost one second to switch application instead of maybe 100ms (double tapping the app swap button to get to the previous app running).

As another example, with the "new" navigation gestures switching to the last app and back is just a finger swipe away, following your thumb's speed.
Post reply on HN