Blender animation did not work in three.js/GLTF loader as expected

In the Blender, I have created a conveyer with animation. It is working as expected.
When I export the same as GLTF file and view in the GLTF loader or import in three.js, it is not animating as expected.
Attached .blend and .glb file to have comparison.
I think this can be fixed if the mesh is moving along the curve instead of moving in x axis. I could see the problem but i’m not able to find the solution for this.
Appreciate your help!

conveyer.blend (5.3 MB)
conveyer_group.glb (931.1 KB)

Cool animation :slight_smile:

I can see why it is not being replicated in the .glb.
When you export you have to apply modifiers, but they are applied as an instant state, not as animated.
Glb doesn’t understand Blender modifiers, only the results of them.
If you apply your modifiers in Blender, you get the same result as you are seeing in the glb.
The bevels and array are fine, but because the animation is distorting along a curve, only the distortion of the first frame is used.

To get this working as a glb you would have to bake your animation.
I tried that. Works, but you get a huge file. 150Mb in this case, which I can’t upload to the forum.

The technique involves exporting to Lightwave Point Cache (.mdd) and then reimporting.
There’s a youtube video about it here…

And here’s my files, the edited blender file and the output GLB, with belt animation.

After import I needed to scale and rotate the vertex animation, to roughly fit your curve.
But I could remove the actual blender animation.

So possible, but not particularly suited to the web.
If I was doing something similar, I would use bones instead. They are well supported in glb and threejs :slight_smile: