I have an animation where cubes are supposed to appear (scaled from 0 to 1), but Filament does not animate to the correct target value, leaving the cubes in an intermediary state. Other engines animate this correctly.
The following is a screenshot of how the cubes look like after they have been animated in by Filament. Notice that for the top six cubes I have removed the rotation and location keyframes, so only their scale is off.

The cubes should look like the following, rendered in Bablylon.js.

To Reproduce
Unfortunately, I could not create a new, minimal reproducing example. But I've managed to simplify the original offending file.
glTF Embedded (.gltf),Animation/Animation/Group by NLA TrackExpected behavior
Animations should hit the target value.
Devices
Debugged on a Windows 10 machine, where the VSCode plugin offers a preview with Filament 1.8.1.
The same behavior also happens on Android devices in AR; the cubes there are also misplaced, which prompted the investigation.
I can reproduce the bug in the latest gltf_viewer. Thanks!
Thanks for this excellent bug report, I see what's going on, fix is on the way.
Great to hear that you found the issue! I just couldn't figure it out.
Once it's fixed, if you have the time, I'm curious to hear what the issue was, roughly. I want to understand what I missed. ;)
The bug is in applyAnimation when lower_bound returns end(). When this occurs, it abandons the channel by doing a continue. The fix is to apply the last value rather than doing a continue.
What an amazingly quick response! Thank you for your work!
Most helpful comment
The bug is in
applyAnimationwhenlower_boundreturnsend(). When this occurs, it abandons the channel by doing acontinue. The fix is to apply the last value rather than doing acontinue.